Archive for the ‘Inertie’ category

Le principe d’Anna Karenine

12 novembre 2010

Le principe d’Anna Karenine est tiré de cette fameuse phrase du roman de Tolstoï : « Toutes les familles heureuses se ressemblent. Les familles malheureuses sont malheureuses chacune à leur manière. » En d’autres termes, le succès demande que plusieurs conditions soient réunies. Une seule condition manquée est suffisante pour conduire à l’échec.

Et on peut appliquer ce principe à de nombreux systèmes, y compris en informatique.

Des systèmes de type « Karenine » ne fonctionnent que si TOUS les éléments marchent comme prévu. Si un seul élément manque, le système va échouer.

Mais tous les systèmes ne suivent pas ce principe, en particulier ceux centrés sur les êtres humains. Prenons l’exemple suivant : quelqu’un veut noter quelque chose sur un bout de papier. Pour qu’il y arrive, il faut que TOUTES les méthodes essayées échouent : pas de stylo, ni immédiatement disponible, ni chez le voisin. L’être humain va même tenter beaucoup de choses « non scriptées », comme demander à un inconnu dans la rue (même s’il n’a jamais fait une telle chose) ou s’appeler avec son portable pour laisser la note sur sa propre messagerie vocale.

Les systèmes informatiques, par contre, sont dans leur très grande majorité de type « Karenine ». Un programme fonctionnant comme un script, il faut que TOUS les éléments du script fonctionnent sans accroc. Si un seul pépin survient, le programme échoue. Dans le meilleur des cas il affiche une erreur, dans le pire des cas il plante. On pourrait rétorquer qu’un script peut prendre en compte plusieurs scénarios, mais coder les diverses possibilités en dur ne gère pas l’imprévu.

En fait, n’importe quel système est un peu « Karenine » et un peu « non-Karenine » et est une conjonction de « et » et de « ou ». Par exemple :

Pour pourvoir écrire une note il faut qu’on ait :
(un stylo OU un crayon OU que le voisin ait un stylo) ET
(que l’on ait du papier OU que le voisin ait du papier)

Un système est donc plus ou moins de type « Karenine ». Mais cela dépend également du point de vue où l’on se place. Un virus en attachement d’un email qui tente de se propager sur une machine ne réussira que si plusieurs conditions sont remplies (système « Karenine ») : que le serveur d’email ne le détecte pas, que l’utilisateur exécute l’attachement, que la plate-forme soit compatible avec le virus, que l’anti-virus local ne le détecte pas, etc. Si l’on se place du point de vue de l’utilisateur par contre, sa machine n’est corrompue que si toutes les conditions précédemment citées sont réunies (non-Karenine). Mais si l’on se place du point de vue de l’utilisateur sur le long terme, on retombe sur un système « Karenine » : pour que la machine ne soit pas corrompue il faut que TOUTES les attaques soient déjouées.

L’informatique a cependant quelques cas de systèmes « non-Karenine ». Les systèmes haute disponibilité sont un exemple. Les disques durs de type RAID 5, par exemple, stockent les données sur une séries de disques, mais ont un disque dur supplémentaire utilisé comme disque redondant. Si n’importe quel des disques tombe en panne, le RAID peut recréer les données du disque perdu avec les disques restants. L’idée étant que les probabilités que deux disques lâchent en même temps sont quasi-nulles.

Autre exemple : Internet. TCP et IP, deux des principaux protocoles utilisés par Internet, gèrent les pannes. IP gère le routage des paquets sur le réseau. Si une node du réseau est hors service (même pendant une communication), le paquet est rerouté et prend un chemin différent. De la même manière, TCP s’assure que tous les paquets d’un même message sont bien arrivés, les remet dans l’ordre si besoin est, et redemande à l’expériteur de renvoyer un paquet s’il est perdu.

Quel type de système est le plus stable ?

Un système « non-Karenine » est en théorie bien plus stable qu’un système « Karenine ». En pratique cependant, il est difficile de trancher.

La raison est dûe à la nature humaine : un système « non-Karenine » donne en effet un faux semblant de sécurité. Prenons l’exemple de l’accident de la centrale nucléaire de Three-Mile Island de 1979 (dans l’Est des Etats-Unis). L’accident a été causé parce qu’une série de pannes se sont superposées. Un des réacteurs tournait à pleine capacité car l’autre réacteur était éteint pour refaire le plein ; Un défaut mécanique a fait qu’une des pompes n’a pas fonctionné ; Il y avait d’autres pompes, mais parce que les valves ont été fermées pour maintenance elles n’ont pas pu fonctionner, et ainsi de suite.

Quelles sont les chances pour que cela arrive ? Sur le papier, très peu. Mais étant donné que l’on avait affaire à un système de type « non-Karenine » avec plusieurs systèmes de secours, le personnel n’a pas hésité à effectuer en même temps la maintenance de deux des éléments critiques (un des réacteurs et les valves)

Même cas pour un disque RAID 5. Les probabilités pour que deux disques lâchent en même temps sont infimes, non ? Infimes mais pas pas nulles. Quand on prend le nombre de disques RAID 5 déployés dans le monde, il y a statistiquement bien plus de chances qu’une unité RAID quelque part perde deux disques à peu d’intervalle (auquel cas toutes les données du RAID sont perdues). Et si l’administrateur prend son temps pour remplacer le disque défectueux (pourquoi se presser, ce n’est pas tous les jours qu’un disque tombe en panne) le risque augmente sensiblement. Le risque total n’est pas énorme, mais l’utilisateur qui perd ses données ne sera pas réconforté pour autant – d’autant plus que le RAID 5 était sensé éviter ce genre d’erreur ! Une sauvegarde ? Pourquoi une sauvegarde ? Les données sur le RAID étaient sensées être sécurisées.

C’est la raison pour laquelle les gens perdent tant de données chaque année. Tant que ça fonctionne on ne se soucie pas de faire une sauvegarde.

Pour prendre un exemple personnel, je ne me suis décidé à être sérieux avec la sauvegarde de mes données le jour où j’ai acheté un ordinateur équipé de deux disques en RAID 0. Si cette configuration est très rapide, si l’un seul des deux disques lâche je perds toutes mes données, doublant le risque de panne (système « Karenine »). C’est ce risque supplémentaire qui m’a fait me remuer pour mettre en place un système de sauvegarde. Pendant des années, si mon disque avait lâché j’aurais perdu des données relativement critiques.

Les systèmes Karenine sont beaucoup moins stables, mais de ce fait nous mettent la pression pour prendre les risques plus au sérieux. Les systèmes informatiques qui doivent avoir un temps d’arrêt minime sont efficaces uniquement car/quand les équipes d’administration sont paranoïaques. Pour une haute disponibilité de haut niveau, il faut non seulement plusieurs systèmes redondants mais également des procédures strictes. Au delà d’un certain temps minimum d’arrêt par an, il faut prendre en compte les catastrophes naturelles, les cas de malveillance (piratage, ex-employé revanchard), les erreurs humaines, etc. Certains poussent le vice jusqu’à utiliser différentes versions du système d’exploitation et leur application sur les différentes machines de secours (au cas où il s’agisse d’un bug au niveau du système d’exploitation, une machine de secours avec le même OS risque de reproduire les mêmes résultats).

Mais on n’applique que rarement de telles procédures, car elles sont souvent trop contraignantes face au risque qui semble lointain… Dans les années 80, un satellite soviétique avait eu pour ordre d’effectuer une rotation. Cette rotation avait mis à l’ombre ses panneaux solaires, privant le satellite de toute source de courant et le condamnant pour toujours. L’ordre avait pourtant été signé par une douzaine de « responsable », chacun faisant confiance aux autres responsables.

Des théories expliquent que l’on ne peut pas arriver à un risque zéro, car dés que les risques diminuent, la nature humaine contrebalance en prenant plus de risques. Inventez une voiture qui évite certains accidents, et les gens seront moins prudents sur les routes…

L’ère de l’information – avec des principes de l’ère industrielle

6 mars 2010

Bien que l’on soit entré dans l’ère de l’information depuis longtemps – surtout dans des domaines comme l’informatique – les entreprises continuent de garder des principes de l’ère industrielle.

Depuis 15 ans de très nombreux ouvrages ont été écrits sur ce passage à l’ère de l’information. Mais bien peu n’a vraiment transpiré. Même dans le monde de la high tech, les habitudes restent tenaces. Seules quelques rares compagnies comme 3M ont eu une attitude progressive (ironiquement, 3M a été fondée en 1902, pendant l’ère industrielle). Mais d’autres compagnies comme McDonald sont complètement calés sur l’ère industrielle.

Perte de la prédictibilité

Le plus grand bouleversement de l’ère de l’information est la perte de la prédictibilité. L’ère industrielle a été l’avènement de la prédictibilité en mesurant le plus que l’on pouvait. Comment produire tant de pièces en tant de temps en utilisant tant de ressources et un taux de rejet de moins de tant de %. L’ère de l’information a fait voler en éclat ce modèle. Cette ère est l’avènement de l’innovation, or cette dernière est tout sauf prévisible. Le Post-It est un exemple typique. Inventé par un employé de 3M qui a eu l’idée tout à fait par hasard (il cherchait à créer un marque page qui ne tombe pas pour ses feuilles de chorale), il a réussi à créer son produit en utilisant une colle développée par un de ses collègues qui « voulait voir ce que ca donne ». Si 3M demande à ses employés de passer 15% de leur temps à de la recherche (Google a repris la même technique), il est impossible de prévoir combien d’inventions vont apparaitre – ni quel type d’invention va-t-on trouver.

Une autre manifestation de la prédictibilité est les attentes de la bourse. Wall Street déteste en effet les mauvaises surprises. Ses entreprises préférées sont celles qui augmentent leurs revenus et leurs profits de manière constante. Une grosse envolée des revenus de vaut rien si cela retombe un peu ensuite.

Beaucoup de ces prédictibilités sont centrées autour du concept de la courbe de Gauss (la courbe en forme de cloche). Lorsque le but est de fabriquer une pièce de 25mm de diamètre,  la distribution se fera en forme de cloche – 90% seront par exemple entre 24 et 26mm, et 10% en dehors (considérées comme rejets). Beaucoup de produits ont un MTBF (mean time between failure, ou temps moyen entre chaque panne). Les clients d’une voiture auront en moyenne un certain nombre de panne. Certains n’en n’auront pas du tout, mais il est extrêmement rare qu’un client en ait suffisamment pour influencer la moyenne à lui seul. Lorsque l’on calcule une moyenne, au-delà d’un certain nombre, rajouter ou enlever un client ne risque pas d’affecter la moyenne.

Mais en high tech le mode de fonctionnement est tout autre. Dans son livre The Black Swan, Nassim Taleb montre comment le monde actuel pense toujours en termes de courbe de Gauss alors qu’il ne l’est plus. De fait, en high tech la distribution suit bien souvent la règle des 80/20 plutôt que la courbe de Gauss. 20% des clients vont rapporter 80% des revenus ou profits. 20% des clients (pas forcément les mêmes) vont consommer 80% des ressources (appels hotline, etc.). Surtout dans le cas d’informatique d’entreprise, certains clients peuvent à eux seuls changer toutes les moyennes s’ils sont rajoutés et retirés des calculs. Mais même dans le domaine du grand public, les fournisseurs d’accès Internet ainsi que les opérateurs mobiles ses sont rendu compte qu’un très petit pourcentage de leurs clients consommaient 80% des ressources de leur réseau.

Les employés

Le but de l’ère industrielle était de faire que les employés soient le plus interchangeables possibles. Pour des raisons de prédictibilités, il est important que tous les employés d’une chaîne de production travaillent tous de la même manière. Cela ne sert à rien qu’un employé travaille plus vite que ses collègues sur une chaîne, il devra de toute façon s’adapter sur le flux qui arrive en amont, et ses collègues en aval ne pourraient pas suivre son rythme.

Ce principe existe toujours pour des compagnies comme McDonald. La description complète du fonctionnement d’un restaurant de la chaîne est réglementée jusque dans les moindres détails.  Tout est régulé, des principes de management aux moyens mémo-techniques qu’utilisent les employés pour assembler les hamburgers. Pour la nourriture, les spécifications sont encore plus drastiques. La taille des frites est calibrée: tant de % doivent avoir entre tant et tant de centimètres (on retrouve une distribution en courbe de Gauss). Et le cahier des charges d’un Big Mac est un livre d’une bonne dizaine de centimètres d’épaisseur qui décrit jusqu’aux caractéristiques bactériologiques du hamburger.

Le principe est d’avoir le moins à former les employés pour pouvoir les remplacer le plus facilement possible. Et cela compte pour les employés de base comme pour les propriétaires des restaurants. Car il faut se rappeler que les restaurants McDonald ne sont que des franchises. Ils ne sont pas détenus par la compagnie mais opèrent sous licence. D’où un risque supplémentaire d’imprévu. Dans les années 80, lorsque McDonald a commencé à s’implanter en France, le géant du fast food s’est aperçu que les hamburgers produits par les franchises françaises (quasiment toutes détenues par la même compagnie) n’avaient pas le même goût que leurs homologues américains. McDonald a donc annulé les franchises dans l’hexagone et a donc du repartir à zéro – perdant du temps précieux dans la course au fast food des années 80 contre Burger King, Quick et le défunt Freetime. Je ne sais pas si c’est lié, mais à l’heure actuelle, si les franchises possèdent le restaurant, McDonald possède le terrain même – ce qui lui permet d’empêcher au propriétaire de changer de franchise.

Ce modèle est bien évidemment top-down. Le plus de décisions possibles sont prises au siège de McDonald, les franchises ne faisant qu’appliquer les directives.

Dans l’ère de l’information, par contre, les employés deviennent clé, car la direction ne peut pas avoir toutes les idées. Thinsulate (fibre d’isolation thermique de 3M, concurrent de Gore-Tex) est un produit dont le PDG de 3M a tenté de tuer à trois reprises, mais qui a survécu malgré tout – et est depuis devenu l’un des produits les plus lucratifs de 3M. Et beaucoup de compagnies high tech existent parce qu’elles permettent à leurs employés de faire remonter des idées de produits. Mais l’ère du top-down persiste dans de nombreuses compagnies High Tech – même certaines qui ont du succès. Apple est l’un des exemples les plus flagrants où le grand patron (Steve Jobs) dicte toutes ses volontés sur tous les produits de la compagnie. Cela ne veut pas dire qu’il a toutes les idées (il a « emprunté » des concepts à beaucoup de monde), mais Steve prend beaucoup de décisions sur les produits jugés stratégiques, et il n’y a que très peu d’employés qui osent argumenter avec Steve. La formule fonctionne pour Apple dans la mesure où Steve Jobs a beaucoup de flair. Mais son successeur aura beaucoup plus de mal à continuer une telle méthode.

La phrase « The employees are the company’s most important assets » (les employés sont les atouts les plus importants d’une compagnie) a été rabâchée dans le discours de management modernes. Mais ces nobles pensées restent grandement ignorées dans la réalité – engendrant beaucoup de cynisme sur le lieu de travail. Il est en effet intéressant de noter comment beaucoup d’entreprises se séparent de certains de leurs « atouts les plus importants » en cas de difficultés financières (en d’autres termes, ils dégraissent).

Certaines habitudes héritées de l’ère industrielle sont plus pernicieux. En high tech, un employé vedette peut être plus productif qu’une armée de bras cassés. Or les habitudes de l’ère industrielle découragent d’avoir trop d’employés vedettes. Car dans une entreprise, ce qui compte bien souvent c’est le nombre de personnes sous ses ordres. Le manager qui a le plus de chances de recevoir une promotion est celui qui a le plus d’employés sous lui – pas celui dont l’équipe est la plus productive. C’est également la raison pour laquelle des startups sont bien plus réactives (la Silicon Valley est célèbre pour essayer de recruter des employés vedettes). Elles sont trop petites (et trop fragiles) pour ce soucier de promotion.

Le futur

Va-t-on continuer dans nos habitudes héritées de l’ère industrielle ou va-t-on changer nos habitudes? Probablement le dernier cas de figure, mais lentement. L’ère industrielle a mit du temps avant de tout réguler et tout mesurer. L’ère de l’information prendra également du temps avant de trouver sa voie. Car la plus grosse influence sera les géants de demain – qui sont les startups d’aujourd’hui. Déjà, on remarque que des compagnies comme Google ont beaucoup évolué par rapport à leurs ainées (Google passe beaucoup de temps à recruter des talents et à les garder). C’est par exemple la culture de la Silicon Valley des années 80 qui a popularisé l’abandon du costume-cravate sur le lieu de travail pour les employés qui ne rencontrent pas les clients (Apple a longtemps été réfractaire à tout costume-cravate sur le lieu de travail. Le PDG de Sun, quant à lui, est toujours vu en jeans / baskets).

Mais on ne peut s’empêcher de remarquer qu’il existe encore des bastions où le costume-cravate est toujours de rigueur, comme les cabinets d’avocats ou la finance. Ce qui laisse à penser que Wall Street n’est pas près à se séparer des méthodes de l’ère industrielle.

Le pouvoir de l’inertie affecte tout le monde – vous et moi y compris

1 avril 2009

On m’a récemment demandé pourquoi de nombreuses entreprises gardent leurs mainframes, ces gros ordinateurs inventés dans les années 50. Car ces machines coûtent fort cher à la maintenance et son technologiquement désuètes. Le noyau du système d’exploitation des mainframes IBM (le leader sur ce marché) croit toujours manger des cartes perforées! Pour lui, un écran (texte) est composé de 25 cartes perforées correspondant aux 25 lignes texte de l’écran (non, il n’y a pas de mode graphique)

Je connais peu l’univers des mainframes car je ne les ai jamais côtoyées directement. Je peux cependant émettre des hypothèses.

Il est à parier que si les entreprises gardent leurs mainframes c’est parce que le coût d’un changement est plus grand que le coût de rester sur des systèmes antédiluviens.

Tout d’abord, un peu de mise en contexte. Quelles sont les compagnies qui ont des mainframes? Les grosses entreprises – historiquement les banques, assurances, etc. – qui doivent faire tourner des logiciels bien souvent critiques. Or les mainframes ont un gros avantage: elles ne plantent jamais. A ce qu’on m’a dit, lorsqu’une barrette mémoire flanche sur une mainframe IBM, le système d’exploitation s’en rend compte, réorganise la mémoire (le tout sans planter!) et… appelle automatiquement le support IBM pour qu’un technicien soit envoyé sur place remplacer le composant défaillant – et accessoirement facturer le client.

D’un autre côté, considérons une migration vers un système plus moderne. Comme toute migration elle va être longue, coûteuse et douloureuse. Autant les bugs d’un système sur mainframe ont été éradiqués au cours des dernières décennies, autant un nouveau système va avoir des bugs. D’un point de vue strictement financier, une migration ne va être rentabilisée qu’au moyen voire long terme.

Du côté utilisateur, soit le changement n’est qu’interne et l’utilisateur final va garder son interface utilisateur (auquel cas il va se demander pourquoi on change de système) soit l’interface utilisateur est modifiée (auquel cas il va falloir le former au nouveau système) Dans tous les cas de figure, les utilisateurs habitués à un système sur mainframe vont hurler à la mort pour chaque bug rencontré. Voire pire – une banque n’apprécierait pas du tout qu’un bug introduit lors de la migration perde l’enregistrement de plusieurs transactions financières.

Certes, les entreprises aiment un Directeur Informatique (DI) qui est entreprenant et cherche à économiser des sous. Mais la première attente des entreprises envers leur division informatique est un devoir de stabilité: que les systèmes soient opérationnels et qu’il y ait moins de problèmes possibles.

Autrement dit, un DI qui réussi une telle migration pourra recevoir des félicitations (à terme), sans pour autant passer pour un héros. Un DI qui loupe sa migration va en prendre pour son grade – s’il garde son poste! Et un DI qui garde les choses comme elle ait restera apprécié de sa direction, l’entreprise étant habituée à payer la facture.

Par quel choix sont tentés les DI à votre avis?

L’inertie touche tout le monde, y compris vous et moi

La morale de cette histoire est que l’inertie a un pouvoir bien plus important qu’on ne le pense.

« Oui, mais ce sont des banques et autres grosses entreprises » me diront certains. « Les particuliers n’ont pas une telle inertie. » Ah non? Je prendrais un exemple simple: le clavier d’ordinateur.

Conçu à la fin du 19e siècle, le clavier que nous utilisons toujours (AZERTY comme QWERTY) a été conçu pour ralentir la frappe – évitant que les machines à écrire mécaniques ne se bloquent. Le problème de blocage n’étant plus de mise avec les claviers moderne, combien d’entre vous ont opté pour un clavier optimisé du style Dvorak? Aucun. Certes il existe un bénéfice à terme (une frappe plus rapide), mais cela nécessiterait de réapprendre à taper au clavier, pas qu’aucun d’entre nous n’a franchi.

Mais prenons un exemple plus simple: quand on considère le nombre d’heures et d’années que l’on passe devant un clavier de nos jours, il est utile de se protéger du syndrome du canal carpien. Combien d’entre vous utilisent un clavier ergonomique comme le Microsoft Ergonomic Keyboard? Quasiment aucun (je ne m’en suis moi-même acheté un qu’il a quelques mois seulement) Les touches sont toujours au même endroit, le clavier est très confortable pour les poignets et l’avantage potentiel est grand –  mais la séparation des touches au milieu du clavier a rebuté tout le monde.

Exemple encore plus simple: combien d’entre vous avons réellement appris à taper à la machine, c’est-à-dire avec les bons doigts sur les bonnes touches? Là encore quasiment personne. Nous avons appris à taper au clavier de nous-même. Avec le temps nous sommes devenus assez rapides, mais pas aussi rapides qu’on pourrait le devenir. On pourrait se forcer à taper correctement, mais cela demanderait des efforts et notre vitesse de frappe s’en trouverait ralentie dans un premier temps. Donc on garde nos bonnes vieilles habitudes.

Qu’ont tous ces exemples en commun? Un handicap initial important (ré-apprentissage de la frappe, grosse migration) va éclipser un faible gain au jour le jour (une meilleure frappe, un meilleur système) ou un gain potentiel important à long terme (éviter le syndrome du canal carpien)