Loading...

GRANDS HACKERS

Original

Juillet 2004

(Cet essai est dérivé d'une conférence à Oscon 2004.)

Il y a quelques mois, j'ai terminé un nouveau livre, et dans les critiques, je continue à remarquer des mots comme "provocateur" et "controversé". Sans parler 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 en leur disant des choses qu'ils savaient déjà. Il est plus efficace de leur donner simplement les différences. Mais je suppose que cela ne peut qu'aboutir à un livre alarmant.

Edisons

Il n'y a pas de controverse sur l'idée la plus controversée : la suggestion selon laquelle la variation de la richesse pourrait ne pas être un aussi gros problème 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, elle pourrait ê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 vous réveillez 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'un seul individu, elles sont identiques.) Et cela est presque certainement une bonne chose : si votre société n'a pas de variation de la 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 la productivité. Si vous avez une tribu de nomades ramassant des bâtons pour un feu, à quel point le meilleur ramasseur de bâtons sera-t-il plus productif que le pire ? D'un facteur deux ? Alors que lorsque vous donnez aux gens un outil complexe comme un ordinateur, la variation de ce qu'ils peuvent en faire est énorme.

Ce n'est pas une nouvelle idée. Fred Brooks en a écrit 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é dix fois plus rapidement. Mais et si le problème n'était 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é mesurée en lignes de code.

La productivité varie dans tous les domaines, mais il en est 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 un levier technologique important. Mais dans tous les domaines, le levier s'allonge, de sorte que la variation que nous voyons 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 elle augmentera en fait 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 (que ce soit des raids vikings ou une planification centrale) 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 bien sûr, il y a aussi la question, comment devenir l'un d'entre eux ?

Plus que de l'argent

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

Les grands programmeurs sont parfois considérés comme 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 suffisamment d'argent, vous pouvez travailler sur ce que vous voulez, et pour cette raison, les hackers 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 davantage de ce qu'ils y font que de ce qu'ils sont payés pour le faire.

Sur le plan économique, c'est un fait de la plus haute importance, car cela signifie que vous n'avez pas à payer les grands hackers à la hauteur 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 comme chanceux s'il est payé trois fois plus. Comme je l'expliquerai plus tard, c'est en partie parce que les grands hackers ne savent pas à quel point ils sont bons. Mais c'est aussi parce que l'argent n'est pas la principale chose qu'ils veulent.

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

Dans une startup pour laquelle j'ai travaillé, l'une des choses épinglées sur notre panneau d'affichage était une publicité d'IBM. C'était une image d'un AS400, et le titre disait, je crois, "les hackers le méprisent". [1]

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

Les gens d'affaires préfèrent les langages les plus populaires car ils les considèrent comme des standards. Ils ne veulent pas parier l'entreprise sur le Betamax. Mais le problème avec les langages, c'est qu'ils ne sont pas seulement des standards. Si vous devez déplacer des bits sur un réseau, utilisez TCP/IP par tous les moyens. Mais un langage de programmation n'est pas seulement un format. Un langage de programmation est un moyen d'expression.

J'ai lu que Java a juste dépassé Cobol comme langage le plus populaire. En tant que standard, vous ne pourriez pas souhaiter mieux. Mais en tant que moyen d'expression, vous pourriez faire beaucoup mieux. De tous les grands programmeurs que je connais, je n'en connais qu'un seul qui programmerait volontairement en Java. Et de tous les grands programmeurs que je connais qui ne travaillent pas pour Sun, sur Java, je n'en connais aucun.

Les grands hackers insistent généralement aussi pour utiliser des logiciels open source. Non seulement parce qu'ils sont meilleurs, mais aussi parce qu'ils leur donnent plus de contrôle. Les bons hackers insistent sur le contrôle. C'est en partie ce qui fait d'eux de bons hackers : quand quelque chose est cassé, ils ont besoin de le réparer. Vous voulez qu'ils aient ce sentiment à l'égard du logiciel qu'ils écrivent pour vous. Vous ne devriez pas être surpris qu'ils ressentent la même chose à l'égard du système d'exploitation.

Il y a quelques années, un ami capitaliste-risqueur m'a parlé d'une nouvelle startup dans laquelle il était impliqué. Cela semblait prometteur. Mais la fois suivante que je lui ai parlé, 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 en chef. Quand j'ai entendu cela, j'ai pensé, ces gars-là sont condamnés. Premièrement, le directeur technique ne pouvait pas être un hacker de premier ordre, car pour devenir un développeur NT éminent, il aurait dû utiliser NT volontairement, à plusieurs reprises, et je ne pouvais pas imaginer qu'un grand hacker fasse cela ; et deuxièmement, même s'il était bon, il aurait du mal à embaucher quelqu'un de bon pour travailler pour lui si le projet devait être construit sur NT. [2]

La Frontière Finale

Après le logiciel, l'outil le plus important pour un hacker est probablement son bureau. Les grandes entreprises pensent que la fonction de l'espace de bureau est d'exprimer le rang. Mais les hackers utilisent leurs bureaux pour plus que cela : ils les utilisent comme un endroit pour réfléchir. Et si vous êtes une entreprise de technologie, leurs pensées sont votre produit. Donc faire travailler les hackers 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 hackers que je connais les méprisent. La simple perspective d'être interrompu suffit à empêcher les hackers de travailler sur des problèmes difficiles. Si vous voulez faire un vrai travail dans un bureau avec des cubicules, vous avez deux options : travailler à la maison, 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 un signe que quelque chose ne va pas ? Un environnement de bureau est censé être quelque chose qui vous aide à travailler, pas quelque chose avec lequel vous travaillez malgré tout.

Les entreprises comme Cisco sont fières que tout le monde y ait un cubicule, même le PDG. Mais elles ne sont pas aussi avancées qu'elles le pensent ; de toute évidence, elles considèrent toujours l'espace de bureau comme un insigne 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 achetant les startups qui les ont créées - où les hackers avaient probablement un endroit tranquille pour travailler.

Une grande entreprise qui comprend ce dont les hackers ont besoin est Microsoft. J'ai déjà vu une annonce de recrutement pour Microsoft avec une grande image d'une porte. Travaillez pour nous, était la prémisse, et nous vous donnerons un endroit pour travailler où vous pourrez vraiment travailler. 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 hackers soient productifs, elles devraient regarder ce qu'ils font à la maison. À la maison, les hackers peuvent arranger les choses eux-mêmes pour être le plus productifs possible. Et quand ils travaillent à la maison, les hackers ne travaillent pas dans des espaces ouverts et bruyants ; ils travaillent dans des pièces avec des portes. Ils travaillent dans des endroits conviviaux et de quartier avec des gens autour et un endroit où se promener quand ils ont besoin de réfléchir, au lieu de dans des boîtes de verre installées dans des acres de parkings. Ils ont un canapé sur lequel ils peuvent faire une sieste quand ils se sentent fatigués, au lieu de s'asseoir dans un coma à leur bureau, en feignant de travailler. Il n'y a pas d'équipe de gens avec des aspirateurs qui rugit à travers chaque soir pendant les heures de piratage les plus importantes. 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 quand vous regardez ce qu'ils font sur cet ordinateur, vous trouverez que cela renforce ce que j'ai dit plus tôt sur les outils. Ils peuvent devoir utiliser Java et Windows au travail, mais à la maison, où ils peuvent choisir pour eux-mêmes, vous les trouverez plus susceptibles d'utiliser Perl et Linux.

En effet, ces statistiques sur le 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 hackers choisissent quand ils peuvent choisir librement - c'est-à-dire dans leurs propres projets. Quand vous posez cette question, vous constatez que les systèmes d'exploitation open source ont déjà une part de marché dominante, et que le numéro un est probablement Perl.

Intéressant

Avec de bons outils, les hackers veulent des projets intéressants. Qu'est-ce qui rend un projet intéressant ? Eh bien, évidemment, les applications ouvertement sexy comme les avions furtifs ou les logiciels d'effets spéciaux seraient intéressantes à travailler. Mais n'importe quelle application peut être intéressante si elle pose de nouveaux défis techniques. Donc il est difficile de prédire quels problèmes les hackers aimeront, car certains ne deviennent intéressants que 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 gens qui travaillaient sur les recherches de tarifs aériens pensaient probablement que c'était l'une des applications les plus ennuyeuses imaginables. Mais ITA l'a rendu intéressant en redéfinissant le problème de manière plus ambitieuse.

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

Voici la traduction en français :

Ceci est un domaine où les gestionnaires peuvent faire une différence. Comme un parent disant à un enfant, je parie que tu ne peux pas ranger toute ta chambre en dix minutes, un bon gestionnaire peut parfois redéfinir un problème comme étant plus intéressant. Steve Jobs semble particulièrement doué pour cela, en partie simplement en ayant des normes élevées. Il y avait beaucoup d'ordinateurs bon marché et peu coûteux avant le Mac. Il a redéfini le problème comme : en faire un qui soit beau. Et cela a probablement poussé les développeurs plus fort que n'importe quelle carotte ou bâton.

Ils ont certainement livré. Quand le Mac est apparu pour la première fois, vous n'aviez même pas besoin de le mettre en marche 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 ordures de quelqu'un, j'ai vu ce qui semblait être un étui de transport pour Mac. J'ai regardé à l'intérieur, et il y avait un Mac SE. Je l'ai ramené chez moi et branché, et il a démarré. Le visage heureux de Macintosh, puis le Finder. Mon Dieu, c'était tellement simple. C'était juste comme... Google.

Les hackers aiment travailler pour des gens avec des normes é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 hacker. J'ai vu des articles occasionnels sur la façon de gérer les programmeurs. En réalité, il devrait y avoir deux articles : l'un sur ce qu'il faut faire si vous êtes vous-même un programmeur, et l'autre sur ce qu'il faut faire si vous ne l'êtes pas. Et le second pourrait probablement être condensé en deux mots : abandonnez.

Le problème n'est pas tant la gestion au jour le jour. Les hackers vraiment doués sont pratiquement autogérés. Le problème est que, si vous n'êtes pas un hacker, vous ne pouvez pas dire qui sont les bons hackers. 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 en engageant un grand designer pour les concevoir. Mais si vous-même n'avez pas de 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 eus, car dans le design, comme dans la plupart des domaines, ils sont généralement dictés par la mode et le réseautage, l'aptitude réelle n'étant que la troisième priorité. Il n'y a pas de moyen d'y échapper : vous ne pouvez pas gérer un processus destiné à produire de belles choses sans savoir ce qu'est la beauté. Les voitures américaines sont laides parce que les entreprises automobiles américaines sont dirigées par des gens au mauvais goût.

Beaucoup de gens dans ce pays considèrent le goût comme quelque chose de fuyant, voire de futile. Ce n'est ni l'un ni l'autre. Pour stimuler le design, un gestionnaire doit être l'utilisateur le plus exigeant des produits de son entreprise. Et si vous avez vraiment un bon goût, vous pouvez, comme Steve Jobs, faire de la satisfaction de vos exigences le genre de problème que les gens doués 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 problèmes importants et clairs, vous devez en résoudre beaucoup de petits et désagréables. Un des pires types de projets est d'écrire une interface pour un logiciel plein de bugs. Un autre est lorsque vous devez personnaliser quelque chose pour les besoins complexes et mal définis d'un client individuel. Pour les hackers, ces types de projets sont la mort par 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 enseigne ce qu'est un compilateur. Mais écrire une interface pour un logiciel plein de bugs n'enseigne rien, car les bugs sont aléatoires. [3] Donc ce n'est pas seulement le perfectionnisme qui fait que les bons hackers évitent les petits problèmes désagréables. C'est plutôt une question d'autoconservation. Travailler sur des petits problèmes désagréables vous rend stupide. Les bons hackers l'évitent pour la même raison que les mannequins évitent les hamburgers au fromage.

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

[1]

Voici la traduction en français :

Un endroit où cela se produit, c'est dans les startups. Dans notre startup, nous avions Robert Morris travaillant comme administrateur système. C'est comme avoir les Rolling Stones jouer dans un bar mitzvah. Vous ne pouvez pas engager ce genre de talent. Mais les gens feront n'importe quelle quantité de corvée pour les entreprises dont ils sont les fondateurs. [4]

Les plus grandes entreprises résolvent le problème en partitionnant l'entreprise. Ils font travailler des gens intelligents pour eux en établissant un département de recherche et développement séparé où les employés n'ont pas à travailler directement sur les petits problèmes désagréables des clients. [5] Dans ce modèle, le département de recherche fonctionne comme une mine. Ils produisent de nouvelles idées ; peut-être que le reste de l'entreprise pourra les utiliser.

Vous n'aurez peut-être pas à aller à cette extrémité. La programmation ascendante suggère une autre façon de partitionner l'entreprise : faire travailler les gens intelligents en tant que fabricants d'outils. Si votre entreprise fabrique des logiciels pour faire x, ayez un groupe qui construit 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 d'obtenir que des gens intelligents écrivent 99% de votre code, tout en les gardant presque aussi isolés des utilisateurs que dans un département de recherche traditionnel. Les fabricants d'outils auraient des utilisateurs, mais ce ne seraient que les propres développeurs de l'entreprise. [6]

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

Regroupement

Avec les problèmes intéressants, ce que les bons hackers aiment, ce sont les autres bons hackers. Les grands hackers ont tendance à se regrouper, parfois de manière spectaculaire, comme à Xerox Parc. Donc vous n'attirerez pas de bons hackers en proportion linéaire de 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. Donc c'est le gagnant qui rafle tout. À un moment donné, il n'y a qu'une dizaine ou une vingtaine d'endroits où les hackers veulent le plus travailler, et si vous n'en faites pas partie, vous n'aurez pas seulement moins de grands hackers, vous en aurez zéro.

Avoir de grands hackers n'est pas, en soi, suffisant pour faire le succès d'une entreprise. Cela fonctionne bien pour Google et ITA, qui sont deux des endroits les plus en vogue 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 leur modèle d'affaires est un ascenseur descendant. Dans cette situation, même les meilleurs hackers ne peuvent pas vous sauver.

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

Ils semblaient vraiment le croire, et je pense savoir pourquoi. Je pense que ce que beaucoup de capital-risqueurs recherchent, au moins inconsciemment, c'est la prochaine 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 capital-risqueurs se trompent de chercher la prochaine Microsoft, car aucune startup ne peut être la prochaine Microsoft à moins qu'une autre entreprise ne soit prête à se plier en deux au bon moment pour être la prochaine IBM.

C'est une erreur d'utiliser Microsoft comme modèle, car toute leur culture dérive de ce coup de chance unique. Microsoft est un mauvais point de données. Si vous les jetez, vous constatez que les bons produits ont tendance à gagner sur le marché. Ce que les capital-risqueurs devraient rechercher, c'est la prochaine Apple ou la prochaine Google.

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

Reconnaissance

Alors, qui sont les grands hackers ? Comment savez-vous quand vous en rencontrez un ? C'est en fait très difficile. Même les hackers ne peuvent pas le dire. Je suis assez sûr maintenant que mon ami Trevor Blackwell est un grand hacker. Vous avez peut-être lu sur Slashdot comment il a fabriqué son propre Segway [1]. La chose remarquable à propos de ce projet était qu'il a écrit tout le logiciel en une journée (en Python, d'ailleurs).

Pour Trevor, c'est la norme. Mais quand je l'ai rencontré pour la première fois, je l'ai pris pour un parfait idiot. Il se tenait dans le bureau de Robert Morris, lui débitant on ne sait quoi, et je me souviens être resté derrière lui à faire des gestes frénétiques à Robert pour chasser ce dingue de son bureau afin que nous puissions aller déjeuner. Robert dit qu'il a aussi mal jugé Trevor au début. Apparemment, quand Robert l'a rencontré pour la première fois, Trevor venait de commencer un nouveau projet qui consistait à tout noter sur une pile de fiches sur tous les aspects de sa vie, qu'il transportait partout avec lui. Il venait aussi tout juste d'arriver du Canada et avait un fort accent canadien et un mullet.

Le problème est aggravé par le fait que les hackers, malgré leur réputation d'indifférence sociale, mettent parfois beaucoup d'efforts pour paraître intelligents. Quand j'étais en troisième cycle, j'avais l'habitude de traîner occasionnellement au MIT AI Lab. C'était assez intimidant au début. Tout le monde y parlait si vite. Mais après un certain temps, j'ai appris le truc de parler vite. Vous n'avez pas besoin de penser plus vite ; il suffit d'utiliser deux fois plus de mots pour dire la même chose.

Avec ce niveau de bruit dans le signal, il est difficile de reconnaître les bons hackers quand on les rencontre. 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 hacker soit de travailler avec lui sur quelque chose.

Et c'est la raison pour laquelle les domaines de haute technologie ne se développent que dans les universités. L'ingrédient actif ici n'est pas tant les professeurs que les étudiants. Les startups se développent autour des universités parce que les universités rassemblent de jeunes gens prometteurs et les font travailler sur les mêmes projets. Les plus intelligents apprennent à connaître les autres intelligents, et ensemble ils conçoivent de nouveaux projets.

Parce que vous ne pouvez dire qu'un grand hacker est grand qu'en travaillant avec lui, les hackers eux-mêmes ne peuvent pas savoir à quel point ils sont bons. C'est vrai dans une certaine mesure dans la plupart des domaines. J'ai constaté que les gens qui excellent dans quelque chose ne sont pas tant convaincus de leur propre grandeur que mystifiés par l'incompétence apparente de tout le monde.

Mais il est particulièrement difficile pour les hackers 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. Sur 100 mètres, on sait 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 difficiles à résoudre et ce qui constitue une bonne solution. Mais le piratage est comme l'écriture. Qui peut dire lequel de deux romans est le meilleur ? Certainement pas les auteurs.

Avec les hackers, du moins, d'autres hackers peuvent le dire. C'est parce que, contrairement aux romanciers, les hackers collaborent sur des projets. Quand vous arrivez à leur lancer quelques problèmes difficiles sur le net, vous apprenez assez rapidement à quel point ils les renvoient. Mais les hackers ne peuvent pas se regarder travailler. Donc, si vous demandez à un grand hacker à quel point il est bon, il est presque certain de répondre : "Je ne sais pas". Il ne fait pas seulement preuve de modestie. Il ne sait vraiment pas.

Et aucun de nous ne sait, sauf à propos des personnes avec lesquelles nous avons réellement travaillé. Ce qui nous met dans une situation bizarre : nous ne savons pas qui devraient être nos héros. Les hackers qui deviennent célèbres ont tendance à le devenir par des accidents aléatoires de relations publiques. Il m'arrive parfois d'avoir besoin de donner l'exemple d'un grand hacker, 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 me semble déplacé de les utiliser. Alors, je me dis, peut-être que je devrais 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 de si ces gars-là sont de grands hackers. Je n'ai jamais travaillé avec eux sur quoi que ce soit.

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

Cultivation

Enfin, la question que tous les pirates informatiques se posent : comment devient-on un grand pirate informatique ? Je ne sais pas s'il 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 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 est l'extrême difficulté de les faire travailler sur quelque chose qu'ils ne veulent pas. Je ne sais pas si c'est la cause ou l'effet ; cela peut être les deux.

Pour bien faire quelque chose, vous devez l'aimer. Donc, dans la mesure où vous pouvez préserver le piratage informatique comme quelque chose que vous aimez, vous êtes susceptible de bien le faire. Essayez de garder le sens de l'émerveillement que vous aviez pour la programmation à l'âge de 14 ans. Si vous vous inquiétez que votre emploi actuel fasse pourrir votre cerveau, c'est probablement le cas.

Les meilleurs pirates informatiques ont tendance à être intelligents, bien sûr, mais c'est vrai dans de nombreux domaines. Y a-t-il une qualité unique aux pirates informatiques ? J'ai demandé à quelques amis, et la principale chose qu'ils ont mentionnée était la curiosité. J'avais toujours supposé que toutes les personnes intelligentes étaient curieuses - que la curiosité était simplement la première dérivée de la connaissance. Mais apparemment, les pirates informatiques sont particulièrement curieux, surtout sur la façon dont les choses fonctionnent. Cela a du sens, car les programmes sont en fait de grandes 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'entre eux, à "se couper de tout ce qui est en dehors de leur propre têtes". Je l'ai certainement remarqué. 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 nécessite une capacité de concentration particulière. 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 voient non 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 quand 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étrécit le terrain.)

Cela pourrait expliquer le fossé concernant les cubicules. Peut-être que les gens responsables des installations, n'ayant pas de concentration à briser, n'ont aucune idée que travailler dans un cubicule fait ressentir à un pirate informatique comme si son cerveau était dans un mélangeur. (Alors que Bill, si les rumeurs d'autisme sont vraies, le sait très 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 parmi les bons pirates informatiques, c'est quand ils se connaissent suffisamment bien pour exprimer des opinions qui les feraient lapider à mort par le grand public. Et je peux voir pourquoi l'incorrection 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 une habitude de remettre en question les hypothèses.

Peut-on cultiver ces qualités ? Je ne sais pas. Mais vous pouvez au moins ne pas les réprimer. Voici donc ma meilleure tentative de recette. S'il est possible de se transformer en un grand pirate informatique, le moyen de le faire peut être de faire le marché suivant avec vous-même : vous ne travaillerez jamais sur des projets ennuyeux (sauf si votre famille mourra de faim autrement), et en retour, vous ne vous permettrez jamais de faire un travail à moitié. Tous les grands pirates informatiques que je connais semblent avoir fait ce marché, bien que peut-être qu'aucun d'entre eux n'ait eu le choix.

Notes

[1] Pour être juste, 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 condamnés. Ils ont fermé quelques mois plus tard.

[3] Je pense que c'est ce que les gens entendent quand ils parlent du "sens de la vie". De prime abord, cela semble 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 de nombreux problèmes, mais les problèmes s'inscrivent tous dans un schéma, comme dans un signal. Alors que lorsque les problèmes que vous devez résoudre sont aléatoires, ils semblent comme du bruit.

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

[5] Il est difficile de dire exactement ce qui constitue la recherche dans le monde de l'informatique, mais en première approximation, il s'agit de logiciels qui n'ont pas d'utilisateurs.

Je ne pense pas que ce soit la publication qui pousse les meilleurs hackers à vouloir travailler dans les départements de recherche. Je pense que c'est surtout de ne pas avoir à avoir une réunion de trois heures avec un chef de produit sur les 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 l'industrie de la construction. Quand vous faisiez construire une maison il y a quelques centaines d'années, les constructeurs locaux construisaient tout à l'intérieur. 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 publication assistée par ordinateur, 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'a été. Probablement plus dangereux que toute autre entreprise ne l'a jamais été. Pas le moindre parce qu'ils sont déterminés à se battre. Sur leur page de listing des emplois, ils disent que l'une de leurs "valeurs fondamentales" est "Ne pas être mauvais". De la part d'une entreprise vendant de l'huile de soja ou de l'équipement minier, une telle déclaration serait simplement excentrique. Mais je pense que nous tous dans le monde de l'informatique reconnaissons à qui cette déclaration de guerre s'adresse.

Merci à Jessica Livingston, Robert Morris et Sarah Harlin pour avoir lu des versions antérieures de cette conférence.