Culture, organisation, pratiques et architecture : quelles sont, dans ces quatre domaines stratégiques, les pratiques des « géants du Web » ? Cet ouvrage propose les clés dont les DSI peuvent s’inspirer avec profit.
C’est bien connu : c’est en montant sur les épaules des géants que l’on peut voir plus loin. Le Web a donné naissance à des géants tels que Amazon, Facebook ou LinkedIn qui, tous, s’appuient sur un système d’information par définition performant, puisque c’est la base de leur modèle de développement et de génération de chiffre d’affaires.
Cet ouvrage collectif s’intéresse aux quatre leviers fondamentaux de réussite de ces entreprises : elles ont toujours une culture spécifique, souvent une organisation atypique, généralement des pratiques innovantes et des architectures plutôt à l’avant-garde des autres entreprises, pénalisées par le poids de l’histoire de leurs systèmes d’information.
Culture : l’obsession de la mesure
Pour les auteurs, les géants du Web se caractérisent avant tout une obsession de la mesure qui a trois caractéristiques : l’informatique est l’outil de production, le chiffre d’affaires est directement lié à l’efficacité du système d’information et les ordinateurs sont partout !
« Ils ont poussé cette logique à l’extrême pour tout mesurer : temps de réponse, pages les plus vues, temps passé sur chaque page, chaleur dégagée par les processeurs… », remarquent les auteurs, qui affirment une conviction : « Cette boucle de feedback rapide « hypothèse ->mesure-> décision » devrait être un réflexe quasi-systématique dans le monde de la DSI, lequel peut être mis en œuvre dès demain. » Autre spécificité culturelle des géants du Web : contrairement aux DSI qui privilégient de plus en plus les progiciels, ils considèrent que l’informatique étant leur cœur de métier, elle est trop stratégique pour être confiée à des tiers. Les solutions logicielles sont considérées comme trop lourdes, trop complexes et non optimisée pour répondre au besoin.
« Il faut pouvoir soulever le capot et mettre les mains dans le moteur, ce qui n’est pas possible avec du progiciel : très peu de progiciels métiers sont architecturés pour supporter le niveau de sollicitation que l’on peut rencontrer sur des sites Web à fort trafic », remarquent les auteurs. Outre la mesure et les développements spécifiques, les géants du Web investissent beaucoup pour fluidifier l’expérience utilisateur. C’est leur intérêt : par exemple, chez Amazon, une augmentation du temps de latence de 100 millisecondes entraîne une baisse de 1 % des ventes.
De même, chez Google, plus 500 millisecondes lors du chargement des pages signifient 20 % de trafic perdu en nombre de pages vues. Si, pour la plupart des DSI, cela ne sert à rien de gagner quelques millisecondes dans la performance des applications, en revanche, garder le client/utilisateur en ligne de mire pour éviter qu’il ne se détourne du système d’information ne peut qu’être bénéfique.
Une organisation façon « Pizza Team »
Quelle est la bonne taille d’une équipe pour fabriquer un logiciel ? Probablement entre cinq et douze personnes. En dessous, l’équipe est dépendante d’événements externes et manque de créativité. Au-delà, la communication est moins efficace et les luttes de pouvoir émergent… Amazon applique la règle suivante : la taille d’une équipe ne dépasse pas le nombre de personnes que l’on peut nourrir avec deux pizzas, soit environ huit personnes (n’oublions pas que les pizzas américaines sont grandes…).
On n’oubliera pas non plus que ce n’est pas en doublant la taille d’une équipe que l’on va deux fois plus vite. « Au-delà de quinze personnes, il faut tirer le signal d’alarme », observent les auteurs. Ou alors découper l’équipe en groupes plus petits.
Deux autres modèles d’organisation sont privilégiés par les géants du Web. D’une part les « feature teams », équipes « qui travaillent sur un sous-ensemble fonctionnel cohérent, indépendamment des technologies, expliquent les auteurs. Une feature team est capable à tout moment de livrer de la valeur au client final en dépendant faiblement des autres équipes ». C’est un modèle que l’on retrouve également chez les éditeurs de logiciels. D’autre part, le modèle Devops est également utilisé. « Il invite à repenser la frontière classique de nos organisations qui séparent d’un côté les études (qui écrivent le code des applications) et la production (qui déploie et exploite ces applications). » Avec un enjeu fort : réduire le « time to market », facteur essentiel de compétitivité dans le monde du Web.
Souvent, les collaborateurs des études et ceux de la production n’ont pas les mêmes objectifs : les premiers cherchent avant tout à innover, ont une culture du produit, les seconds préfèrent rationaliser et ont avant tout une culture du service. Une des questions que peuvent se poser les DSI est la suivante : « Combien de temps faut-il pour déployer un changement d’application qui nécessite seulement la modification d’une seule ligne de code ? »
Chez les géants du Web, l’approche consiste à construire des équipes multidisciplinaires qui sont responsables du bon fonctionnement d’un service. Chaque équipe est responsable du métier, du dev et des ops, selon le principe « You build it, you run it » (« vous l’avez construit, faites-le fonctionner ») .
Des pratiques d’amélioration continue
Les géants du Web sont évidemment des adeptes du lean startup, approche de création de produit qui réduit les risques et les impacts des échecs en traitant en parallèle les aspects organisationnel, business et techniques, avec des itérations successives. Les auteurs expliquent : « Le lean startup combat l’approche qui consiste à construire un produit pendant un an et de se rendre compte tardivement que les choix (marketing, fonctionnel, commercial) mettent l’organisation en danger. Il faut tester au plus vite. »
D’autres approches ont également utilisées par les géants du Web : le « minimum viable product » (collecter sur les clients le maximum d’enseignements utiles avec un minimum d’efforts), le déploiement continu (pour améliorer le délai de livraison d’une application), le « feature flipping » (pour activer ou désactiver des fonctionnalités directement en production, sans nouvelle livraison de code), le test A/B (pour tester l’efficacité d’une fonctionnalité, le « device agnostic » (pour une même ergonomie quel que soit le terminal utilisé) et, bien sûr, la « bêta perpétuelle », selon le principe « livrez vite, livrez souvent ». Cela désigne le fait qu’il n’y a jamais de livraison de version, mais que l’application est toujours en évolution. « Pour utiliser ce principe, il est indispensable d’avoir les moyens de faire des déploiements réguliers, il faut donc une usine logicielle, des pratiques d’amélioration continue et la capacité à faire un rollback (annulation) rapide en cas de problème », nuancent les auteurs.
Des architectures… dans le nuage
Si les géants du Web misent sur les développements spécifiques, cela ne les empêchent pas de faire appel à des tiers pour les héberger. « En privilégiant le cloud, les géants du Web, comme les start-up, appliquent une approche très pragmatique, assurent les auteurs : bénéficier du meilleur des innovations de leurs pairs, vite, et selon un modèle d’achat peu contraignant, pour localiser leurs efforts informatiques sur leur différenciant business. Ce modèle peut inspirer toutes les entreprises qui souhaitent aller vite et réduire les coûts d’investissement pour gagner des parts de marché. »
Le cloud computing est essentiellement utilisé pour recourir à des API pour les intégrer, pour externaliser des logiciels standard (par exemple la gestion commerciale vers Salesforce, ou Google Apps pour la collaboration) ou pour bénéficier d’infrastructures à la demande. « Il convient de se méfier d’une trop grande dépendance à une plateforme cloud unique pour l’hébergement d’applications critiques, ces plateformes ne sont pas infaillibles, comme on a pu le constater avec les pannes de Microsoft Azure, Salesforce ou Amazon Web Services », préviennent les auteurs.
Côté infrastructures matérielles, les grands groupes du Web privilégient les serveurs standard (au lieu de machines haut de gamme) de manière à ce qu’une seule application s’exécute sur plusieurs machines, voire des centaines, qui prennent la place d’un serveur. C’est la technique du « sharding » qui est utilisée : « C’est un ensemble de techniques qui permet de répartir les données sur plusieurs machines pour assurer la scalabilité de l’architecture. »
Mais cette approche reste difficile à réaliser pour les DSI : « Des problématiques toutes simples dans le monde relationnel (jointures, consistance de la donnée) demandent la maîtrise de nouveaux outils ou de nouvelles méthodes », précisent les auteurs.
Ceux-ci concluent que les pionniers ayant montré la voie, « nous ne pouvons continuer à travailler comme avant, ce qui était infaisable l’année dernière est possible aujourd’hui, et ce que nous ne pouvons pas faire aujourd’hui sera possible demain. »
Les géants du Web : culture, pratiques, architecture, par Octo Technology, 2012, 203 pages.