2000-May-24 Papier stratégique n°2 : les problèmes de poule et d'oeuf

From The Joel on Software Translation Project

Jump to: navigation, search

Version originale : http://www.joelonsoftware.com/articles/fog0000000054.html

L'idée de la publicité, c'est de mentir sans se faire attraper. La plupart des sociétés, quand elles font une campagne de pub, se contentent de prendre la vérité la plus infâme qu'on puisse leur reprocher, la retournent complètement ("mentent"), et matraquent ce mensonge jusqu'à épuisement. Par exemple, voyager en avion consiste à passer des heures serré comme une sardine dans un siège inconfortable, avec des employés de compagnie aérienne malpolis et déplaisants ; en fait tout le système de transport aérien est conçu comme un outil de torture. Donc, presque toutes les pubs pour compagnies aériennes vont vous montrer combien il est confortable et agréable de voler, et combien vous serez choyé à chaque instant du voyage. Lorsque British Airways a passé une pub avec un homme d'affaires dans un avion rêvant qu'il était un bébé dans un couffin, c'est comme si la raison avait été abolie.

Besoin d'un autre exemple ? Les fabricants de papier sont en train de complètement dévaster nos forêts nationales, coupant à ras de vieilles forêts qui ne leur appartiennent même pas. Donc, quand elles font leur publicité, elles montrent inévitablement une belle pinède quelconque et parlent de leur souci permanent de l'environnement. Les cigarettes font mourir, donc leurs pubs montrent la vie, comme toutes ces pubs avec des gens heureux, souriants, en bonne santé et en train de faire de l'exercice dans la nature. Et ainsi de suite.

Quand le premier Macintosh est sorti, il n'y avait pas de logiciel disponible. Donc évidemment, Apple créa un énorme catalogue en papier glacé listant tous les excellents logiciels "disponibles". La moitié des produits sur la liste avait une inscription en petits caractères qui disait : "en cours de développement", et l'autre moitié des produits ne pouvait pas s'acheter pour tout l'or du monde. Certains logiciels étaient de telles daubes que personne ne les aurait achetés. Mais même avec un épais catalogue de papier glacé montrant un seul "logiciel" par page et le décrivant par une prose dithyrambique, impossible de cacher le fait qu'on ne pouvait pas acheter ne serait-ce qu'un traitement de texte ou un tableur pour tourner sur un Macintosh 128 kB. Il y eut de semblables "guides des logiciels" pour NeXT et BeOS. (Attention, fanatiques de NeXT et de BeOS : je n'ai pas besoin que vous m'expliquiez les mille et un avantages de votre pauvre système d'exploitation pourri, OK ? Faites votre propre blog.)

Amiga, Atari ST, Gem, IBM TopView, NeXT, BeOS, Windows CE, General Magic, la liste des "nouvelles plateformes" ayant échoué s'étend à perte de vue. Parce que ce sont des plateformes, elles ne sont, par définition, pas très intéressantes en elles-mêmes tant qu'elles n'ont pas des logiciels d'enfer qui tournent dessus. Mais, avec peu d'exceptions (et je suis sûr que je vais me ramasser une pelletée d'emails de laborieux fidèles des plateformes obscures et délaissées comme l'Amiga ou le RSTS-11), aucun développeur logiciel pourvu du moindre soupçon de sens commun n'écrirait intentionnellement un logiciel pour une plateforme comptant cent mille utilisateurs les meilleurs jours, comme BeOS, alors qu'ils pourraient faire un effort similaire et créer un logiciel pour une plateforme avec cent millions d'utilisateurs, comme Windows. Le fait qu'il se trouve quand même des développeurs pour écrire des logiciels sur ces systèmes saugrenus prouve que le profit ne motive pas tout : la ferveur religieuse se porte bien. Tant mieux pour toi, coco ! Tu viens d'écrire un bien beau clone de microEmacs pour le Timex Sinclair 1000. Bravo. Voilà 25 cents, va t'acheter une friandise.

Donc. Si vous êtes dans le métier de la création de plateformes, vous allez probablement souffrir de ce qui est connu couramment sous le nom du problème de la poule et de l'oeuf. Personne ne va acheter votre plateforme avant qu'il y ait de bons logiciels qui tournent dessus, et personne ne va écrire des logiciels pour votre plateforme tant qu'elle n'aura pas un large parc d'utilisateurs. Oups. C'est un peu comme le noeud gordien, quoique "spirale de la mort gordienne" collerait peut-être mieux à la réalité.

Le problème de la poule et de l'oeuf, sous ses différentes formes, est l'élément le plus important à comprendre de la stratégie. Bon, OK, vous pouvez peut-être vivre sans le comprendre : Steve Jobs a pratiquement fondé sa carrière sur une incompréhension du problème de la poule et de l'oeuf, par deux fois. Mais, à la différence de Jobs, le reste d'entre nous n'a pas le don de distortion de la réalité, donc nous sommes obligés de nous accrocher et de travailler dur.

Première leçon. Le domaine classique des problème de poule et d'oeuf est celui des plateformes logicielles. Mais voici un autre problème de poule et d'oeuf : chaque mois, des millions de sociétés de carte de crédit expédient des zillions de factures aux consommateurs par courrier. Les gens écrivent des chèques en papier, les fourrent dans des milliers de milliards d'enveloppes, et les renvoient par courrier. Les enveloppes sont mises dans de grandes boîtes et emportées dans des pays où le travail est bon marché, afin qu'elles soient ouvertes et traitées. Mais toute cette manip ne coûte pas rien : aux dernières nouvelles, ça coûte plus de 1$ par facture.

Pour nous, les anciens de l'Internet, c'est une rigolade. "Facturez-moi par email", que vous dites. "Je paierai en ligne !", que vous dites. "Il n'en coûtera, disons, qu'un cent-millième de cent. Vous économiserez des millions". Ou quelque chose du genre.

Et vous avez raison. Alors, un tas de sociétés a essayé de rentrer sur ce marché, qui est techniquement connu sous le nom de présentation de facture électronique. Un exemple d'une telle société est (devinez qui) Microsoft. Leur solution, TransPoint, ressemble à la chose suivante : c'est un site web. Vous y allez, et ça vous montre vos factures. Vous les payez.

Alors maintenant, si vous recevez vos factures sur ce système de Microsoft, vous devez visiter la page web une ou deux fois par semaine pour voir s'il n'y a pas des factures qui vous seraient arrivées, pour ne pas les manquer. Si vous recevez, mettons, 10 factures par mois, ça peut ne pas être trop pénible. Mais là se trouve l'autre problème : il n'y a qu'une petite poignée de fournisseurs qui peuvent vous facturer sur ce système. Donc pour toutes vos autres factures, il vous faudra aller ailleurs.

Au final ? Ca n'en vaut pas la peine. Je serais bien surpris si 10'000 personnes utilisaient ce système. Microsoft doit aller voir des sociétés et leur dire "facturez vos clients sur notre système !". Et la société leur répond : "OK ! ça coûte combien ?" Et Microsoft dit : "50 cents ! Mais c'est beaucoup moins cher que 1 $ !". Et la société demande : "OK. Autre chose ?" Et Microsoft leur dit : "Ah si, ça vous coûtera à peu près 250'000 $ pour configurer le logiciel, connecter votre système au nôtre, et faire en sorte que tout marche".

Et comme Microsoft a si peu d'utilisateurs sur son système, il est difficile d'imaginer que quiconque accepte de payer 250'000 $ pour économiser 50 cents sur 37 utilisateurs. Ha ! Le problème de la poule et de l'oeuf vient de poindre sa vilaine tête ! En fin de compte, Microsoft va simplement dépenser beaucoup d'argent pour sortir de cette situation. Pour des sociétés plus petites, ce n'est pas possible. Alors que pouvez-vous faire ?

Les plateformes logicielles nous donnent en réalité quelques bonnes pistes pour rôtir à la broche le problème de la poule et de l'oeuf. Regardons un peu à l'histoire des plateformes logicielles pour ordinateurs personnels depuis que l'IBM PC est sorti ; peut-être apprendrons-nous quelque chose !

La plupart des gens pense que l'IBM-PC exigeait PC-DOS. C'est pas vrai. Lorsque l'IBM-PC est sorti au début, il y avait le choix entre trois systèmes d'exploitation : PC-DOS, XENIX (une version 8-bit malingre d'UNIX éditée par, ça ne s'invente pas, Microsoft), et quelque chose qui s'appellait UCSD P-System, qui était, si vous arrivez à le croire, exactement comme Java : de beaux et lents programmes, portables d'une machine à une autre, à peu près 20 ans avant Java.

De nos jours, la plupart des gens n'a jamais entendu parler de XENIX ou des bizarreries d'UCSD. Vous les jeunes, vous pensez probablement que c'est parce que Microsoft a conquis le marché des systèmes d'exploitation minables à force de marketing, ou quelque chose du genre. Ce n'est absolument pas vrai ; Microsoft était minuscule, à l'époque. La société qui avait le pouvoir marketing était Digital Research, qui avait encore un autre système d'exploitation. Alors, pourquoi PC-DOS fut-il le gagnant de cette course à trois ?

Avant le PC, le seul vrai système d'exploitation disponible était CP/M, bien que le marché des ordinateurs CP/M, qui coûtaient à peu près 10'000 $, était trop petit. Ces ordinateurs étaient pénibles et chers et pas très faciles à utiliser. Mais ceux qui les achetaient faisaient du traitement de texte avec, parce qu'il y avait un bon traitement texte du nom de WordStar for CP/M, et l'Apple II n'était vraiment pas capable de faire du traitement de texte (déjà, il n'y avait pas de lettres minuscules).

Mais voici un fait peu connu : même DOS 1.0 était conçu avec un mode de compatibilité arrière vers CP/M intégré. Non seulement DOS avait sa propre interface de programmation innovante, connue des programmeurs sérieux sous le nom de INT 21, mais il supportait aussi la vieille interface CP/M. DOS pouvait presque faire tourner les logiciels CP/M. En fait, il aura suffi de changer un seul octet dans le code pour porter WordStar sous DOS. (Les "vrais" programmeurs sauraient vous dire de quel octet il s'agit, pour ma part ça fait longtemps que j'ai oublié.)

Ca vaut le coup d'être répété. WordStar fut porté sous DOS en changeant un seul octet dans le code. Réfléchissez-y un peu.

Voilà.

Compris ?

DOS était populaire parce qu'il avait des logiciels dès le premier jour. Et il avait des logiciels parce que Tim Paterson avait pensé à y intégrer une compatibilité avec CP/M, parce que loin dans la nuit des temps, il se trouvait quelqu'un qui savait s'y prendre avec les problèmes de poules et d'oeufs.

Nous sommes tous passés à Windows 3.x. L'indice important dans cette phrase est le 3. Pourquoi ne sommes-nous tous pas passés à Windows 1.0 ? Ou Windows 2.0 ? Ou Windows 286, ou Windows 386 qui le suivit ? Est-ce parce que ça prend toujours cinq versions à Microsoft pour arriver à quelque chose de correct ? Non.

La raison est encore plus subtile que ça, et elle a à voir avec des fonctionnalités matérielles très obscures qui firent leur apparition dans le processeur 80386, dont Windows 3.0 avait besoin.

  • Fonctionnalité numéro 1 : les anciens programmes en DOS affichaient des choses à l'écran en écrivant directement à des endroits de la mémoire qui correspondaient à des emplacements caractères sur l'écran. C'était la seule manière d'afficher assez rapidement pour que le programme ait l'air correct. Mais Windows fonctionnait en mode graphique. Sur les puces Intel datant d'avant le 80386, les ingénieurs Microsoft n'avaient pas d'autre choix que de repasser en mode caractère plein écran lorsqu'ils faisaient tourner des programmes DOS. Mais sur le 80386, ils pouvaient mettre en place des blocs de mémoire virtuelle et des interruptions, de sorte que le système d'exploitation était notifié à chaque fois qu'un programme essayait d'écrire à l'emplacement mémoire correspondant à l'écran. Windows pouvait ensuite dessiner instantanément le texte équivalent sur une fenêtre graphique à l'écran.
  • Fonctionnalité numéro 2 : les anciens programmes en DOS fonctionnaient en faisant l'hypothèse qu'ils étaient tout seuls sur la puce. En conséquence, ils ne fonctionnaient pas bien les uns avec les autres. Mais l'Intel 80386 avait la possibilité de créer des PC "virtuels", chacun d'entre eux se comportant comme un 80386 à part entière, de sorte que les vieux programmes pour PC pouvaient faire comme s'ils étaient tout seuls sur l'ordinateur, alors que d'autres programmes tournaient au même moment, et qu'eux-mêmes faisaient aussi comme s'ils étaient tout seuls sur l'ordinateur.

Donc Windows 3.x sur Intel 30386 était la première version qui pouvait faire tourner de façon acceptable plusieurs programmes DOS ensemble. (Techniquement, Windows 386 en était aussi capable, mais les 80386 étaient rares et chers jusqu'à à peu près la même époque à laquelle Windows 3.0 est sorti.) Windows 3.0 était la première version qui pouvait être raisonnablement utilisée par quelqu'un pour faire tourner tous ses vieux logiciels.

Windows 95 ? Pas de problème. Une nouvelle API 32 bit toute propre, mais le système continuait toujours de faire parfaitement fonctionner les vieux logiciels 16 bits. Microsoft s'en fit une obsession, et dépensa un bon paquet de thunes pour tester la compatibilité avec Windows 95 de tous les vieux programmes qu'on pouvait trouver. Jon Ross, qui a écrit la première version de SimCity pour Windows 3.x, me raconta un jour qu'il avait accidentellement laissé traîner un bug dans SimCity, à un endroit où il lisait un bout de mémoire qu'il venait de libérer. Ouaip. Ca marchait bien sur Windows 3.x, parce que la mémoire restait là. Mais voici ce qui est vraiment étonnant : sur les versions bêta de Windows 95, SimCity plantait. Microsoft est allé fouiller pour trouver le problème, et a ajouté du code dans Windows 95 qui regarde si SimCity est en train de tourner. Si c'est le cas, le gestionnaire de mémoire passe dans un mode spécial qui ne libère pas tout de suite la mémoire allouée. C'est ce genre d'obsession avec la compatibilité ascendante qui fit que les gens acceptèrent de passer à Windows 95.

Vous devriez commencer à avoir des idées sur la manière de résoudre le problème de poule et d'oeuf : vous fournissez une compatibilité ascendante qui vous apporte une cargaison de poules (ou une cargaison d'oeufs, selon votre façon de voir les choses), puis vous vous adossez à votre fauteuil et ratissez les biftons.

Ah. Revenons maintenant à la présentation de facture électronique. Vous vous en souvenez ? Le problème poule-oeuf, c'est que vous ne pouvez l'utiliser que pour recevoir des factures émise par le fournisseur d'électricité qui couvre le nord-est du pays, donc vous n'utilisez pas le service. Quelle est la solution ? Microsoft n'a pas trouvé. PayMyBills.com, et une demi-douzaine d'autres petites boîtes de la Silicon Valley, ont toutes trouvé en même temps. Il faut fournir un mode de compatibilité ascendante : si le fournisseur ne s'interface pas avec le système électronique, alors laissez le fournisseur poster sa satanée facture papier, puisqu'il y tient, à l'avenue de l'Université, Palo Alto, ou un paquet d'êtres humains en chair et en os les ouvre et les scanne. Maintenant, vous pouvez avoir toutes vos factures sur leur site web. Puisque n'importe quel fournisseur sur terre est compatible avec ce système, les clients sont contents de l'utiliser, même s'il fonctionne dans ce mode de compatibilité étrange dans lequel des idiotes de banques membres du réseau Visa envoient une facture de façon électronique à une imprimante, l'impriment sur du papier, la mettent dans une enveloppe, l'expédient à 2500 kilomètres de là en Californie, où l'enveloppe est ouverte, les prospectus stupides qui cherchent à vous fourguer "gratuitement" des radio-réveils AM pourris qui coûtent en fait 9,95 $ sont jetés dans une décharge quelque part, et la facture est scannée pour aller dans un ordinateur et être mise sur le web, là où elle aurait dû être envoyée dès le départ. Mais ce mode de compatibilité ascendante finira un jour par disparaître, parce que PayMyBills.com, contrairement à Microsoft, peut réellement attirer des clients sur son système, donc bientôt ils pourront aller voir ces idiotes de banques membres du réseau Visa et leur dire "Hé, j'ai 93'400 clients à vous. Pourquoi est-ce que vous n'économiseriez pas 93'400 $ par mois avec une connexion directe à mon service ?" Et tout à coup, PayMyBills.com est très profitable pendant que Microsoft peine toujours à obtenir un deuxième contrat avec un autre fournisseur d'électricité, peut-être avec un qui est en Géorgie pour changer.

On peut considérer que les sociétés qui manquent de repérer le problème de la poule et de l'oeuf cherchent un peu à faire bouillir l'océan : leur plan de développement suppose que 93 millions d'humains coopèreront d'un seul coup avec leur idée farfelue avant qu'elle ne fonctionne. L'une des idées les plus éminemment stupides dont j'aie jamais entendu parler s'appelait ActiveNames. Leur idée débile, c'était que chacun, dans le monde entier, allait installer un petit module dans son logiciel de courrier électronique qui faisait une recherche dans leurs bases de données centralisées pour obtenir la vraie adresse email. Puis, au lieu de dire aux gens que votre adresse email est kermit@muppet-show.com, vous leur diriez que votre ActiveName est "spolsky", et que s'ils veulent vous envoyer un email, ils ont besoin d'installer ce petit module spécial. BZZZZT ! Mauvaise réponse. Je ne sais même pas par où commencer la liste de toutes les raisons pour lesquelles cette idée ne marchera jamais.

Conclusion : si vous êtes sur un marché avec un problème de poule et d'oeuf, vous avez vraiment intérêt à avoir une compatibilité ascendante qui dissolve le problème, ou bien ça va vous prendre bieeeen longtemps avant que ça commence à marcher (genre, l'éternité).

Il y a beaucoup d'autres sociétés qui ont repéré d'emblée le problème de la poule et de l'oeuf, et qui s'en sont départis intelligemment. Quand Transmeta dévoila son nouveau processeur, c'était la première fois depuis très longtemps qu'une société qui n'était pas Intel admettait finalement que si vous êtes un processeur, et que si vous voulez que des zillions de gens vous achètent, vous n'avez pas d'autre choix que de faire tourner du code x86. Et ceci après que Hitachi, Motorola, IBM, MIPS, National Semiconductor, et qui sait combien d'autres sociétés encore se racontèrent qu'ils avaient le droit d'inventer un nouveau jeu d'instructions. L'architecture Transmeta fait l'hypothèse dès le départ que tout plan d'affaires qui envisage la fabrication d'ordinateurs incapables de faire tourner Excel n'aboutira jamais à rien.

Personal tools