Quoi choisir pour construire son site Web : un framework, un CMS, un système de commerce électronique, une solution CXM?
Comment construire un site Web? Dans le cas de chaque site, la réponse peut être différente, en fonction d’une foule de facteurs. Mais il existe quelques grandes approches qui méritent d’être connues et comprises par le personnel non-technique qui va sélectionner un développeur ou une agence Web afin de poser les bonnes questions et de comprendre ce qu’il achète.
Malheureusement, trop souvent, les entreprises s’arrêtent trop rapidement à un choix : celui que leur développeur Web ou département T.I. propose, une solution tout à fait fonctionnelle, mais non-optimales pour d’autres disciplines de l’organisation, par exemple le marketing ou la gestion des commandes qui, faute d’une compréhension suffisante des technologies voient leurs possibilités limitées après le lancement du site… ou doivent avoir recours à ceux qui l’ont construit à chaque nouveau besoin.
Je vous propose aujourd’hui un survol des principales approches de gestion de sites Web pour entreprises, histoire d’y voir plus clair.
Au commencement, il y avait le langage de programmation
Mais on n’a pas vraiment besoin de reculer jusque là. La plupart des sites sont basés sur des technologies qui utilisent l’un ou l’autre de quelques langages, en particulier (cette liste n’est pas exhaustive, comme toutes les autres dans cet article d’ailleurs) :
- PHP
- ASP .NET (Microsoft)
- Java (Sun/Oracle)
- Ruby
- Python
- Et quelques autres utilisés de façon plus marginale (Perl, ColdFusion, ActionScript, etc.)…
À CE NIVEAU D’ABSTRACTION, ET DE FAÇON GÉNÉRALE, TOUT PERMET (PRESQUE) DE TOUT FAIRE.
Pour le langage, peu de questions à se poser, disons une seule : si j’ai à faire modifier de façon majeure les fonctionnalités du site, ai-je des ressources à portée de main et en quantité suffisante pour effectuer ces modifications à temps?
Cette question se pose en particulier pour les entreprises qui ont des compétences en développement à l’interne ou celles qui envisagent une technologie qui utilise un langage pour lequel l’expertise est plus rare ou coûteuse.
Puis les frameworks (cadriciels) de développement Web
Comme le développement d’applications et de sites Web comporte composantes récurrentes, les développeurs simplifient et systématisent leurs applications en utilisant un cadriciel de développement, qui est en fait un ensemble de façons de faire et de composantes réutilisables dans un langage donné : appels à une base de données, connexion/authentification, création de gabarits, etc.
Plusieurs développeurs créent des sites en s’appuyant directement sur des frameworks populaires, comme les suivants :
- Symfony, Zend (PHP)
- ASP .NET MVC
- Spring, Eclipse RAP (Java)
- Ruby on Rails
- Django (Python)
- etc.
Des sites montés directement avec un framework ont des interfaces de gestion d’aussi bonne qualité… que ce que le développeur proposera ou que le client demandera. Alors, dans certains cas, le personnel de gestion du site demandera de très belles interfaces sur mesure pour lui, et dans d’autres, il faudra essentiellement recourir aux développeurs du site pour effectuer une modification à ce dernier.
Utiliser en particulier dans l’un ou l’autre des cas suivants :
- Site dont une majorité des fonctionnalités et règles d’affaires sont très inhabituelles
- Relation forte, voire fusionnelle avec l’équipe de développeurs à long terme (ex.: site sur mesure créé par une équipe interne)
- Entreprise voulant un contrôle quasi-total sur l’évolution des composantes de son site
- Sites dont l’essentiel des processus de publication sont automatisés via des systèmes tiers ou des interfaces qui doivent être réalisées sur mesure
- Exemple : entreprise dont le site est le principal produit, comme un comparateur dans le domaine du voyage, un réseau social, etc.
Système de gestion de contenu (Web)
[CMS ou WCMS, (web) content management system]
La création d’un site Web implique habituellement surtout la création de pages et de formulaires simples. C’est pourquoi il existe des dizaines de systèmes qui simplifient ce processus, comme les suivants :
- WordPress, Drupal, Typo3 (PHP)
- Kentico, Sitefinity, SharePoint (.NET)
- OpenCMS, Liferay, Magnolia (Java)
- Typo (Ruby)
- Django CMS, Plone (Python)
- etc.
Habituellement ces systèmes permettent à un utilisateur qui n’a pas de compétences techniques spécifique d’ajouter facilement des pages, de les modifier, etc., et promettent selon le cas des fonctionnalités plus riches par exemple pour approuver les publications en fonction de règles données, modérer des commentaires, avoir un catalogue de produits, gérer un intranet, etc.
Si chaque CMS a sa spécialité (intranet, blogue, site de média, wiki, etc.), ils visent tous un objectif principal : aider à diffuser du contenu.
Utiliser en particulier dans l’un ou l’autre des cas suivants :
- Site de contenu ou de média
- Besoins évolués en recherche et étiquetage de contenus
- Entreprises ayant des processus de publication complexes qui doivent être formalisés (approbations, traductions, etc.)
- Site de génération de leads avec processus simples
- Site avec une dimension transactionnelle simple ou marginale
- Site dont les processus complexes sont gérés par des systèmes tiers (ex.: zone privée gérée par un système sur mesure)
Plateforme de commerce électronique
[e-commerce solution / shopping cart software]
Si la plupart des CMS sont appropriés pour créer un catalogue et à la limite recevoir des transactions simples, lorsque le principal but du site est la vente en ligne, le système devra probablement comporter des fonctionnalités plus riches qui sont habituellement comprises dans une plateforme de commerce électronique :
- Panier d’achat avancé
- Envoi automatisé de courriels en fonction d’une transaction ou d’une livraison
- Gestion des disponibilités
- Gestion des promotions, des prix et des codes de réduction
- Gestion des commandes
Il existe plusieurs dizaines de plateformes de commerce électronique, dans la plupart des langages Web, dont notamment (cette liste n’est vraiment pas exhaustive) :
- Magento, PrestaShop, OpenCart (PHP)
- Hybris, NetSuite, ATG, Broadleaf (Java)
- AbleCommerce, uCommerce, AspDotNetStoreFront, ZNode (.NET)
- Shopify, Active Merchant, Spree (Ruby)
- Satchmo (Python)
Habituellement, de telles solutions offrent une façon systématique d’établir une boutique en ligne qui a les fonctionnalités courantes pour la vente au détail. Dans certains cas, l’essentiel de l’effort pour mettre le site en ligne vise la configuration et l’intégration Web (présentation du site), avec un recours très limité à la programmation.
Utiliser en particulier dans l’un ou l’autre des cas suivants :
- On doit gérer un grand nombre de transactions suivant les règles d’affaires habituelles de la vente en ligne
- On doit structurer un catalogue de plusieurs dizaines, centaines, milliers de produits (recherche ou navigation par facettes, recommandations, produits reliés)
- On doit mettre en place des comptes-clients simples mais en grand nombre (supportant surtout l’historique et le suivi des commandes et des adresses de livraison)
Enfin, la plupart des solutions e-commerce offrent des fonctionnalités CMS de base, mais n’ont pas toujours des processus de publication plus avancés (approbations, commentaires, etc.) Parfois, on peut aussi joindre une plateforme e-commerce et un CMS pour gérer le même site : le couple WordPress/Magento (PHP) est une combinaison qui se voit.
Systèmes de gestion de l’expérience-client
[CXM, customer experience management]
On remarquera que les trois cas vus plus haut ne couvrent pas plusieurs types de sites essentiels. Par exemple, les sites de vente en ligne B2B qui doivent supporter des processus complexes (ex.: comptes-clients multi-usagers, commandes différées, etc.) ou encore les sites supportant des modèles d’affaires transactionnels, mais plus complexes, par exemple les institutions financières (ex.: demande de pré-approbations, changement de type de compte, etc.)
Au même moment, la discipline de l’automatisation du marketing Internet est en plein essor : plutôt que de publier des pages communes à tous les visiteurs, on veut maintenant ajuster le message à un usager ou un contexte en particulier, par exemple présenter une page d’accueil différente à l’utilisateur reconnu et au visiteur qui s’était connecté à son compte hier, ou à un usager sur mobile.
Ces deux grandes complexités nécessitent des plateformes qui gèrent la publication différemment d’un CMS traditionnel, et qui supportent des transactions moins conventionnelles que les solutions e-commerce très alignées sur la vente au détail habituelle. Si bien que plusieurs CMS très évolués ont ajouté des fonctionnalités de gestion de l’expérience-client qui en ont fait des CXM. Dans ce groupe, on pourrait nommer entre autres :
- Drupal, eZ Publish (CXM PHP de base)
- Sitecore, EpiServer, Ektron (.NET)
- Adobe CQ, Hippo CMS (Java)
En permettant de créer des expériences (et non seulement des pages ou des produits) sur mesure, ces solutions permettent non seulement d’avoir accès à plusieurs composantes permettant de créer une logique d’affaires sur mesure (produits, comptes-clients, comptes d’entreprises, pages, campagnes, etc.), mais aussi d’établir — sans programmation — des règles d’affaires contrôlant l’affichage de certains messages ou le déclenchement automatique de comportements du site (ex.: promotion, recommandations de produits, etc.) pour maximiser l’impact des campagnes publicitaires, par exemple des promotions sur les réseaux sociaux ou de l’achat média à la performance.
Ces systèmes permettent donc à la fois de créer des sites transactionnels qui ont une stratégie e-commerce plus complexe, mais aussi de mieux supporter les campagnes publicitaires multi-plateformes. En autant qu’on se donne la peine de les configurer et les optimiser suffisamment pour en profiter.
Un dernier mot sur les systèmes propriétaires / maison
Plusieurs firmes de développement offrent aussi une solution maison, qui entrent dans l’une ou l’autre de ces catégories, mais en l’absence d’un classement/évaluation par un tiers et de documentation détaillée en ligne, rien ne vaut une bonne démonstration pour comprendre ce que l’on achète vraiment, et à quel point ce que l’on demande nécessitera du travail sur mesure dans une plateforme moins répandue ou adaptée à son modèle d’affaires. La longévité du site, du système proposé et du fournisseur sont aussi à questionner.
Plusieurs fournisseurs de logiciels ou de services utilisent aussi le nom fourre-tout framework pour désigner à la fois un logiciel très souple, un cadriciel de développement et plusieurs autres types de solutions. Il est important d’être prudent avec ce terme, et de vérifier de quoi il s’agit vraiment en voyant une démonstration du système : oui, le système « peut tout faire« , mais peut-on vraiment établir des règles d’affaires sans programmation additionnelle de la part du développeur? Doit-on recourir à la compétence du fournisseur pour toute modification?
Dans tous les cas, une évaluation neutre, qui tient en compte les besoins de tous les départements de l’organisation impliqués dans l’utilisation du site s’impose.