Loading...

GRANDS PIRATES INFORMATIQUES

Original

Juillet 2004

(Cet essai est tiré d'une conférence donnée à Oscon 2004.)

Il y a quelques mois, j'ai terminé un nouveau livre, et dans les critiques, je continue de remarquer des mots comme "provocateur" et "controversé". Pour ne rien dire de "idiot".

Je n'avais pas l'intention de rendre le livre controversé. J'essayais de le rendre efficace. Je ne voulais pas perdre le temps des gens à leur dire des choses qu'ils savaient déjà. Il est plus efficace de leur donner simplement les différences. Mais je suppose que cela doit forcément donner un livre alarmant.

Les Edisons

Il n'y a aucune controverse sur l'idée la plus controversée : la suggestion que la variation de la richesse ne soit pas aussi importante que nous le pensons.

Je n'ai pas dit dans le livre que la variation de la richesse était en soi une bonne chose. J'ai dit que dans certaines situations, cela pouvait être le signe de bonnes choses. Un mal de tête lancinant n'est pas une bonne chose, mais il peut être le signe d'une bonne chose - par exemple, que vous retrouvez conscience après avoir été frappé à la tête.

La variation de la richesse peut être le signe d'une variation de la productivité. (Dans une société d'une seule personne, elles sont identiques.) Et cela est presque certainement une bonne chose : si votre société n'a aucune variation de productivité, ce n'est probablement pas parce que tout le monde est Thomas Edison. C'est probablement parce que vous n'avez pas de Thomas Edison.

Dans une société à faible technologie, on ne voit pas beaucoup de variation de productivité. Si vous avez une tribu de nomades qui ramassent des bâtons pour un feu, combien plus productif le meilleur ramasseur de bâtons va-t-il être que le pire ? Un facteur deux ? Alors que lorsque vous donnez aux gens un outil complexe comme un ordinateur, la variation de ce qu'ils peuvent faire avec lui est énorme.

Ce n'est pas une idée nouvelle. Fred Brooks en a parlé en 1974, et l'étude qu'il a citée a été publiée en 1968. Mais je pense qu'il a sous-estimé la variation entre les programmeurs. Il a écrit sur la productivité en lignes de code : les meilleurs programmeurs peuvent résoudre un problème donné en un dixième du temps. Mais que se passe-t-il si le problème n'est pas donné ? En programmation, comme dans de nombreux domaines, la partie difficile n'est pas de résoudre les problèmes, mais de décider quels problèmes résoudre. L'imagination est difficile à mesurer, mais en pratique, elle domine le type de productivité qui est mesurée en lignes de code.

La productivité varie dans tous les domaines, mais il en existe peu où elle varie autant. La variation entre les programmeurs est si grande qu'elle devient une différence de nature. Je ne pense pas que ce soit quelque chose d'intrinsèque à la programmation, cependant. Dans tous les domaines, la technologie amplifie les différences de productivité. Je pense que ce qui se passe en programmation, c'est simplement que nous avons beaucoup de levier technologique. Mais dans tous les domaines, le levier s'allonge, donc la variation que nous observons est quelque chose que de plus en plus de domaines verront au fil du temps. Et le succès des entreprises et des pays dépendra de plus en plus de la façon dont ils y feront face.

Si la variation de la productivité augmente avec la technologie, alors la contribution des individus les plus productifs ne sera pas seulement disproportionnellement importante, mais augmentera effectivement avec le temps. Lorsque vous atteignez le point où 90 % de la production d'un groupe est créée par 1 % de ses membres, vous perdez gros si quelque chose (qu'il s'agisse de raids vikings, ou de planification centralisée) fait baisser leur productivité à la moyenne.

Si nous voulons tirer le meilleur parti d'eux, nous devons comprendre ces personnes particulièrement productives. Qu'est-ce qui les motive ? De quoi ont-ils besoin pour faire leur travail ? Comment les reconnaître ? Comment les faire venir travailler pour vous ? Et puis bien sûr, il y a la question, comment devenir l'un d'eux ?

Plus que de l'argent

Je connais une poignée de super-pirates informatiques, alors je me suis assis et j'ai réfléchi à ce qu'ils ont en commun. Leur qualité déterminante est probablement qu'ils aiment vraiment programmer. Les programmeurs ordinaires écrivent du code pour payer les factures. Les grands pirates informatiques considèrent cela comme quelque chose qu'ils font pour le plaisir, et qu'ils sont ravis de trouver des gens qui les paient pour cela.

On dit parfois que les grands programmeurs sont indifférents à l'argent. Ce n'est pas tout à fait vrai. Il est vrai que tout ce qui les intéresse vraiment c'est de faire un travail intéressant. Mais si vous gagnez assez d'argent, vous pouvez travailler sur ce que vous voulez, et pour cette raison, les pirates informatiques sont attirés par l'idée de gagner des sommes vraiment importantes. Mais tant qu'ils doivent encore se présenter au travail tous les jours, ils se soucient plus de ce qu'ils font là-bas que de ce qu'ils sont payés pour le faire.

Économiquement, c'est un fait de la plus grande importance, car cela signifie que vous n'avez pas à payer aux grands pirates informatiques quoi que ce soit de ce qu'ils valent. Un grand programmeur peut être dix ou cent fois plus productif qu'un programmeur ordinaire, mais il se considérera chanceux d'être payé trois fois plus. Comme je l'expliquerai plus tard, c'est en partie parce que les grands pirates informatiques ne savent pas à quel point ils sont bons. Mais c'est aussi parce que l'argent n'est pas la chose principale qu'ils veulent.

Que veulent les pirates informatiques ? Comme tous les artisans, les pirates informatiques aiment les bons outils. En fait, c'est un euphémisme. Les bons pirates informatiques trouvent insupportable d'utiliser de mauvais outils. Ils refuseront tout simplement de travailler sur des projets avec la mauvaise infrastructure.

Dans une start-up où j'ai travaillé, l'une des choses affichées sur notre tableau d'affichage était une publicité d'IBM. C'était une photo d'un AS400, et le titre disait, je crois, "les pirates informatiques le méprisent ". [1]

Lorsque vous décidez quelle infrastructure utiliser pour un projet, vous ne prenez pas seulement une décision technique. Vous prenez également une décision sociale et cela peut être la plus importante des deux. Par exemple, si votre entreprise veut écrire un logiciel, il peut sembler prudent de l'écrire en Java. Mais lorsque vous choisissez un langage, vous choisissez également une communauté. Les programmeurs que vous pourrez embaucher pour travailler sur un projet Java ne seront pas aussi intelligents que ceux que vous pourriez obtenir pour travailler sur un projet écrit en Python. Et la qualité de vos pirates informatiques compte probablement plus que le langage que vous choisissez. Bien que, franchement, le fait que les bons pirates informatiques préfèrent Python à Java devrait vous dire quelque chose sur les mérites relatifs de ces langages.

Les types commerciaux préfèrent les langages les plus populaires parce qu'ils considèrent les langages comme des normes. Ils ne veulent pas miser l'entreprise sur Betamax. Le truc avec les langages, c'est qu'ils ne sont pas que des normes. Si vous devez déplacer des bits sur un réseau, par tous les moyens, utilisez TCP/IP. Mais un langage de programmation n'est pas qu'un format. Un langage de programmation est un moyen d'expression.

J'ai lu que Java vient de dépasser Cobol en tant que langage le plus populaire. En tant que norme, on ne pourrait pas rêver mieux. Mais en tant que moyen d'expression, on pourrait faire beaucoup mieux. De tous les grands programmeurs auxquels je peux penser, je ne connais qu'un seul qui programmerait volontairement en Java. Et de tous les grands programmeurs auxquels je peux penser qui ne travaillent pas pour Sun, sur Java, je n'en connais aucun.

Les grands pirates informatiques insistent généralement également sur l'utilisation de logiciels open source. Pas seulement parce que c'est mieux, mais parce que cela leur donne plus de contrôle. Les bons pirates informatiques insistent sur le contrôle. Cela fait partie de ce qui les rend bons pirates informatiques : lorsque quelque chose est cassé, ils doivent le réparer. Vous voulez qu'ils se sentent ainsi à propos du logiciel qu'ils écrivent pour vous. Vous ne devriez pas être surpris lorsqu'ils se sentent de la même manière à propos du système d'exploitation.

Il y a quelques années, un ami investisseur en capital-risque m'a parlé d'une nouvelle start-up à laquelle il était associé. Cela semblait prometteur. Mais la prochaine fois que j'ai parlé avec lui, il a dit qu'ils avaient décidé de construire leur logiciel sur Windows NT, et venaient d'embaucher un développeur NT très expérimenté pour être leur directeur technique. Lorsque j'ai entendu cela, j'ai pensé, ces gars sont condamnés. D'une part, le CTO ne pouvait pas être un pirate informatique de premier ordre, car pour devenir un éminent développeur NT, il aurait dû utiliser NT volontairement, à plusieurs reprises, et je ne pouvais pas imaginer un grand pirate informatique faire ça ; et d'autre part, même s'il était bon, il aurait du mal à embaucher quelqu'un de bien pour travailler pour lui si le projet devait être construit sur NT. [2]

La frontière finale

Après les logiciels, l'outil le plus important pour un pirate informatique est probablement son bureau. Les grandes entreprises pensent que la fonction des bureaux est d'exprimer le rang. Mais les pirates informatiques utilisent leurs bureaux pour plus que cela : ils utilisent leur bureau comme un endroit où penser. Et si vous êtes une entreprise technologique, leurs pensées sont votre produit. Donc, faire travailler les pirates informatiques dans un environnement bruyant et distrayant, c'est comme avoir une usine de peinture où l'air est plein de suie.

La bande dessinée Dilbert a beaucoup à dire sur les cubicules, et avec raison. Tous les pirates informatiques que je connais les méprisent. La simple perspective d'être interrompu suffit à empêcher les pirates informatiques de travailler sur des problèmes difficiles. Si vous voulez faire du vrai travail dans un bureau avec des cubicules, vous avez deux options : travailler à domicile, ou venir tôt ou tard ou un week-end, quand personne d'autre n'est là. Les entreprises ne réalisent-elles pas que c'est le signe que quelque chose est cassé ? Un environnement de bureau est censé être quelque chose qui vous aide à travailler, pas quelque chose malgré lequel vous travaillez.

Des entreprises comme Cisco sont fières que tout le monde ait un cubicle, même le PDG. Mais ils ne sont pas aussi avancés qu'ils le pensent ; évidemment ils considèrent toujours les bureaux comme un signe de rang. Notez également que Cisco est célèbre pour faire très peu de développement de produits en interne. Ils obtiennent de nouvelles technologies en rachetant les start-ups qui les ont créées - où les pirates informatiques avaient vraisemblablement un endroit calme pour travailler.

Une grande entreprise qui comprend ce dont les pirates informatiques ont besoin est Microsoft. J'ai vu une fois une publicité de recrutement pour Microsoft avec une grande photo d'une porte. Travaillez pour nous, c'était la prémisse, et nous vous donnerons un endroit pour travailler où vous pourrez réellement faire du travail. Et vous savez, Microsoft est remarquable parmi les grandes entreprises en ce qu'elles sont capables de développer des logiciels en interne. Pas bien, peut-être, mais assez bien.

Si les entreprises veulent que les pirates informatiques soient productifs, elles devraient regarder ce qu'ils font à la maison. À la maison, les pirates informatiques peuvent organiser les choses eux-mêmes afin de maximiser leur productivité. Et lorsqu'ils travaillent à domicile, les pirates informatiques ne travaillent pas dans des espaces ouverts et bruyants ; ils travaillent dans des pièces avec des portes. Ils travaillent dans des endroits confortables et conviviaux avec des gens autour et un endroit où se promener lorsqu'ils ont besoin de réfléchir à quelque chose, au lieu de se trouver dans des boîtes de verre installées dans des hectares de parkings. Ils ont un canapé sur lequel ils peuvent faire une sieste lorsqu'ils se sentent fatigués, au lieu de rester dans le coma à leur bureau, en faisant semblant de travailler. Il n'y a pas d'équipe de personnes avec des aspirateurs qui rugissent tous les soirs pendant les heures de pointe de piratage. Il n'y a pas de réunions ou, Dieu nous en préserve, de retraites d'entreprise ou d'exercices de team-building. Et lorsque vous regardez ce qu'ils font sur cet ordinateur, vous constaterez que cela renforce ce que j'ai dit plus tôt à propos des outils. Ils doivent peut-être utiliser Java et Windows au travail, mais à la maison, où ils peuvent choisir pour eux-mêmes, vous êtes plus susceptible de les trouver en train d'utiliser Perl et Linux.

En effet, ces statistiques sur Cobol ou Java étant le langage le plus populaire peuvent être trompeuses. Ce que nous devrions regarder, si nous voulons savoir quels outils sont les meilleurs, c'est ce que les pirates informatiques choisissent lorsqu'ils peuvent choisir librement - c'est-à-dire dans des projets qui leur sont propres. Lorsque vous posez cette question, vous constatez que les systèmes d'exploitation open source ont déjà une part de marché dominante, et le langage numéro un est probablement Perl.

Intéressant

En plus de bons outils, les pirates informatiques veulent des projets intéressants. Qu'est-ce qui rend un projet intéressant ? Eh bien, évidemment, des applications ouvertement sexy comme les avions furtifs ou les logiciels d'effets spéciaux seraient intéressants à travailler. Mais toute application peut être intéressante si elle pose des défis techniques nouveaux. Il est donc difficile de prédire quels problèmes les pirates informatiques aimeront, car certains deviennent intéressants seulement lorsque les personnes qui y travaillent découvrent un nouveau type de solution. Avant ITA (qui a écrit le logiciel à l'intérieur d'Orbitz), les personnes qui travaillaient sur les recherches de tarifs aériens pensaient probablement que c'était l'une des applications les plus ennuyeuses imaginables. Mais ITA a fait de cela quelque chose d'intéressant en redéfinissant le problème d'une manière plus ambitieuse.

Je pense que la même chose s'est produite chez Google. Lorsque Google a été fondée, la sagesse conventionnelle parmi les soi-disant portails était que la recherche était ennuyeuse et sans importance. Mais les gars de Google ne pensaient pas que la recherche était ennuyeuse, et c'est pourquoi ils la font si bien.

C'est un domaine où les managers peuvent faire la différence. Comme un parent qui dit à un enfant, je parie que tu ne peux pas nettoyer toute ta chambre en dix minutes, un bon manager peut parfois redéfinir un problème comme un problème plus intéressant. Steve Jobs semble être particulièrement doué pour cela, en partie simplement en ayant des exigences élevées. Il y avait beaucoup de petits ordinateurs peu coûteux avant le Mac. Il a redéfini le problème comme suit : en faire un qui soit beau. Et cela a probablement poussé les développeurs plus fort que n'importe quelle carotte ou bâton pourrait le faire.

Ils ont certainement livré. Lorsque le Mac est apparu pour la première fois, vous n'aviez même pas besoin de l'allumer pour savoir qu'il serait bon ; vous pouviez le dire à partir du boîtier. Il y a quelques semaines, je marchais dans la rue à Cambridge, et dans les poubelles de quelqu'un, j'ai vu ce qui semblait être un Mac sac de transport. J'ai regardé à l'intérieur, et il y avait un Mac SE. Je l'ai porté à la maison et je l'ai branché, et il a démarré. Le visage heureux de Macintosh, puis le Finder. Mon Dieu, c'était tellement simple. C'était comme... Google.

Les pirates informatiques aiment travailler pour des personnes ayant des exigences élevées. Mais ce n'est pas suffisant d'être exigeant. Vous devez insister sur les bonnes choses. Ce qui signifie généralement que vous devez être vous-même un pirate informatique. J'ai vu des articles occasionnels sur la façon de gérer les programmeurs. Vraiment il devrait y avoir deux articles : un sur ce qu'il faut faire si vous êtes vous-même un programmeur, et un sur ce qu'il faut faire si vous ne l'êtes pas. Et le deuxième pourrait probablement être condensé en deux mots : abandonnez.

Le problème n'est pas tant la gestion au jour le jour. Les vraiment bons pirates informatiques sont pratiquement autogérés. Le problème est que, si vous n'êtes pas un pirate informatique, vous ne pouvez pas dire qui sont les bons pirates informatiques. Un problème similaire explique pourquoi les voitures américaines sont si laides. Je l'appelle le paradoxe du design. Vous pourriez penser que vous pourriez rendre vos produits beaux simplement en embauchant un grand designer pour les concevoir. Mais si vous-même n'avez pas bon goût, comment allez-vous reconnaître un bon designer ? Par définition, vous ne pouvez pas le dire à partir de son portfolio. Et vous ne pouvez pas vous fier aux prix qu'il a remportés ou aux emplois qu'il a occupés, car dans le design, comme dans la plupart des domaines, ceux-ci ont tendance à être dictés par la mode et le piston, l'habileté réelle étant un lointain troisième. Il n'y a pas moyen de contourner cela : vous ne pouvez pas gérer un processus destiné à produire de belles choses sans savoir ce qu'est le beau. Les voitures américaines sont laides parce que les constructeurs automobiles américains sont dirigés par des personnes ayant mauvais goût.

Beaucoup de gens dans ce pays considèrent le goût comme quelque chose d'insaisissable, ou même de frivole. Ce n'est ni l'un ni l'autre. Pour piloter le design, un manager doit être l'utilisateur le plus exigeant des produits d'une entreprise. Et si vous avez vraiment bon goût, vous pouvez, comme Steve Jobs, faire de vous satisfaire le genre de problème que les bonnes personnes aiment résoudre.

Petits problèmes désagréables

Il est assez facile de dire quels types de problèmes ne sont pas intéressants : ceux où, au lieu de résoudre quelques grands problèmes clairs, vous avez à résoudre beaucoup de petits problèmes désagréables. L'un des pires types de projets est d'écrire une interface pour un logiciel qui est plein de bogues. Un autre est lorsque vous devez personnaliser quelque chose pour les besoins complexes et mal définis d'un client individuel. Pour les pirates informatiques, ces types de projets sont la mort de mille coupures.

La caractéristique distinctive des petits problèmes désagréables est que vous n'apprenez rien d'eux. Écrire un compilateur est intéressant parce que cela vous apprend ce qu'est un compilateur. Mais écrire une interface pour un logiciel buggé ne vous apprend rien, car les bogues sont aléatoires. [3] Ce n'est donc pas seulement la minutie qui fait que les bons pirates informatiques évitent les petits problèmes désagréables. C'est plutôt une question de préservation de soi. Travailler sur des petits problèmes désagréables vous rend stupide. Les bons pirates informatiques l'évitent pour la même raison que les mannequins évitent les cheeseburgers.

Bien sûr, certains problèmes ont intrinsèquement ce caractère. Et parce que de l'offre et de la demande, ils sont particulièrement bien payés. Donc, une entreprise qui a trouvé un moyen de faire travailler de grands pirates informatiques sur des problèmes fastidieux serait très réussie. Comment feriez-vous ?

Un endroit où cela se produit est dans les start-ups. Dans notre start-up, nous avions Robert Morris qui travaillait comme administrateur système. C'est comme avoir les Rolling Stones qui jouent à une Bar Mitzvah. Vous ne pouvez pas embaucher ce genre de talent. Mais les gens feront n'importe quelle quantité de corvée pour des entreprises dont ils sont les fondateurs. [4]

Les plus grandes entreprises résolvent le problème en partitionnant l'entreprise. Elles font travailler des personnes intelligentes pour elles en créant un département distinct de R&D où les employés n'ont pas à travailler directement sur les petits problèmes désagréables des clients. [5] Dans ce modèle, la recherche le département fonctionne comme une mine. Ils produisent de nouvelles idées ; peut-être que le reste de l'entreprise pourra les utiliser.

Il se peut que vous n'ayez pas à aller aussi loin. La programmation ascendante suggère une autre façon de partitionner l'entreprise : faire en sorte que les personnes intelligentes travaillent comme des fabricants d'outils. Si votre entreprise fabrique des logiciels pour faire x, faites en sorte qu'un groupe construise des outils pour écrire des logiciels de ce type, et un autre qui utilise ces outils pour écrire les applications. De cette façon, vous pourriez être en mesure de faire en sorte que des personnes intelligentes écrivent 99 % de votre code, mais en les gardant presque aussi isolées des utilisateurs qu'elles le seraient dans un département de recherche traditionnel. Les fabricants d'outils auraient des utilisateurs, mais ce ne seraient que les développeurs de l'entreprise. [6]

Si Microsoft utilisait cette approche, ses logiciels ne seraient pas aussi remplis de failles de sécurité, car les personnes moins intelligentes qui écrivent les applications réelles ne feraient pas de choses de bas niveau comme l'allocation de mémoire. Au lieu d'écrire Word directement en C, ils assembleraient de gros blocs Lego de langage Word. (Duplo, je crois, est le terme technique.)

Le regroupement

En plus des problèmes intéressants, ce que les bons pirates informatiques aiment, c'est les autres bons pirates informatiques. Les grands pirates informatiques ont tendance à se regrouper - parfois de manière spectaculaire, comme chez Xerox Parc. Vous n'attirerez pas de bons pirates informatiques proportionnellement à la qualité de l'environnement que vous créez pour eux. La tendance au regroupement signifie que c'est plus comme le carré de l'environnement. C'est donc le gagnant qui prend tout. À un moment donné, il n'y a qu'une dizaine ou une vingtaine d'endroits où les pirates informatiques veulent le plus travailler, et si vous n'en faites pas partie, vous n'aurez pas seulement moins de grands pirates informatiques, vous n'en aurez aucun.

Avoir de grands pirates informatiques n'est pas, en soi, suffisant pour faire d'une entreprise une réussite. Cela fonctionne bien pour Google et ITA, qui sont deux des points chauds en ce moment, mais cela n'a pas aidé Thinking Machines ou Xerox. Sun a connu une bonne période pendant un certain temps, mais son modèle économique est un ascenseur descendant. Dans cette situation, même les meilleurs pirates informatiques ne peuvent pas vous sauver.

Je pense cependant que, toutes choses étant égales par ailleurs, une entreprise qui peut attirer de grands pirates informatiques aura un énorme avantage. Il y a des gens qui ne seraient pas d'accord avec cela. Lorsque nous faisions le tour des sociétés de capital-risque dans les années 1990, plusieurs nous ont dit que les logiciels les entreprises ne gagnaient pas en écrivant de grands logiciels, mais grâce à la marque, et en dominant les canaux, et en faisant les bonnes affaires.

Ils semblaient vraiment le croire, et je pense savoir pourquoi. Je pense que ce que beaucoup de VC recherchent, au moins inconsciemment, c'est le prochain Microsoft. Et bien sûr, si Microsoft est votre modèle, vous ne devriez pas chercher des entreprises qui espèrent gagner en écrivant de grands logiciels. Mais les VC se trompent de chercher le prochain Microsoft, car aucune startup ne peut être le prochain Microsoft à moins qu'une autre entreprise ne soit prête à se plier au bon moment et à être le prochain IBM.

C'est une erreur d'utiliser Microsoft comme modèle, car toute sa culture découle de cette chance unique. Microsoft est un mauvais point de données. Si vous le jetez, vous constatez que les bons produits ont tendance à gagner sur le marché. Ce que les VC devraient chercher, c'est le prochain Apple, ou le prochain Google.

Je pense que Bill Gates le sait. Ce qui l'inquiète chez Google, ce n'est pas la puissance de sa marque, mais le fait qu'ils ont de meilleurs pirates informatiques. [7]

La reconnaissance

Alors, qui sont les grands pirates informatiques ? Comment savoir quand vous en rencontrez un ? Il s'avère que c'est très difficile. Même les pirates informatiques ne peuvent pas le dire. Je suis assez sûr maintenant que mon ami Trevor Blackwell est un grand pirate informatique. Vous avez peut-être lu sur Slashdot comment il a fait son propre Segway. Le remarquable dans ce projet, c'est qu'il a écrit tout le logiciel en une journée (en Python, soit dit en passant).

Pour Trevor, c'est la norme. Mais quand je l'ai rencontré pour la première fois, je pensais qu'il était un idiot complet. Il était debout dans le bureau de Robert Morris en lui parlant de quelque chose ou d'autre, et je me souviens de m'être tenu derrière lui en faisant des gestes frénétiques à Robert pour qu'il chasse ce fou de son bureau afin que nous puissions aller déjeuner. Robert dit qu'il a mal jugé Trevor au début aussi. Apparemment, lorsque Robert l'a rencontré pour la première fois, Trevor venait de commencer un nouveau projet qui consistait à noter tout ce qui concernait tous les aspects de sa vie sur une pile de fiches, qu'il portait avec lui partout. Il venait également d'arriver du Canada, et avait un fort accent canadien et une coupe mulet.

Le problème est aggravé par le fait que les pirates informatiques, malgré leur réputation d'indifférence sociale, font parfois beaucoup d'efforts pour paraître intelligents. Quand j'étais en école d'ingénieurs, j'avais l'habitude de traîner au MIT AI Lab de temps en temps. C'était un peu intimidant au début. Tout le monde parlait si vite. Mais après un certain temps, j'ai appris l'astuce de parler vite. Vous n'avez pas besoin de penser plus vite ; il suffit d'utiliser deux fois plus de mots pour tout dire.

Avec autant de bruit dans le signal, il est difficile de distinguer les bons pirates informatiques lorsque vous les rencontrez. Je ne peux pas le dire, même maintenant. Vous ne pouvez pas non plus le dire à partir de leurs CV. Il semble que la seule façon de juger un pirate informatique est de travailler avec lui sur quelque chose.

Et c'est la raison pour laquelle les domaines de haute technologie ne se produisent qu'autour des universités. L'ingrédient actif ici, ce ne sont pas tant les professeurs que les étudiants. Les startups se développent autour des universités parce que les universités réunissent de jeunes gens prometteurs et les font travailler sur les mêmes projets. Les plus intelligents apprennent qui sont les autres intelligents, et ensemble ils inventent de nouveaux projets.

Parce que vous ne pouvez pas reconnaître un grand pirate informatique sauf en travaillant avec lui, les pirates informatiques eux-mêmes ne peuvent pas savoir à quel point ils sont bons. Cela est vrai dans une certaine mesure dans la plupart des domaines. J'ai constaté que les personnes qui sont douées pour quelque chose ne sont pas tant convaincues de leur propre grandeur que mystifiées par le fait que tout le monde semble si incompétent.

Mais il est particulièrement difficile pour les pirates informatiques de savoir à quel point ils sont bons, car il est difficile de comparer leur travail. C'est plus facile dans la plupart des autres domaines. Au cent mètres, vous savez en 10 secondes qui est le plus rapide. Même en mathématiques, il semble y avoir un consensus général sur les problèmes qui sont difficiles à résoudre, et ce qui constitue une bonne solution. Mais le piratage informatique est comme l'écriture. Qui peut dire lequel de deux romans est meilleur ? Certainement pas les auteurs.

Avec les pirates informatiques, au moins, les autres pirates informatiques peuvent le dire. C'est parce que, contrairement aux romanciers, les pirates informatiques collaborent sur des projets. Lorsque vous devez résoudre quelques problèmes difficiles sur le net avec quelqu'un, vous apprenez assez rapidement à quel point il les résout bien. Mais les pirates informatiques ne peuvent pas se regarder travailler. Donc, si vous demandez à un grand pirate informatique à quel point il est bon, il est presque certain de répondre, Je ne sais pas. Il ne fait pas que faire preuve de modestie. Il ne le sait vraiment pas.

Et aucun de nous ne le sait, sauf pour les personnes avec lesquelles nous avons réellement travaillé. Ce qui nous met dans une situation étrange : nous ne savons pas qui devraient être nos héros. Les pirates informatiques qui deviennent célèbres ont tendance à devenir célèbres par des accidents de relations publiques aléatoires. De temps en temps, j'ai besoin de donner un exemple de grand pirate informatique, et je ne sais jamais qui utiliser. Les premiers noms qui me viennent à l'esprit sont toujours des gens que je connais personnellement, mais il semble idiot de les utiliser. Alors, je pense, peut-être devrais-je dire Richard Stallman, ou Linus Torvalds, ou Alan Kay, ou quelqu'un de célèbre comme ça. Mais je n'ai aucune idée si ces gars sont de grands pirates informatiques. Je n'ai jamais travaillé avec eux sur quoi que ce soit.

S'il y a un Michael Jordan du piratage informatique, personne ne le sait, y compris lui.

La culture

Enfin, la question que tous les pirates informatiques se posent : comment devient-on un grand pirate informatique ? Je ne sais pas si c'est possible de se transformer en un. Mais il est certainement possible de faire des choses qui vous rendent stupide, et si vous pouvez vous rendre stupide, vous pouvez probablement vous rendre intelligent aussi.

La clé pour être un bon pirate informatique est peut-être de travailler sur ce que vous aimez. Quand je pense aux grands pirates informatiques que je connais, une chose qu'ils ont en commun, c'est l'extrême difficulté de les faire travailler sur quoi que ce soit qu'ils ne veulent pas. Je ne sais pas si c'est cause ou effet ; c'est peut-être les deux.

Pour bien faire quelque chose, il faut l'aimer. Donc, dans la mesure où vous pouvez préserver le piratage informatique comme quelque chose que vous aimez, vous êtes susceptible de le faire bien. Essayez de garder le sentiment d'émerveillement que vous aviez pour la programmation à l'âge de 14 ans. Si vous craignez que votre travail actuel ne vous pourrisse le cerveau, c'est probablement le cas.

Les meilleurs pirates informatiques ont tendance à être intelligents, bien sûr, mais c'est vrai dans beaucoup de domaines. Y a-t-il une qualité qui est unique aux pirates informatiques ? J'ai demandé à des amis, et la première chose qu'ils ont mentionnée était la curiosité. J'avais toujours supposé que tous les gens intelligents étaient curieux - que la curiosité était simplement la première dérivée de la connaissance. Mais apparemment, les pirates informatiques sont particulièrement curieux, surtout de savoir comment les choses fonctionnent. Cela a du sens, car les programmes sont en fait de gigantesques descriptions de la façon dont les choses fonctionnent.

Plusieurs amis ont mentionné la capacité des pirates informatiques à se concentrer - leur capacité, comme l'a dit l'un d'eux, à "ignorer tout ce qui se trouve en dehors de leur propre tête". J'ai certainement remarqué cela. Et j'ai entendu plusieurs pirates informatiques dire qu'après avoir bu même une demi-bière, ils ne peuvent plus programmer du tout. Donc, peut-être que le piratage informatique exige une certaine capacité particulière à se concentrer. Peut-être que les grands pirates informatiques peuvent charger une grande quantité de contexte dans leur tête, de sorte que lorsqu'ils regardent une ligne de code, ils ne voient pas seulement cette ligne, mais tout le programme autour. John McPhee a écrit que le succès de Bill Bradley en tant que joueur de basket-ball était dû en partie à sa vision périphérique extraordinaire. Une vue "parfaite" signifie environ 47 degrés de vision périphérique verticale. Bill Bradley en avait 70 ; il pouvait voir le panier lorsqu'il regardait le sol. Peut-être que les grands pirates informatiques ont une capacité innée similaire. (Je triche en utilisant un langage très dense, qui réduit le terrain.)

Cela pourrait expliquer la déconnexion sur les cubicules. Peut-être que les personnes chargées des installations, n'ayant aucune concentration à briser, n'ont aucune idée que travailler dans un cubicle donne à un pirate informatique l'impression d'avoir son cerveau dans un mixeur. (Alors que Bill, si les rumeurs d'autisme sont vraies, le sait trop bien.)

Une différence que j'ai remarquée entre les grands pirates informatiques et les personnes intelligentes en général, c'est que les pirates informatiques sont plus politiquement incorrects. Dans la mesure où il existe une poignée de main secrète entre les bons pirates informatiques, c'est lorsqu'ils se connaissent suffisamment bien pour exprimer des opinions qui les feraient lapider par le grand public. Et je peux comprendre pourquoi l'incorrectude politique serait une qualité utile en programmation. Les programmes sont très complexes et, au moins entre les mains de bons programmeurs, très fluides. Dans de telles situations, il est utile d'avoir l'habitude de remettre en question les hypothèses.

Pouvez-vous cultiver ces qualités ? Je ne sais pas. Mais vous pouvez au moins ne pas les réprimer. Voici donc ma meilleure recette. Si il est possible de se transformer en un grand pirate informatique, la façon de le faire est peut-être de conclure le marché suivant avec vous-même : vous n'avez jamais à travailler sur des projets ennuyeux (à moins que votre famille ne meure de faim autrement), et en retour, vous ne vous permettrez jamais de faire un travail bâclé. Tous les grands pirates informatiques que je connais semblent avoir conclu cet accord, bien que peut-être aucun d'eux n'ait eu le choix.

Notes

[1] En toute justice, je dois dire qu'IBM fabrique du matériel décent. J'ai écrit ceci sur un ordinateur portable IBM.

[2] Ils se sont avérés être voués à l'échec. Ils ont fermé quelques mois plus tard.

[3] Je pense que c'est ce que les gens veulent dire lorsqu'ils parlent du "sens de la vie". À première vue, cela semble être une idée étrange. La vie n'est pas une expression ; comment pourrait-elle avoir un sens ? Mais elle peut avoir une qualité qui ressemble beaucoup au sens. Dans un projet comme un compilateur, vous devez résoudre beaucoup de problèmes, mais les problèmes tombent tous dans un modèle, comme dans un signal. Alors que lorsque les problèmes que vous devez résoudre sont aléatoires, ils ressemblent à du bruit.

[4] Einstein a un moment travaillé à la conception de réfrigérateurs. (Il avait des actions.)

[5] Il est difficile de dire exactement ce qui constitue la recherche dans le monde informatique, mais en première approximation, c'est un logiciel qui n'a pas d'utilisateurs.

Je ne pense pas que ce soit la publication qui incite les meilleurs pirates informatiques à vouloir travailler dans les départements de recherche. Je pense que c'est surtout le fait de ne pas avoir à avoir une réunion de trois heures avec un chef de produit pour parler des problèmes d'intégration de la version coréenne de Word 13.27 avec le trombone parlant.

[6] Quelque chose de similaire se produit depuis longtemps dans le secteur de la construction. Lorsque vous faisiez construire une maison il y a deux cents ans, les constructeurs locaux construisaient tout ce qu'il y avait dedans. Mais de plus en plus, ce que font les constructeurs, c'est assembler des composants conçus et fabriqués par quelqu'un d'autre. Cela a, comme l'arrivée de la PAO, donné aux gens la liberté d'expérimenter de manière désastreuse, mais c'est certainement plus efficace.

[7] Google est beaucoup plus dangereux pour Microsoft que Netscape ne l'était. Probablement plus dangereux que toute autre entreprise ne l'a jamais été. Non seulement parce qu'ils sont déterminés à se battre. Sur leur page d'offres d'emploi, ils disent qu'une de leurs "valeurs fondamentales" est "Ne sois pas méchant". De la part d'une entreprise qui vend de l'huile de soja ou du matériel minier, une telle déclaration serait simplement excentrique. Mais je pense que nous tous dans le monde informatique reconnaissons à qui c'est une déclaration de guerre.

Merci à Jessica Livingston, Robert Morris et Sarah Harlin pour avoir lu les versions précédentes de cette conférence.