GROSSARTIGE HACKER
OriginalJuli 2004
(Dieser Essay basiert auf einem Vortrag auf der Oscon 2004.)
Vor ein paar Monaten habe ich ein neues Buch fertiggestellt, und in Rezensionen bemerke ich immer wieder Wörter wie "provokativ" und "kontrovers". Ganz zu schweigen von "idiotisch".
Ich hatte nicht vor, das Buch kontrovers zu gestalten. Ich wollte es effizient machen. Ich wollte die Zeit der Leute nicht damit verschwenden, ihnen Dinge zu erzählen, die sie bereits wissen. Es ist effizienter, ihnen einfach die Diffs zu geben. Aber ich nehme an, dass dies zwangsläufig zu einem alarmierenden Buch führt.
Edisons
Es gibt keine Kontroverse darüber, welche Idee am kontroversesten ist: die Behauptung, dass die Unterschiede im Wohlstand vielleicht nicht so groß sind ein Problem, wie wir denken.
Ich habe in dem Buch nicht gesagt, dass Unterschiede im Wohlstand an sich eine gute Sache sind. Ich sagte, dass sie in einigen Situationen ein Zeichen für gute Dinge sein könnten. Ein pochender Kopfschmerz ist keine gute Sache, aber er kann ein Zeichen für eine gute Sache sein - zum Beispiel, dass man nach einem Schlag auf den Kopf wieder zu Bewusstsein kommt.
Unterschiede im Wohlstand können ein Zeichen für Unterschiede in der Produktivität sein. (In einer Gesellschaft aus einer Person sind sie identisch.) Und das ist mit ziemlicher Sicherheit eine gute Sache: Wenn Ihre Gesellschaft keine Unterschiede in der Produktivität aufweist, liegt das wahrscheinlich nicht daran, dass alle Thomas Edison sind. Es liegt wahrscheinlich daran, dass Sie keine Thomas Edisons haben.
In einer Gesellschaft mit geringer Technologie sieht man nicht viele Unterschiede in der Produktivität. Wenn Sie einen Stamm von Nomaden haben, die Stöcke für ein Feuer sammeln, wie viel produktiver wird der beste Stock-Sammler im Vergleich zum schlechtesten sein? Ein Faktor von zwei? Während Sie den Leuten ein komplexes Werkzeug wie einen Computer in die Hand geben, ist die Variation dessen, was sie damit tun können, enorm.
Das ist keine neue Idee. Fred Brooks schrieb 1974 darüber, und die Studie, die er zitierte, wurde 1968 veröffentlicht. Aber ich denke, er hat die Unterschiede zwischen Programmierern unterschätzt. Er schrieb über Produktivität in Codezeilen: die besten Programmierer können ein gegebenes Problem in einem Zehntel der Zeit lösen. Aber was ist, wenn das Problem nicht gegeben ist? In der Programmierung, wie in vielen Bereichen, besteht die Schwierigkeit nicht darin, Probleme zu lösen, sondern zu entscheiden, welche Probleme zu lösen sind. Fantasie ist schwer zu messen, aber in der Praxis dominiert sie die Art von Produktivität, die gemessen wird in Codezeilen.
Die Produktivität variiert in jedem Bereich, aber es gibt nur wenige, in denen sie so stark variiert. Die Unterschiede zwischen Programmierern sind so groß, dass sie zu einem Unterschied in der Art werden. Ich glaube nicht, dass dies etwas ist, das der Programmierung an sich innewohnt. In jedem Bereich, verstärkt die Technologie die Unterschiede in der Produktivität. Ich denke, was in der Programmierung passiert, ist nur, dass wir einen großen technologischen Hebel haben. Aber in jedem Bereich wird der Hebel länger, so dass die Unterschiede, die wir sehen, etwas sind, das immer mehr Bereiche sehen werden mit der Zeit. Und der Erfolg von Unternehmen und Ländern wird zunehmend davon abhängen, wie sie damit umgehen.
Wenn die Unterschiede in der Produktivität mit der Technologie zunehmen, dann der Beitrag der produktivsten Individuen wird nicht nur überproportional groß sein, sondern auch mit der Zeit wachsen. Wenn Sie den Punkt erreichen, an dem 90 % der Leistung einer Gruppe von 1 % ihrer Mitglieder erbracht werden, verlieren Sie viel, wenn etwas (ob Wikingerüberfälle, oder zentrale Planung) ihre Produktivität auf den Durchschnitt herunterzieht.
Wenn wir das Beste aus ihnen herausholen wollen, müssen wir diese besonders produktiven Menschen verstehen. Was motiviert sie? Was brauchen sie, um ihre Arbeit zu erledigen? Wie erkennt man sie? Wie bekommt man sie dazu, für Sie zu arbeiten? Und dann gibt es natürlich noch die Frage, wie man selbst einer wird?
Mehr als Geld
Ich kenne eine Handvoll von Super-Hackern, also habe ich mich hingesetzt und darüber nachgedacht, was sie gemeinsam haben. Ihre prägende Eigenschaft ist wahrscheinlich, dass sie das Programmieren wirklich lieben. Normale Programmierer schreiben Code, um die Rechnungen zu bezahlen. Großartige Hacker sehen es als etwas an, das sie zum Spaß tun, und wofür sie begeistert feststellen, dass die Leute sie dafür bezahlen.
Großartige Programmierer werden manchmal als geldunabhängig bezeichnet. Das ist nicht ganz richtig. Es stimmt, dass sie sich eigentlich nur für interessante Arbeit interessieren. Aber wenn man genug Geld verdient, kann man an allem arbeiten, was man will, und aus diesem Grund sind Hacker auch von der Idee angetan, wirklich viel Geld zu verdienen. Aber solange sie jeden Tag zur Arbeit erscheinen müssen, interessiert sie mehr, was sie dort tun, als wie viel sie dafür bezahlt werden.
Wirtschaftlich gesehen ist dies eine Tatsache von größter Bedeutung, denn es bedeutet, dass man großartige Hacker nicht annähernd so viel bezahlen muss, wie sie wert sind. Ein großartiger Programmierer ist vielleicht zehn- oder hundertmal so produktiv wie ein normaler, aber er wird sich glücklich schätzen, dreimal so viel bezahlt zu bekommen. Wie ich später erklären werde, liegt das teilweise daran, dass großartige Hacker nicht wissen, wie gut sie sind. Aber es liegt auch daran, dass Geld nicht das Wichtigste ist, was sie wollen.
Was wollen Hacker? Wie alle Handwerker mögen Hacker gutes Werkzeug. Tatsächlich ist das eine Untertreibung. Gute Hacker finden es unerträglich, schlechtes Werkzeug zu benutzen. Sie weigern sich einfach, an Projekten mit der falschen Infrastruktur zu arbeiten.
Bei einem Startup, für das ich einmal gearbeitet habe, war eines der Dinge, die an unserer Pinnwand hingen, eine Anzeige von IBM. Es war ein Bild von einem AS400, und die Überschrift lautete, glaube ich, "Hacker verachten es." [1]
Wenn Sie entscheiden, welche Infrastruktur Sie für ein Projekt verwenden wollen, dann treffen Sie nicht nur eine technische Entscheidung. Sie treffen auch eine soziale Entscheidung, und diese kann die wichtigere der beiden sein. Zum Beispiel, wenn Ihr Unternehmen Software schreiben möchte, könnte es eine kluge Wahl erscheinen, sie in Java zu schreiben. Aber wenn Sie eine Sprache wählen, wählen Sie auch eine Community. Die Programmierer, die Sie einstellen können, um an einem Java-Projekt zu arbeiten, werden nicht so intelligent sein wie die, die Sie für ein Projekt in Python gewinnen könnten. Und die Qualität Ihrer Hacker ist wahrscheinlich wichtiger als die Sprache, die Sie wählen. Obwohl, ehrlich gesagt, die Tatsache, dass gute Hacker Python gegenüber Java bevorzugen, sollte Ihnen etwas über die relativen Vorzüge dieser Sprachen sagen.
Geschäftsleute bevorzugen die beliebtesten Sprachen, weil sie Sprachen als Standards betrachten. Sie wollen das Unternehmen nicht auf Betamax setzen. Das Ding mit Sprachen ist jedoch, dass sie nicht nur Standards sind. Wenn Sie Bits über ein Netzwerk verschieben müssen, dann verwenden Sie auf jeden Fall TCP/IP. Aber eine Programmiersprache ist nicht nur ein Format. Eine Programmiersprache ist ein Ausdrucksmittel.
Ich habe gelesen, dass Java Cobol gerade als die beliebteste Sprache überholt hat. Als Standard könnte man sich nichts Besseres wünschen. Aber als Ausdrucksmittel könnte man es viel besser machen. Von allen großen Programmierern, die mir einfallen, kenne ich nur einen, der freiwillig in Java programmieren würde. Und von allen großen Programmierern, die mir einfallen, die nicht für Sun arbeiten, an Java, kenne ich keinen.
Großartige Hacker bestehen auch in der Regel darauf, Open-Source-Software zu verwenden. Nicht nur, weil sie besser ist, sondern weil sie ihnen mehr Kontrolle gibt. Gute Hacker bestehen auf Kontrolle. Das ist Teil dessen, was sie zu guten Hackern macht: Wenn etwas kaputt ist, müssen sie es reparieren. Sie wollen, dass sie sich so über die Software fühlen, die sie für Sie schreiben. Sie sollten nicht überrascht sein, wenn sie sich genauso über das Betriebssystem fühlen.
Vor ein paar Jahren erzählte mir ein Freund, der Risikokapitalgeber ist, von einem neuen Startup, an dem er beteiligt war. Es klang vielversprechend. Aber als ich das nächste Mal mit ihm sprach, sagte er, sie hätten beschlossen, ihre Software auf Windows NT zu bauen, und hätten gerade einen sehr erfahrenen NT-Entwickler als Chief Technical Officer eingestellt. Als ich das hörte, dachte ich, diese Leute sind zum Scheitern verurteilt. Erstens konnte der CTO kein erstklassiger Hacker sein, denn um ein bedeutender NT-Entwickler zu werden, hätte er NT freiwillig benutzen müssen, mehrmals, und ich konnte mir nicht vorstellen, dass ein großartiger Hacker das tun würde; und zweitens, selbst wenn er gut wäre, hätte er es schwer, jemanden zu finden, der für ihn arbeitet, wenn das Projekt auf NT aufgebaut werden müsste. [2]
Die letzte Grenze
Nach der Software ist das wichtigste Werkzeug für einen Hacker wahrscheinlich sein Büro. Große Unternehmen denken, dass die Funktion von Büroräumen darin besteht, Rang auszudrücken. Aber Hacker nutzen ihre Büros für mehr als das: Sie nutzen ihr Büro als einen Ort, an dem sie nachdenken können. Und wenn Sie ein Technologieunternehmen sind, sind ihre Gedanken Ihr Produkt. Hacker in einer lauten, ablenkenden Umgebung arbeiten zu lassen, ist also wie eine Farbenfabrik zu haben, in der die Luft voller Ruß ist.
Der Comic-Strip Dilbert hat viel über Kabinen zu sagen, und das aus gutem Grund. Alle Hacker, die ich kenne, verachten sie. Allein die Aussicht, unterbrochen zu werden, reicht aus, um Hacker daran zu hindern, an schwierigen Problemen zu arbeiten. Wenn Sie in einem Büro mit Kabinen wirklich Arbeit erledigen wollen, haben Sie zwei Möglichkeiten: Arbeiten Sie zu Hause, oder kommen Sie früh oder spät oder an einem Wochenende, wenn niemand anderer da ist. Realisieren Unternehmen nicht, dass dies ein Zeichen dafür ist, dass etwas kaputt ist? Eine Büroumgebung soll etwas sein, das Ihnen hilft, zu arbeiten, nicht etwas, trotz dessen Sie arbeiten.
Unternehmen wie Cisco sind stolz darauf, dass jeder dort eine Kabine hat, sogar der CEO. Aber sie sind nicht so fortschrittlich, wie sie denken; offensichtlich sehen sie Büroräume immer noch als ein Abzeichen des Ranges. Beachten Sie auch, dass Cisco dafür bekannt ist, sehr wenig Produktentwicklung im eigenen Haus zu betreiben. Sie bekommen neue Technologie, indem sie die Startups kaufen, die sie entwickelt haben - wo die Hacker vermutlich einen ruhigen Ort zum Arbeiten hatten.
Ein großes Unternehmen, das versteht, was Hacker brauchen, ist Microsoft. Ich habe einmal eine Stellenanzeige für Microsoft mit einem großen Bild einer Tür gesehen. Arbeiten Sie für uns, so die Prämisse, und wir geben Ihnen einen Ort zum Arbeiten, an dem Sie tatsächlich Arbeit erledigen können. Und Sie wissen, Microsoft ist bemerkenswert unter den großen Unternehmen, da sie in der Lage sind, Software im eigenen Haus zu entwickeln. Vielleicht nicht gut, aber gut genug.
Wenn Unternehmen wollen, dass Hacker produktiv sind, sollten sie sich ansehen, was sie zu Hause tun. Zu Hause können Hacker die Dinge selbst so arrangieren, dass sie am meisten erledigen können. Und wenn sie zu Hause arbeiten, arbeiten Hacker nicht in lauten, offenen Räumen; sie arbeiten in Zimmern mit Türen. Sie arbeiten an gemütlichen, nachbarschaftlichen Orten mit Menschen in der Nähe und einem Ort, an dem sie spazieren gehen können, wenn sie etwas durchdenken müssen, anstatt in Glas Kästen, die inmitten von Hektar Parkplätzen stehen. Sie haben ein Sofa, auf dem sie ein Nickerchen machen können, wenn sie sich müde fühlen, anstatt in einem Koma an ihrem Schreibtisch zu sitzen und so zu tun, als würden sie arbeiten. Es gibt keine Crew von Leuten mit Staubsaugern, die jeden Abend während der besten Hacking-Stunden durch die Gegend dröhnen. Es gibt keine Meetings oder, Gott bewahre, Firmen-Retreats oder Teambuilding-Übungen. Und wenn Sie sich ansehen, was sie auf diesem Computer tun, werden Sie feststellen, dass es das verstärkt, was ich früher über Werkzeuge gesagt habe. Sie müssen vielleicht Java und Windows bei der Arbeit verwenden, aber zu Hause, wo sie selbst wählen können, finden Sie sie wahrscheinlicher mit Perl und Linux.
Tatsächlich können diese Statistiken über Cobol oder Java als die beliebteste Sprache irreführend sein. Was wir uns ansehen sollten, wenn wir wissen wollen, welche Werkzeuge am besten sind, ist, was Hacker wählen, wenn sie frei wählen können - das heißt, in eigenen Projekten. Wenn Sie diese Frage stellen, stellen Sie fest, dass Open-Source-Betriebssysteme bereits einen dominierenden Marktanteil haben, und die Nummer-eins-Sprache ist wahrscheinlich Perl.
Interessant
Neben gutem Werkzeug wollen Hacker interessante Projekte. Was macht ein Projekt interessant? Nun, offensichtlich wären offenkundig sexy Anwendungen wie Tarnkappenflugzeuge oder Spezialeffektsoftware interessant, an denen man arbeiten könnte. Aber jede Anwendung kann interessant sein, wenn sie neuartige technische Herausforderungen stellt. Daher ist es schwer vorherzusagen, welche Probleme Hacker mögen werden, denn einige werden erst dann interessant, wenn die Leute, die daran arbeiten, eine neue Art von Lösung entdecken. Vor ITA (die die Software in Orbitz geschrieben haben), dachten die Leute, die an Flugpreissuchen gearbeitet haben, wahrscheinlich, dass es eine der langweiligsten Anwendungen überhaupt ist. Aber ITA machte es interessant, indem es neu definiert wurde das Problem auf eine ehrgeizigere Weise.
Ich denke, das Gleiche ist bei Google passiert. Als Google gegründet wurde, war die gängige Meinung unter den sogenannten Portalen, dass die Suche langweilig und unwichtig sei. Aber die Leute bei Google fanden die Suche nicht langweilig, und deshalb machen sie sie so gut.
Dies ist ein Bereich, in dem Manager einen Unterschied machen können. Wie ein Elternteil zu einem Kind sagt: Ich wette, du kannst dein ganzes Zimmer nicht in zehn Minuten aufräumen, ein guter Manager kann manchmal ein Problem als ein interessanteres neu definieren. Steve Jobs scheint besonders gut darin zu sein, zum Teil einfach durch hohe Standards. Es gab viele kleine, preiswerte Computer vor dem Mac. Er definierte das Problem neu als: Machen Sie einen, der schön ist. Und das hat die Entwickler wahrscheinlich härter angetrieben als jeder Zuckerbrot oder Peitsche.
Sie haben es auf jeden Fall geschafft. Als der Mac zum ersten Mal erschien, musste man ihn nicht einmal einschalten, um zu wissen, dass er gut sein würde; man konnte es am Gehäuse erkennen. Vor ein paar Wochen ging ich die Straße entlang in Cambridge, und im Müll von jemandem sah ich, was wie ein Mac Tragetasche aussah. Ich schaute hinein, und da war ein Mac SE. Ich trug ihn nach Hause und steckte ihn ein, und er bootete. Das fröhliche Macintosh Gesicht, und dann der Finder. Mein Gott, es war so einfach. Es war einfach wie ... Google.
Hacker arbeiten gerne für Leute mit hohen Standards. Aber es reicht nicht nur, genau zu sein. Man muss auf die richtigen Dinge bestehen. Was in der Regel bedeutet, dass man selbst ein Hacker sein muss. Ich habe gelegentlich Artikel darüber gelesen, wie man Programmierer managt. Eigentlich sollte es zwei Artikel geben: einen darüber, was zu tun ist, wenn man selbst ein Programmierer ist, und einen darüber, was zu tun ist, wenn man es nicht ist. Und der zweite könnte wahrscheinlich auf zwei Wörter zusammengefasst werden: Gib auf.
Das Problem ist nicht so sehr das tägliche Management. Wirklich gute Hacker sind praktisch selbstverwaltet. Das Problem ist, wenn Sie kein Hacker sind, können Sie nicht erkennen, wer die guten Hacker sind. Ein ähnliches Problem erklärt, warum amerikanische Autos so hässlich sind. Ich nenne es das Design-Paradox. Man könnte denken, dass man seine Produkte schön machen könnte, indem man einfach einen großartigen Designer einstellt, der sie entwirft. Aber wenn Sie selbst keinen guten Geschmack haben, wie wollen Sie dann einen guten Designer erkennen? Per Definition können Sie es nicht an seinem Portfolio erkennen. Und Sie können nicht nach den Auszeichnungen gehen, die er gewonnen hat, oder den Jobs, die er hatte, denn im Design, wie in den meisten Bereichen, werden diese eher von Mode und Schmoozen angetrieben, wobei die tatsächliche Fähigkeit ein weit entferntes Drittes ist. Es gibt keinen Weg daran vorbei: Man kann einen Prozess, der darauf ausgelegt ist, schöne Dinge zu produzieren, nicht managen, ohne zu wissen, was schön ist. Amerikanische Autos sind hässlich, weil amerikanische Autofirmen von Leuten mit schlechtem Geschmack geführt werden.
Viele Leute in diesem Land denken über Geschmack als etwas schwer fassbares, oder sogar Frivoles nach. Es ist beides nicht. Um Design zu steuern, muss ein Manager der anspruchsvollste Benutzer der Produkte eines Unternehmens sein. Und wenn Sie wirklich guten Geschmack haben, können Sie, wie Steve Jobs, das Befriedigen Ihrer Bedürfnisse zu der Art von Problem machen, an dem gute Leute gerne arbeiten.
Böse kleine Probleme
Es ist ziemlich einfach zu sagen, welche Arten von Problemen nicht interessant sind: jene, bei denen man anstatt ein paar große, klare Probleme zu lösen, viele böse kleine Probleme lösen muss. Eine der schlimmsten Arten von Projekten ist das Schreiben einer Schnittstelle zu einem Softwarestück, das voller Fehler ist. Eine andere ist, wenn man etwas für die komplexen und schlecht definierten Bedürfnisse eines einzelnen Kunden anpassen muss. Für Hacker sind diese Arten von Projekten der Tod durch tausend Schnitte.
Das Unterscheidungsmerkmal von bösen kleinen Problemen ist, dass man nichts daraus lernt. Einen Compiler zu schreiben ist interessant, weil man lernt, was ein Compiler ist. Aber eine Schnittstelle zu einem fehlerhaften Softwarestück zu schreiben, lehrt einen nichts, weil die Fehler zufällig sind. [3] Es ist also nicht nur Pedanterie, die gute Hacker dazu bringt, böse kleine Probleme zu vermeiden. Es ist eher eine Frage der Selbstverteidigung. An bösen kleinen Problemen zu arbeiten, macht einen dumm. Gute Hacker vermeiden es aus dem gleichen Grund, wie Models Cheeseburger vermeiden.
Natürlich haben einige Probleme von Natur aus diesen Charakter. Und wegen Angebot und Nachfrage werden sie besonders gut bezahlt. Ein Unternehmen, das einen Weg gefunden hat, großartige Hacker dazu zu bringen, an langweiligen Problemen zu arbeiten, wäre sehr erfolgreich. Wie würde man das machen?
Ein Ort, an dem dies geschieht, sind Startups. In unserem Startup hatten wir Robert Morris als Systemadministrator. Das ist wie die Rolling Stones bei einer Bar Mitzvah spielen zu lassen. Man kann diese Art von Talent nicht einstellen. Aber die Leute werden jede Menge Drecksarbeit für Unternehmen machen, deren Gründer sie sind. [4]
Größere Unternehmen lösen das Problem, indem sie das Unternehmen aufteilen. Sie bekommen kluge Leute, die für sie arbeiten, indem sie eine separate Forschungs- und Entwicklungsabteilung einrichten, in der die Mitarbeiter nicht direkt an den bösen kleinen Problemen der Kunden arbeiten müssen. [5] In diesem Modell, die Forschungs Abteilung funktioniert wie eine Mine. Sie produzieren neue Ideen; vielleicht wird der Rest des Unternehmens in der Lage sein, sie zu nutzen.
Sie müssen vielleicht nicht so weit gehen. Bottom-up-Programmierung schlägt eine andere Möglichkeit vor, das Unternehmen aufzuteilen: Lassen Sie die klugen Leute als Werkzeugmacher arbeiten. Wenn Ihr Unternehmen Software herstellt, um x zu tun, lassen Sie eine Gruppe, die Werkzeuge zum Schreiben von Software dieser Art baut, und eine andere, die diese Werkzeuge verwendet, um die Anwendungen zu schreiben. Auf diese Weise könnten Sie vielleicht kluge Leute dazu bringen, 99 % Ihres Codes zu schreiben, aber halten Sie sie trotzdem fast so isoliert von den Benutzern, wie sie es in einer traditionellen Forschungsabteilung wären. Die Werkzeugmacher würden Benutzer haben, aber es wären nur die eigenen Entwickler des Unternehmens. [6]
Wenn Microsoft diesen Ansatz verwenden würde, wäre ihre Software nicht so voll von Sicherheitslücken, weil die weniger intelligenten Leute, die die eigentlichen Anwendungen schreiben, keine Low-Level-Dinge wie die Zuweisung von Speicherplatz machen würden. Anstatt Word direkt in C zu schreiben, würden sie große Lego-Blöcke von Word-Sprache zusammenstecken. (Duplo, glaube ich, ist der technische Begriff.)
Verklumpung
Neben interessanten Problemen mögen gute Hacker auch andere gute Hacker. Großartige Hacker neigen dazu, sich zusammenzuschließen - manchmal spektakulär so, wie bei Xerox Parc. Daher werden Sie nicht gute Hacker in linearer Proportion zu der Güte der Umgebung anziehen, die Sie für sie schaffen. Die Tendenz zur Verklumpung bedeutet, dass es eher wie das Quadrat der Umgebung ist. Es ist also ein "Winner takes all". Zu einem bestimmten Zeitpunkt gibt es nur etwa zehn oder zwanzig Orte, an denen Hacker am liebsten arbeiten wollen, und wenn Sie nicht einer von ihnen sind, werden Sie nicht nur weniger großartige Hacker haben, sondern null.
Großartige Hacker zu haben, reicht an sich nicht aus, um ein Unternehmen erfolgreich zu machen. Es funktioniert gut für Google und ITA, die zwei der heißesten Orte im Moment sind, aber es hat Thinking Machines oder Xerox nicht geholfen. Sun hatte eine Weile einen guten Lauf, aber ihr Geschäftsmodell ist ein Aufzug nach unten. In dieser Situation können selbst die besten Hacker Sie nicht retten.
Ich denke jedoch, dass ein Unternehmen, das bei gleichen Voraussetzungen großartige Hacker anziehen kann, einen großen Vorteil haben wird. Es gibt Leute, die damit nicht einverstanden wären. Als wir in den 1990er Jahren bei den Risikokapitalgesellschaften die Runde machten, sagten uns mehrere, dass Softwareunternehmen nicht durch das Schreiben großartiger Software gewinnen, sondern durch Marke, und die Dominanz von Kanälen und das Abschließen der richtigen Deals.
Sie schienen das wirklich zu glauben, und ich denke, ich weiß warum. Ich denke, dass viele VCs, zumindest unbewusst, nach dem nächsten Microsoft suchen. Und natürlich, wenn Microsoft Ihr Vorbild ist, sollten Sie nicht nach Unternehmen suchen, die hoffen, durch das Schreiben großartiger Software zu gewinnen. Aber VCs irren sich, wenn sie nach dem nächsten Microsoft suchen, denn kein Startup kann das nächste Microsoft sein, es sei denn, ein anderes Unternehmen ist bereit, sich im richtigen Moment zu bücken und das nächste IBM zu sein.
Es ist ein Fehler, Microsoft als Vorbild zu nehmen, denn ihre gesamte Kultur leitet sich von diesem einen glücklichen Zufall ab. Microsoft ist ein schlechter Datenpunkt. Wenn man sie weglässt, stellt man fest, dass gute Produkte dazu neigen, auf dem Markt zu gewinnen. Was VCs suchen sollten, ist das nächste Apple oder das nächste Google.
Ich denke, Bill Gates weiß das. Was ihm an Google Sorgen macht, ist nicht die Macht ihrer Marke, sondern die Tatsache, dass sie bessere Hacker haben. [7]
Anerkennung
Wer sind also die großen Hacker? Woher weiß man, wenn man einen trifft? Das stellt sich als sehr schwierig heraus. Selbst Hacker können es nicht sagen. Ich bin mir jetzt ziemlich sicher, dass mein Freund Trevor Blackwell ein großartiger Hacker ist. Vielleicht haben Sie auf Slashdot gelesen, wie er seinen eigenen Segway gebaut hat. Das Bemerkenswerte an diesem Projekt war, dass er die gesamte Software an einem Tag schrieb (in Python, übrigens).
Für Trevor ist das normal. Aber als ich ihn zum ersten Mal traf, dachte ich, er sei ein kompletter Idiot. Er stand in Robert Morris' Büro und plapperte ihm über irgendwas, und ich erinnere mich, wie ich hinter ihm stand und Robert verzweifelt gestikulierte, um diesen Spinner aus seinem Büro zu jagen, damit wir zum Mittagessen gehen konnten. Robert sagt, er habe Trevor auch zunächst falsch eingeschätzt. Anscheinend hatte Trevor, als Robert ihn zum ersten Mal traf, gerade mit einem neuen Plan angefangen, der darin bestand, alles über jeden Aspekt seines Lebens auf einen Stapel Karteikarten zu schreiben, die er überallhin mit sich trug. Er war auch gerade aus Kanada gekommen und hatte einen starken kanadischen Akzent und einen Irokesenschnitt.
Das Problem wird dadurch verschärft, dass Hacker, trotz ihres Rufs für soziale Unfähigkeit, manchmal viel Mühe darauf verwenden, klug zu erscheinen. Als ich im Studium war, habe ich mich gelegentlich im MIT AI Lab aufgehalten. Es war am Anfang etwas einschüchternd. Jeder dort sprach so schnell. Aber nach einer Weile lernte ich den Trick, schnell zu sprechen. Man muss nicht schneller denken; man verwendet einfach doppelt so viele Wörter, um alles zu sagen.
Bei dieser Menge an Rauschen im Signal ist es schwer, gute Hacker zu erkennen, wenn man sie trifft. Ich kann es selbst jetzt nicht. Man kann es auch nicht an ihren Lebensläufen erkennen. Es scheint, als ob die einzige Möglichkeit, einen Hacker zu beurteilen, darin besteht, mit ihm an etwas zu arbeiten.
Und das ist der Grund, warum High-Tech-Bereiche nur in der Nähe von Universitäten entstehen. Der aktive Bestandteil hier sind nicht so sehr die Professoren, sondern die Studenten. Startups entstehen in der Nähe von Universitäten, weil Universitäten vielversprechende junge Menschen zusammenbringen und sie an den gleichen Projekten arbeiten lassen. Die Klugen lernen, wer die anderen Klugen sind, und zusammen denken sie sich neue eigene Projekte aus.
Weil man einen großartigen Hacker nur erkennen kann, indem man mit ihm arbeitet, können Hacker selbst nicht sagen, wie gut sie sind. Das gilt in gewissem Maße für die meisten Bereiche. Ich habe festgestellt, dass Leute, die in etwas großartig sind, nicht so sehr von ihrer eigenen Größe überzeugt sind, sondern eher verwundert darüber, warum alle anderen so inkompetent erscheinen.
Aber es ist besonders schwer für Hacker zu wissen, wie gut sie sind, weil es schwer ist, ihre Arbeit zu vergleichen. Das ist in den meisten anderen Bereichen einfacher. Auf den hundert Metern weiß man in 10 Sekunden, wer am schnellsten ist. Selbst in der Mathematik scheint es einen allgemeinen Konsens darüber zu geben, welche Probleme schwer zu lösen sind und was eine gute Lösung darstellt. Aber Hacking ist wie Schreiben. Wer kann sagen, welcher von zwei Romanen besser ist? Sicherlich nicht die Autoren.
Bei Hackern können zumindest andere Hacker es sagen. Das liegt daran, dass Hacker im Gegensatz zu Romanautoren an Projekten zusammenarbeiten. Wenn Sie ein paar schwierige Probleme über das Netz mit jemandem lösen, lernen Sie ziemlich schnell, wie hart er sie zurück schlägt. Aber Hacker können sich nicht bei der Arbeit beobachten. Wenn Sie also einen großartigen Hacker fragen, wie gut er ist, wird er mit ziemlicher Sicherheit antworten: Ich weiß es nicht. Er ist nicht nur bescheiden. Er weiß es wirklich nicht.
Und keiner von uns weiß es, außer über Leute, mit denen wir tatsächlich gearbeitet haben. Was uns in eine seltsame Situation bringt: Wir wissen nicht, wer unsere Helden sein sollten. Die Hacker, die berühmt werden, werden in der Regel durch zufällige PR-Unfälle berühmt. Gelegentlich muss ich ein Beispiel für einen großartigen Hacker nennen, und ich weiß nie, wen ich nehmen soll. Die ersten Namen, die mir in den Sinn kommen, sind immer Leute, die ich persönlich kenne, aber es scheint lahm zu sein, sie zu verwenden. Also denke ich, vielleicht sollte ich sagen Richard Stallman, oder Linus Torvalds, oder Alan Kay, oder jemand Berühmtes wie das. Aber ich habe keine Ahnung, ob diese Typen großartige Hacker sind. Ich habe noch nie mit ihnen an irgendetwas gearbeitet.
Wenn es einen Michael Jordan des Hackens gibt, weiß es niemand, auch er nicht.
Kultivierung
Schließlich die Frage, die sich alle Hacker stellen: Wie wird man ein großartiger Hacker? Ich weiß nicht, ob es möglich ist, sich selbst zu einem zu machen. Aber es ist sicherlich möglich, Dinge zu tun, die einen dumm machen, und wenn man sich selbst dumm machen kann, kann man sich wahrscheinlich auch selbst klug machen.
Der Schlüssel, um ein guter Hacker zu sein, ist vielleicht, an dem zu arbeiten, was man mag. Wenn ich an die großen Hacker denke, die ich kenne, haben sie eines gemeinsam: die extreme Schwierigkeit, sie dazu zu bringen, an etwas zu arbeiten, das sie nicht wollen. Ich weiß nicht, ob das Ursache oder Wirkung ist; es kann beides sein.
Um etwas gut zu machen, muss man es lieben. Wenn Sie also das Hacking als etwas bewahren können, das Sie lieben, werden Sie es wahrscheinlich gut machen. Versuchen Sie, das Gefühl des Staunens zu bewahren, das Sie im Alter von 14 Jahren über das Programmieren hatten. Wenn Sie sich Sorgen machen, dass Ihr aktueller Job Ihr Gehirn verrottet, dann ist das wahrscheinlich auch so.
Die besten Hacker sind natürlich in der Regel intelligent, aber das gilt auch in vielen anderen Bereichen. Gibt es eine Eigenschaft, die für Hacker einzigartig ist? Ich habe ein paar Freunde gefragt, und das Wichtigste, das sie erwähnt haben, war Neugier. Ich hatte immer angenommen, dass alle intelligenten Menschen neugierig sind - dass Neugier einfach die erste Ableitung von Wissen ist. Aber anscheinend sind Hacker besonders neugierig, vor allem darauf, wie die Dinge funktionieren. Das macht Sinn, denn Programme sind im Grunde genommen riesige Beschreibungen, wie die Dinge funktionieren.
Mehrere Freunde haben die Fähigkeit von Hackern erwähnt, sich zu konzentrieren - ihre Fähigkeit, wie einer es ausdrückte, "alles außerhalb ihres eigenen Kopfes auszublenden". Ich habe das auf jeden Fall bemerkt. Und ich habe mehrere Hacker sagen hören, dass sie nach dem Trinken von nur einem halben Bier nicht mehr programmieren können. Vielleicht erfordert Hacking eine besondere Fähigkeit, sich zu konzentrieren. Vielleicht können großartige Hacker eine große Menge an Kontext in ihren Kopf laden, so dass sie, wenn sie sich eine Codezeile ansehen, nicht nur diese Zeile, sondern das gesamte Programm um sie herum sehen. John McPhee schrieb, dass Bill Bradleys Erfolg als Basketballspieler teilweise auf seine außergewöhnliche periphere Sicht zurückzuführen war. "Perfektes" Sehvermögen bedeutet etwa 47 Grad periphere Sicht. Bill Bradley hatte 70; er konnte den Korb sehen, wenn er auf den Boden schaute. Vielleicht haben großartige Hacker eine ähnliche angeborene Fähigkeit. (Ich betrüge, indem ich eine sehr dichte Sprache verwende, die das Spielfeld verkleinert.)
Das könnte die Diskrepanz über Kabinen erklären. Vielleicht haben die Leute, die für die Einrichtungen zuständig sind, da sie keine Konzentration zu zerstören haben, keine Ahnung, dass die Arbeit in einer Kabine für einen Hacker so ist, als hätte man sein Gehirn in einem Mixer. (Während Bill, wenn die Gerüchte über Autismus stimmt, es nur zu gut weiß.)
Ein Unterschied, den ich zwischen großen Hackern und intelligenten Menschen im Allgemeinen festgestellt habe, ist, dass Hacker mehr politisch inkorrekt sind. Soweit es einen geheimen Handschlag unter guten Hackern gibt, ist es, wenn sie sich gut genug kennen, um Meinungen zu äußern, die sie von der breiten Öffentlichkeit steinigen lassen würden. Und ich kann verstehen, warum politische Inkorrektheit eine nützliche Eigenschaft in der Programmierung wäre. Programme sind sehr komplex und, zumindest in den Händen von guten Programmierern, sehr flüssig. In solchen Situationen ist es hilfreich, eine Gewohnheit zu haben, Annahmen in Frage zu stellen.
Kann man diese Eigenschaften kultivieren? Ich weiß es nicht. Aber man kann sie zumindest nicht unterdrücken. Hier ist also mein bester Versuch eines Rezepts. Wenn es möglich ist, sich selbst zu einem großartigen Hacker zu machen, ist der Weg dazu vielleicht, folgenden Pakt mit sich selbst zu schließen: Man muss nie an langweiligen Projekten arbeiten (es sei denn, die Familie würde sonst verhungern), und im Gegenzug wird man sich nie erlauben, eine halbherzige Arbeit zu leisten. Alle großen Hacker, die ich kenne, scheinen diesen Pakt geschlossen zu haben, obwohl vielleicht keiner von ihnen eine Wahl hatte.
Anmerkungen
[1] Um fair zu sein, muss ich sagen, dass IBM anständige Hardware herstellt. Ich habe dies auf einem IBM-Laptop geschrieben.
[2] Sie waren tatsächlich zum Scheitern verurteilt. Sie wurden ein paar Monate später geschlossen.
[3] Ich denke, das ist es, was die Leute meinen, wenn sie über den "Sinn des Lebens" sprechen. Auf den ersten Blick scheint das eine seltsame Idee zu sein. Das Leben ist kein Ausdruck; wie könnte es einen Sinn haben? Aber es kann eine Qualität haben, die sich sehr nach Sinn anfühlt. In einem Projekt wie einem Compiler muss man viele Probleme lösen, aber die Probleme fallen alle in ein Muster, wie in einem Signal. Während die Probleme, die man lösen muss, zufällig sind, erscheinen sie wie Rauschen.
[4] Einstein arbeitete irgendwann an der Konstruktion von Kühlschränken. (Er hatte Anteile.)
[5] Es ist schwer zu sagen, was genau Forschung in der Computerwelt ausmacht, aber als erste Näherung ist es Software, die keine Benutzer hat.
Ich glaube nicht, dass es die Veröffentlichung ist, die die besten Hacker dazu bringt, in Forschungsabteilungen arbeiten zu wollen. Ich denke, es ist vor allem, dass man nicht an einem dreistündigen Meeting mit einem Produktmanager über Probleme bei der Integration der koreanischen Version von Word 13.27 mit der sprechenden Büroklammer teilnehmen muss.
[6] Etwas Ähnliches geschieht schon lange im Baugewerbe. Wenn man vor ein paar hundert Jahren ein Haus bauen ließ, bauten die lokalen Bauarbeiter alles darin. Aber zunehmend bauen Bauarbeiter Komponenten zusammen, die von jemand anderem entworfen und hergestellt wurden. Dies hat, wie das Aufkommen des Desktop-Publishing, den Menschen die Freiheit gegeben, auf katastrophale Weise zu experimentieren, aber es ist sicherlich effizienter.
[7] Google ist für Microsoft viel gefährlicher als Netscape war. Wahrscheinlich gefährlicher als jedes andere Unternehmen jemals war. Nicht zuletzt, weil sie entschlossen sind, zu kämpfen. Auf ihrer Stellenanzeige Seite sagen sie, dass einer ihrer "Kernwerte" ist "Tue kein Böses". Von einem Unternehmen, das Sojaöl verkauft oder Bergbaugeräte herstellt, wäre eine solche Aussage nur exzentrisch. Aber ich denke, wir alle in der Computerwelt erkennen, gegen wen das eine Kriegserklärung ist.
Danke an Jessica Livingston, Robert Morris und Sarah Harlin für das Lesen früherer Versionen dieses Vortrags.