GROSSE HACKER
OriginalJuli 2004
(Dieser Aufsatz ist aus einem Vortrag auf der Oscon 2004 abgeleitet.)
Vor ein paar Monaten habe ich ein neues Buch fertiggestellt, und in den Rezensionen lese ich immer wieder Wörter wie "provokativ" und "kontrovers". Ganz zu schweigen von "idiotisch".
Ich wollte das Buch nicht kontrovers machen. Ich versuchte, es effizient zu gestalten. Ich wollte die Zeit der Leute nicht damit verschwenden, ihnen Dinge zu erzählen, die sie bereits wissen. Es ist effizienter, ihnen einfach die Unterschiede zu geben. Aber ich nehme an, das führt unweigerlich zu einem alarmierenden Buch.
Edisons
Es gibt keinen Streit darüber, welche Idee am kontroversesten ist: der Vorschlag, dass die Variation des Reichtums vielleicht nicht so großes Problem ist, wie wir denken.
Ich habe in dem Buch nicht gesagt, dass die Variation des Reichtums an sich etwas Gutes ist. Ich sagte, dass sie in manchen Situationen ein Zeichen für gute Dinge sein könnte. Ein pochender Kopfschmerz ist keine gute Sache, aber er kann ein Zeichen für etwas Gutes sein - zum Beispiel, dass man das Bewusstsein wiedererlangt, nachdem man auf den Kopf geschlagen wurde.
Die Variation des Reichtums kann ein Zeichen für Variation in der Produktivität sein. (In einer Gesellschaft von einer Person sind sie identisch.) Und das ist mit Sicherheit etwas Gutes: Wenn Ihre Gesellschaft keine Variation in der Produktivität aufweist, liegt das wahrscheinlich nicht daran, dass jeder ein Thomas Edison ist. Wahrscheinlich liegt es daran, dass Sie keine Thomas Edisons haben.
In einer Low-Tech-Gesellschaft sieht man nicht viel Variation in der Produktivität. Wenn Sie eine Gruppe von Nomaden haben, die Stöcke für ein Feuer sammeln, wie viel produktiver wird der beste Stocksammler im Vergleich zum schlechtesten sein? Vielleicht um den Faktor zwei? Während wenn man den Menschen ein komplexes Werkzeug wie einen Computer in die Hand gibt, die Variation dessen, was sie damit machen können, enorm ist.
Das ist keine neue Idee. Fred Brooks schrieb 1974 darüber, und die Studie, auf die er sich bezog, wurde 1968 veröffentlicht. Aber ich glaube, er hat die Variation 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, wenn das Problem nicht vorgegeben ist? In der Programmierung, wie in vielen Bereichen, besteht die Schwierigkeit nicht darin, Probleme zu lösen, sondern zu entscheiden, welche Probleme man lösen soll. Vorstellungskraft ist schwer zu messen, aber in der Praxis dominiert sie die Art von Produktivität, die in Codezeilen gemessen wird.
Die Produktivität variiert in jedem Bereich, aber es gibt nur wenige, in denen sie so stark variiert. Die Variation zwischen Programmierern ist so groß, dass es zu einem Unterschied in der Art wird. Ich glaube nicht, dass dies etwas Intrinsisches an der Programmierung ist. In jedem Bereich verstärkt die Technologie die Unterschiede in der Produktivität. Ich denke, was in der Programmierung passiert, ist einfach, dass wir einen hohen technologischen Hebel haben. Aber in jedem Bereich wird der Hebel länger, so dass die Variation, die wir sehen, etwas ist, das mehr und mehr Bereiche mit der Zeit sehen werden. Und der Erfolg von Unternehmen und Ländern wird zunehmend davon abhängen, wie sie damit umgehen.
Wenn die Variation der Produktivität mit der Technologie zunimmt, dann wird der Beitrag der produktivsten Einzelpersonen nicht nur unverhältnismäßig groß sein, sondern tatsächlich mit der Zeit wachsen. Wenn man den Punkt erreicht, an dem 90% der Leistung einer Gruppe von 1% ihrer Mitglieder erbracht werden, verliert man viel, wenn etwas (sei es Wikingerüberfälle oder Zentralplanung) 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 machen? Wie erkennt man sie? Wie bringt man sie dazu, für einen zu arbeiten? Und dann natürlich die Frage, wie wird man selbst zu einem von ihnen?
Mehr als Geld
Ich kenne ein paar Super-Hacker, also habe ich 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ße Hacker sehen es als etwas, das sie zum Spaß machen und für das sie erfreut sind, dass andere ihnen dafür bezahlen.
Große Programmierer wird manchmal nachgesagt, dass sie gleichgültig gegenüber Geld sind. Das stimmt nicht ganz. Es ist wahr, dass sie sich im Grunde nur für interessante Arbeit interessieren. Aber wenn man genug Geld verdient, kann man an allem arbeiten, was man möchte, und aus diesem Grund werden Hacker von der Vorstellung angezogen, wirklich große Mengen Geld zu verdienen. Aber solange sie jeden Tag zur Arbeit kommen müssen, kümmern sie sich mehr um das, was sie dort tun, als um die Höhe ihrer Bezahlung.
Wirtschaftlich gesehen ist das eine Tatsache von größter Bedeutung, denn es bedeutet, dass man großen Hackern nicht annähernd das bezahlen muss, was sie wert sind. Ein großer Programmierer kann vielleicht zehn- oder hundertmal so produktiv sein wie ein gewöhnlicher, aber er wird sich glücklich schätzen, wenn er das Dreifache verdient. Wie ich später erklären werde, liegt das zum Teil daran, dass große 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 gute Werkzeuge. Tatsächlich ist das eine Untertreibung. Gute Hacker finden es unerträglich, schlechte Werkzeuge zu benutzen. Sie werden sich einfach weigern, an Projekten mit der falschen Infrastruktur zu arbeiten.
In einem Startup, für das ich einmal gearbeitet habe, war eine der Sachen, die an unserer Pinnwand hingen, eine Anzeige von IBM. Es war ein Bild eines AS400, und die Überschrift lautete, glaube ich, "Hacker verachten es".
Wenn Sie sich entscheiden, welche Infrastruktur Sie für ein Projekt verwenden, treffen Sie nicht nur eine technische Entscheidung. Sie treffen auch eine soziale Entscheidung, und das kann die wichtigere der beiden sein. Wenn Ihr Unternehmen zum Beispiel eine Software schreiben möchte, könnte es scheinen, dass es eine kluge Wahl ist, sie in Java zu schreiben. Aber wenn Sie eine Sprache wählen, wählen Sie auch eine Gemeinschaft. Die Programmierer, die Sie für ein Java-Projekt einstellen können, werden nicht so klug sein wie die, die Sie für ein in Python geschriebenes Projekt bekommen könnten. Und die Qualität Ihrer Hacker ist wahrscheinlich wichtiger als die Sprache, die Sie wählen. Obwohl die Tatsache, dass gute Hacker Python gegenüber Java vorziehen, Ihnen eigentlich schon etwas über die relativen Vorzüge dieser Sprachen sagen sollte.
Geschäftstypen bevorzugen die beliebtesten Sprachen, weil sie Sprachen als Standards betrachten. Sie wollen das Unternehmen nicht auf Betamax setzen. Das Besondere an Sprachen ist jedoch, dass sie nicht nur Standards sind. Wenn Sie Bits über ein Netzwerk übertragen müssen, verwenden Sie auf jeden Fall TCP/IP. Aber eine Programmiersprache ist nicht nur ein Format. Eine Programmiersprache ist ein Ausdrucksmedium.
Ich habe gelesen, dass Java gerade Cobol als beliebteste Sprache überholt hat. Als Standard könnte man sich nichts Besseres wünschen. Aber als Ausdrucksmedium könnte man es viel besser machen. Von all den großen Programmierern, die mir einfallen, kenne ich nur einen, der freiwillig in Java programmieren würde. Und von all den großen Programmierern, die nicht für Sun arbeiten, an Java, kenne ich keinen einzigen.
Große Hacker bestehen in der Regel auch 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 Risikokapitalgeber-Freund von einem neuen Start-up, an dem er beteiligt war. Es klang vielversprechend. Aber beim nächsten Gespräch sagte er, sie hätten sich entschieden, ihre Software auf Windows NT aufzubauen, und hätten gerade einen sehr erfahrenen NT-Entwickler als Chief Technical Officer eingestellt. Als ich das hörte, dachte ich, diese Jungs sind verloren. Erstens kann der CTO kein erstklassiger Hacker sein, weil er, um ein herausragender NT-Entwickler zu werden, NT freiwillig, mehrmals verwendet haben müsste, und ich könnte mir nicht vorstellen, dass ein großartiger Hacker das tut; und zweitens, selbst wenn er gut ist, wird es ihm schwerfallen, jemand Gutes zu finden, der für ihn arbeitet, wenn das Projekt auf NT aufgebaut werden muss. [2]
Die letzte Grenze
Nach der Software ist das Büro wahrscheinlich das wichtigste Werkzeug für einen Hacker. Große Unternehmen denken, dass die Funktion von Büroräumen darin besteht, den Rang auszudrücken. Aber Hacker nutzen ihre Büros für mehr als das: Sie nutzen ihr Büro als Ort zum Nachdenken. Und wenn Sie ein Technologieunternehmen sind, sind ihre Gedanken Ihr Produkt. Hacker also in einer lauten, ablenkenden Umgebung arbeiten zu lassen, ist, als würde man eine Farbfabrik betreiben, in der die Luft voller Ruß ist.
Der Comicstrip Dilbert hat viel über Würfelwände zu sagen, und mit gutem Grund. Alle Hacker, die ich kenne, verabscheuen sie. Allein die Aussicht auf Unterbrechungen reicht aus, um Hacker davon abzuhalten, an schwierigen Problemen zu arbeiten. Wenn Sie in einem Büro mit Würfelwänden echte Arbeit erledigen wollen, haben Sie zwei Möglichkeiten: Arbeiten Sie von zu Hause aus oder kommen Sie früh oder spät oder am Wochenende, wenn niemand sonst da ist. Merken Unternehmen nicht, dass das ein Zeichen dafür ist, dass etwas nicht stimmt? Eine Büroumgebung soll etwas sein, das Ihnen bei der Arbeit hilft, nicht etwas, trotz dem Sie arbeiten.
Unternehmen wie Cisco sind stolz darauf, dass dort jeder einen Würfel hat, sogar der CEO. Aber sie sind nicht so fortschrittlich, wie sie denken; offensichtlich betrachten sie Büroräume immer noch als Rangabzeichen. Beachten Sie auch, dass Cisco dafür bekannt ist, sehr wenig Produktentwicklung im Haus zu betreiben. Sie bekommen neue Technologie, indem sie Start-ups kaufen, die sie entwickelt haben - wo die Hacker vermutlich einen ruhigen Arbeitsplatz hatten.
Ein großes Unternehmen, das versteht, was Hacker brauchen, ist Microsoft. Ich habe einmal eine Recruitingwerbung für Microsoft gesehen, mit einem großen Bild einer Tür. Arbeiten Sie für uns, so die Prämisse, und wir geben Ihnen einen Arbeitsplatz, an dem Sie tatsächlich etwas erledigen können. Und wissen Sie, Microsoft ist unter großen Unternehmen bemerkenswert dafür, dass sie in der Lage sind, Software im 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 so einrichten, dass sie am meisten erreichen. Und wenn Hacker von zu Hause aus arbeiten, arbeiten sie nicht in lauten, offenen Räumen; sie arbeiten in Räumen mit Türen. Sie arbeiten an gemütlichen, nachbarschaftlichen Orten mit Menschen in der Nähe und einem Ort zum Spazierengehen, wenn sie etwas durchdenken müssen, anstatt in Glasboxen, die in Parkplätzen stehen. Sie haben eine Couch, auf der sie ein Nickerchen machen können, wenn sie müde sind, 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 während der besten Hackerstunden durch das Büro fegen. Es gibt keine Meetings oder, Gott bewahre, Firmenausflüge oder Teambildungsübungen. Und wenn Sie sich ansehen, was sie auf diesem Computer machen, werden Sie feststellen, dass es das bestätigt, was ich vorher über Werkzeuge gesagt habe. Vielleicht müssen sie bei der Arbeit Java und Windows verwenden, aber zu Hause, wo sie selbst wählen können, finden Sie sie wahrscheinlich eher bei Perl und Linux.
In der Tat können diese Statistiken darüber, dass Cobol oder Java die beliebtesten Sprachen sind, irreführend sein. Worauf wir stattdessen schauen sollten, wenn wir wissen wollen, welche Werkzeuge am besten sind, ist, was Hacker wählen, wenn sie frei wählen können - also bei eigenen Projekten. Wenn man diese Frage stellt, stellt man fest, dass Open-Source-Betriebssysteme bereits einen dominanten Marktanteil haben und die Nummer eins unter den Sprachen wahrscheinlich Perl ist.
Interessant
Neben guten Werkzeugen wollen Hacker interessante Projekte. Was macht ein Projekt interessant? Nun, offensichtlich wären Anwendungen wie Tarnflugzeuge oder Spezialeffekt-Software offen sexy und interessant zu bearbeiten. Aber jede Anwendung kann interessant sein, wenn sie neuartige technische Herausforderungen bietet. Es ist also schwer vorherzusagen, welche Probleme Hacker mögen werden, denn manche werden erst dann interessant, wenn die Leute, die daran arbeiten, eine neue Art von Lösung entdecken. Vor ITA (die die Software für Orbitz geschrieben haben) dachten die Leute, die an Flugpreissuchen arbeiteten, wahrscheinlich, dass es eine der langweiligsten Anwendungen überhaupt sei. Aber ITA hat es interessant gemacht, indem sie das Problem ambitionierter neu definiert haben.
Ich denke, dasselbe ist bei Google passiert. Als Google gegründet wurde, war die allgemeine Meinung unter den sogenannten Portalen, dass Suche langweilig und unwichtig sei. Aber die Jungs bei Google dachten nicht, dass Suche langweilig ist, und deshalb machen sie es so gut.
Dies ist ein Bereich, in dem Manager einen Unterschied machen können. Wie ein Elternteil, der zu einem Kind sagt: "Ich wette, du kannst dein ganzes Zimmer in zehn Minuten aufräumen", kann ein guter Manager manchmal ein Problem als interessanter umformulieren. Steve Jobs scheint besonders gut darin zu sein, zum Teil einfach, indem er hohe Maßstäbe setzt. Es gab viele kleine, preiswerte Computer vor dem Mac. Er definierte das Problem neu als: Mache einen, der schön ist. Und das hat die Entwickler wahrscheinlich mehr angetrieben als jeder Zuckerbrot und Peitsche.
Sie haben es sicher geliefert. Als der Mac zum ersten Mal erschien, mussten Sie ihn nicht einmal einschalten, um zu wissen, dass er gut sein würde; man konnte es am Gehäuse erkennen. Vor ein paar Wochen lief ich durch die Straßen in Cambridge und sah in jemandens Müll, was wie eine Tragetasche für einen Mac aussah. Ich schaute hinein und es war ein Mac SE. Ich nahm ihn mit nach Hause und steckte ihn ein, und er startete. Das fröhliche Macintosh-Gesicht und dann der Finder. Mein Gott, es war so einfach. Es war einfach wie ... Google.
Hacker mögen es, für Leute mit hohen Standards zu arbeiten. Aber es reicht nicht aus, nur genau zu sein. Sie müssen auf die richtigen Dinge bestehen. Was normalerweise bedeutet, dass Sie selbst ein Hacker sein müssen. Ich habe gelegentlich Artikel darüber gesehen, wie man Programmierer managt. Eigentlich sollte es zwei Artikel geben: einen darüber, was man tun soll, wenn man selbst Programmierer ist, und einen darüber, was man tun soll, wenn man es nicht ist. Und der zweite könnte wahrscheinlich in zwei Worten zusammengefasst werden: Geben Sie auf.
Das Problem ist nicht so sehr das tägliche Management. Wirklich gute Hacker sind praktisch selbstverwaltend. Das Problem ist, dass Sie, wenn Sie kein Hacker sind, nicht erkennen können, 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 meinen, dass man seine Produkte einfach schön machen kann, indem man einen großartigen Designer einstellt, um sie zu entwerfen. Aber wenn Sie selbst keinen guten Geschmack haben, wie sollen Sie dann einen guten Designer erkennen? Per Definition können Sie das nicht an seinem Portfolio erkennen. Und Sie können sich auch nicht an den Preisen orientieren, die er gewonnen hat oder an den Jobs, die er hatte, denn im Design, wie in den meisten Bereichen, werden diese eher von Mode und Networking bestimmt, wobei die tatsächliche Fähigkeit an dritter Stelle steht. Es gibt keinen Weg daran vorbei: Sie können einen Prozess, der schöne Dinge hervorbringen soll, nicht managen, ohne zu wissen, was schön ist. Amerikanische Autos sind hässlich, weil amerikanische Autofirmen von Leuten mit schlechtem Geschmack geleitet werden.
Viele Menschen in diesem Land sehen Geschmack als etwas Flüchtiges oder sogar Triviales an. Das ist es nicht. Um Design anzutreiben, muss ein Manager der anspruchsvollste Nutzer der Produkte seines Unternehmens sein. Und wenn Sie wirklich guten Geschmack haben, können Sie, wie Steve Jobs, es zu einer Art Problem machen, das gute Leute gerne lösen.
Fiese kleine Probleme
Es ist ziemlich einfach zu sagen, welche Arten von Problemen nicht interessant sind: Diejenigen, bei denen Sie anstelle von ein paar großen, klaren Problemen eine Menge fiese kleine Probleme lösen müssen. Eine der schlimmsten Arten von Projekten ist das Schreiben einer Schnittstelle zu einer Software, die voller Fehler ist. Ein anderes ist, wenn Sie etwas an die komplexen und schlecht definierten Bedürfnisse eines einzelnen Kunden anpassen müssen. Für Hacker sind diese Arten von Projekten der Tod durch tausend Schnitte.
Das unterscheidende Merkmal von fiesen kleinen Problemen ist, dass man von ihnen nichts lernt. Das Schreiben eines Compilers ist interessant, weil es einem beibringt, was ein Compiler ist. Aber das Schreiben einer Schnittstelle zu einer fehlerhaften Software lehrt einen nichts, weil die Fehler zufällig sind. [3] Es ist also nicht nur Pedanterie, die gute Hacker dazu bringt, fiese kleine Probleme zu meiden. Es ist eher eine Frage des Selbstschutzes. An fiesen kleinen Problemen zu arbeiten, macht einen dumm. Gute Hacker meiden es aus demselben Grund, aus dem sich Modelle vor Cheeseburger hüten.
Natürlich haben einige Probleme von Natur aus diesen Charakter. Und aufgrund von Angebot und Nachfrage werden sie besonders gut bezahlt. Also wäre ein Unternehmen, das einen Weg fände, großartige Hacker dazu zu bringen, an langweiligen Problemen zu arbeiten, sehr erfolgreich. Wie würde man das machen?
Eine Stelle, an der das passiert, sind Start-ups. In unserem Start-up hatten wir Robert Morris als Systemadministrator. Das ist, als würden die Rolling Stones auf einer Bar Mitzwa spielen. So etwas können Sie nicht einstellen. Aber Leute werden für Unternehmen, deren Gründer sie sind, jede Menge Schinderei auf sich nehmen. [4]
Größere Unternehmen lösen das Problem, indem sie das Unternehmen aufteilen. Sie bekommen kluge Leute, indem sie eine eigene Forschungs- und Entwicklungsabteilung einrichten, in der die Mitarbeiter nicht direkt an den fiesen kleinen Problemen der Kunden arbeiten müssen. [5] In diesem Modell fungiert die Forschungsabteilung wie eine Mine. Sie produzieren neue Ideen; vielleicht kann der Rest des Unternehmens sie nutzen.
Sie müssen es nicht so extrem treiben. Bottom-up-Programmierung schlägt einen anderen Weg 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 Werkzeuge zum Schreiben von Software dieser Art entwickeln und eine andere, die diese Werkzeuge nutzt, um die Anwendungen zu schreiben. Auf diese Weise könnten Sie es vielleicht schaffen, dass kluge Leute 99% Ihres Codes schreiben, sie aber trotzdem fast so isoliert von den Benutzern halten wie in einer traditionellen Forschungsabteilung. Die Werkzeugmacher hätten Benutzer, aber es wären nur die eigenen Entwickler des Unternehmens. [6]
Wenn Microsoft diesen Ansatz nutzen würde, wäre ihre Software nicht so voller Sicherheitslücken, weil die weniger klugen Leute, die die eigentlichen Anwendungen schreiben, keine Dinge auf niedrigerer Ebene wie das Speichermanagement machen würden. Anstatt Word direkt in C zu schreiben, würden sie große Lego-Blöcke der Word-Sprache zusammensetzen. (Duplo, glaube ich, ist der technische Begriff dafür.)
Klumpenbildung
Zusammen mit interessanten Problemen mögen gute Hacker andere gute Hacker. Große Hacker neigen dazu, sich zusammenzuballen - manchmal spektakulär, wie bei Xerox Parc. Also werden Sie nicht in linearem Verhältnis zu der Güte der Umgebung, die Sie für sie schaffen, gute Hacker anziehen. Die Tendenz zur Klumpenbildung bedeutet, dass es eher dem Quadrat der Umgebung entspricht. Also ist es "der Sieger nimmt alles". Zu einem gegebenen Zeitpunkt gibt es nur etwa zehn oder zwanzig Orte, an denen Hacker am liebsten arbeiten würden, und wenn Sie nicht einer davon sind, werden Sie nicht nur weniger großartige Hacker haben, sondern gar keine.
Großartige Hacker zu haben, ist für sich genommen nicht genug, um ein Unternehmen erfolgreich zu machen. Es funktioniert gut für Google und ITA, die derzeit zwei der Hotspots sind, aber es half weder Thinking Machines noch Xerox. Sun hatte eine Weile einen guten Lauf, aber ihr Geschäftsmodell ist ein abwärts gerichteter Aufzug. In dieser Situation können selbst die besten Hacker Sie nicht retten.
Ich denke jedoch, dass ein Unternehmen, das großartige Hacker anziehen kann, unter sonst gleichen Bedingungen einen riesigen Vorteil haben wird. Es gibt Leute, die dem widersprechen würden. Als wir in den 1990er Jahren die Runde der Risikokapitalfirmen machten, sagten uns mehrere, dass Softwareunternehmen nicht dadurch gewinnen, dass sie großartige Software schreiben, sondern durch Marke, Beherrschung von Vertriebskanälen und das Abschließen der richtigen Deals.
Sie schienen das wirklich zu glauben, und ich denke, ich weiß, warum. Ich glaube, wonach viele Risikokapitalgeber, zumindest unbewusst, suchen, ist der nächste Microsoft. Und natürlich, wenn Microsoft Ihr Modell ist, sollten Sie nicht nach Unternehmen suchen, die hoffen, durch das Schreiben großartiger Software zu gewinnen. Aber Risikokapitalgeber irren sich, wenn sie nach dem nächsten Microsoft suchen, denn kein Start-up kann der nächste Microsoft sein, es sei denn, ein anderes Unternehmen ist bereit, sich im richtigen Moment zu beugen und der nächste IBM zu sein.
Es ist ein Fehler, Microsoft als Modell zu verwenden, denn ihre ganze Kultur leitet sich von diesem einen glücklichen Zufall ab. Microsoft ist ein schlechter Datenpunkt. Wenn man sie ausschließt, stellt man fest, dass gute Produkte dazu neigen, auf dem Markt zu gewinnen. Nach was Risikokapitalgeber suchen sollten, ist der nächste Apple oder der nächste Google.
Ich glaube, Bill Gates weiß das. Was ihn an Google beunruhigt, ist nicht die Macht ihrer Marke, sondern die Tatsache, dass sie bessere Hacker haben. [7]
Anerkennung
Wer also sind die großen Hacker? Wie erkennt man sie, wenn man ihnen begegnet? Das erweist sich als sehr schwierig. Selbst Hacker können es nicht sagen. Ich bin ziemlich sicher, dass mein Freund Trevor Blackwell ein großartiger Hacker ist. Vielleicht haben Sie auf Slashdot darüber gelesen, wie er seinen eigenen Segway gebaut hat. Das Bemerkenswerte an diesem Projekt war, dass er die gesamte Software an einem Tag (in Python, übrigens) geschrieben hat.
Für Trevor ist das Routine. Aber als ich ihn das erste Mal traf, hielt ich ihn für einen kompletten Idioten. Er stand in Robert Morris' Büro und schwafelte irgendetwas vor sich hin, und ich erinnere mich, dass ich hinter ihm stand und Robert verzweifelt Zeichen gab, diesen Verrückten aus seinem Büro zu scheuchen, damit wir zum Mittagessen gehen konnten. Robert sagt, er habe Trevor anfangs auch falsch eingeschätzt. Offenbar hatte Trevor, als Robert ihn zum ersten Mal traf, gerade mit einem neuen Schema begonnen, bei dem er alles über jeden Aspekt seines Lebens auf einem Stapel Karteikarten aufschrieb, die er überall mit sich herumtrug. Er war auch gerade aus Kanada gekommen und hatte einen starken kanadischen Akzent und einen Vokuhila.
Das Problem wird dadurch verschärft, dass Hacker, trotz ihres Rufs der sozialen Ahnungslosigkeit, manchmal große Mühe darauf verwenden, intelligent zu erscheinen. Als ich im Studium war, hielt ich mich gelegentlich im MIT-KI-Labor auf. Es war anfangs ziemlich einschüchternd. Alle sprachen so schnell. Aber nach einer Weile lernte ich den Trick, schnell zu sprechen. Man muss nicht schneller denken; man muss einfach doppelt so viele Worte verwenden, um alles zu sagen.
Bei diesem Maß an Rauschen im Signal ist es schwierig, gute Hacker zu erkennen, wenn man ihnen begegnet. Ich kann es nicht, selbst jetzt nicht. Man kann es auch nicht an ihren Lebensläufen erkennen. Es scheint, als sei der einzige Weg, einen Hacker zu beurteilen, mit ihm an etwas zusammenzuarbeiten.
Und das ist der Grund, warum High-Tech-Gebiete nur um Universitäten herum entstehen. Das aktive Ingredienz hier sind nicht so sehr die Professoren als die Studenten. Start-ups wachsen um Universitäten herum, weil Universitäten vielversprechende junge Menschen zusammenbringen und sie an denselben Projekten arbeiten lassen. Die Klugen lernen, wer die anderen Klugen sind, und zusammen brüten sie neue Projekte aus.
Weil man einen großartigen Hacker nur erkennen kann, indem man mit ihm zusammenarbeitet, können Hacker selbst nicht einschätzen, wie gut sie sind. Das gilt bis zu einem gewissen Grad in den meisten Bereichen. Ich habe festgestellt, dass Menschen, die in etwas großartig sind, nicht so sehr von ihrer eigenen Größe überzeugt sind, als vielmehr darüber verwundert, warum alle anderen so inkompetent erscheinen.
Aber es ist für Hacker besonders schwierig, ihre eigene Leistung einzuschätzen, weil es schwierig ist, ihre Arbeit zu vergleichen. Das ist in den meisten anderen Bereichen einfacher. Über 100 Meter weiß man in 10 Sekunden, wer der Schnellste 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 ausmacht. Aber Hacking ist wie Schreiben. Wer kann sagen, welcher von zwei Romanen besser ist? Sicher nicht die Autoren.
Bei Hackern können zumindest andere Hacker erkennen, wie gut sie sind. Das liegt daran, dass Hacker, im Gegensatz zu Romanautoren, an gemeinsamen Projekten arbeiten. Wenn man ein paar knifflige Probleme über das Netz an jemanden weiterreichen kann und sieht, wie hart er sie zurückschlägt, lernt man ziemlich schnell, wie gut er ist. Aber Hacker können nicht bei ihrer eigenen Arbeit zusehen. Wenn man also einen großartigen Hacker fragt, wie gut er ist, wird er fast sicher 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 zusammengearbeitet haben. Das versetzt uns in eine seltsame Situation: Wir wissen nicht, wer unsere Helden sein sollten. Die Hacker, die berühmt werden, werden es meist durch zufällige PR-Unfälle. Gelegentlich muss ich ein Beispiel für einen großartigen Hacker nennen, und ich weiß nie, wen ich verwenden soll. Die ersten Namen, die mir in den Sinn kommen, sind immer Leute, die ich persönlich kenne, aber es scheint lahm, sie zu verwenden. Also denke ich mir, vielleicht sollte ich Richard Stallman oder Linus Torvalds oder Alan Kay oder jemanden Berühmten wie die nennen. Aber ich habe keine Ahnung, ob diese Leute großartige Hacker sind. Ich habe nie mit ihnen an etwas zusammengearbeitet.
Wenn es einen Michael Jordan des Hackens gibt, weiß es niemand, auch er selbst nicht.
Kultivierung
Schließlich die Frage, die alle Hacker beschäftigt hat: Wie wird man ein großartiger Hacker? Ich weiß nicht, ob es möglich ist, sich selbst dazu zu machen. Aber es ist sicher möglich, Dinge zu tun, die einen dumm machen, und wenn man sich selbst dumm machen kann, kann man sich wahrscheinlich auch klug machen.
Der Schlüssel, ein guter Hacker zu sein, könnte darin liegen, an dem zu arbeiten, was einem gefällt. Wenn ich an die großen Hacker denke, die ich kenne, haben sie eine Sache 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. Daher ist es wahrscheinlich, dass Sie es gut machen, wenn Sie das Hacken als etwas bewahren können, das Sie lieben. Versuchen Sie, den Sinn für das Wunderbare zu bewahren, den Sie mit 14 Jahren beim Programmieren hatten. Wenn Sie sich Sorgen machen, dass Ihr derzeitiger Job Ihr Gehirn verfaulen lässt, ist das wahrscheinlich der Fall.
Die besten Hacker tendieren natürlich dazu, klug zu sein, aber das trifft auf viele Bereiche zu. Gibt es eine Eigenschaft, die für Hacker einzigartig ist? Ich habe einige Freunde gefragt, und die Nummer eins, die sie erwähnt haben, war Neugier. Ich hatte immer angenommen, dass alle klugen Menschen neugierig sind - dass Neugier einfach die erste Ableitung von Wissen ist. Aber anscheinend sind Hacker besonders neugierig, vor allem darauf, wie Dinge funktionieren. Das macht Sinn, denn Programme sind in gewisser Weise riesige Beschreibungen davon, wie Dinge funktionieren.
Mehrere Freunde erwähnten die Fähigkeit der Hacker, sich zu konzentrieren - ihre Fähigkeit, wie einer von ihnen es ausdrückte, "alles außerhalb ihrer eigenen Köpfe auszublenden". Das habe ich sicher beobachtet. Und ich habe mehrere Hacker sagen hören, dass sie nach dem Trinken auch nur eines halben Bieres gar nicht mehr programmieren können. Also erfordert Hacken vielleicht eine besondere Fähigkeit, sich zu konzentrieren. Vielleicht können große Hacker eine große Menge an Kontext in ihren Kopf laden, so dass sie, wenn sie auf eine Codezeile schauen, nicht nur diese Zeile, sondern das ganze Programm um sie herum sehen. John McPhee schrieb, dass Bill Bradleys Erfolg als Basketballspieler teilweise auf seine außergewöhnliche Seitenwahrnehmung zurückzuführen war. "Perfektes" Sehen bedeutet etwa 47 Grad vertikale Seitenwahrnehmung. Bill Bradley hatte 70; er konnte den Korb sehen, wenn er auf den Boden schaute. Vielleicht haben große Hacker eine ähnliche angeborene Fähigkeit. (Ich betrüge, indem ich eine sehr dichte Sprache verwende, die den Platz verkleinert.)
Das könnte den Widerspruch bei Würfeln erklären. Vielleicht haben die Leute, die für die Einrichtungen verantwortlich sind, da sie keine Konzentration zu zerbrechen haben, keine Ahnung, dass es sich für einen Hacker anfühlt, als würde man sein Gehirn in einem Mixer haben. (Während Bill, wenn die Gerüchte über Autismus wahr sind, das nur allzu gut weiß.)
Ein Unterschied, den ich zwischen großen Hackern und klugen Menschen im Allgemeinen beobachtet habe, ist, dass Hacker politisch inkorrekter sind. Soweit es ein Geheimhandschlag unter guten Hackern gibt, ist es, wenn sie einander gut genug kennen, um Meinungen zu äußern, die sie von der Allgemeinheit steinigen lassen würden. Und ich kann sehen, warum politische Inkorrektheit eine nützliche Eigenschaft beim Programmieren wäre. Programme sind sehr komplex und, zumindest in den Händen guter Programmierer, sehr fließend. In solchen Situationen ist es hilfreich, eine Angewohnheit zu haben, Annahmen in Frage zu stellen.
Kann man diese Qualitäten kultivieren? Ich weiß es nicht. Aber man kann sie zumindest nicht unterdrücken. Also hier ist mein bester Versuch eines Rezepts. Wenn es möglich ist, sich selbst zu einem großartigen Hacker zu machen, mag der Weg dorthin darin bestehen, den folgenden Deal mit sich selbst zu schließen: Sie müssen nie an langweiligen Projekten arbeiten (es sei denn, Ihre Familie würde sonst verhungern), und im Gegenzug werden Sie sich nie erlauben, einen halbherzigen Job zu machen. Alle großen Hacker, die ich kenne, scheinen diesen Deal geschlossen zu haben, auch wenn vielleicht keiner von ihnen eine Wahl in der Sache hatte.
Anmerkungen
[1] Um fair zu sein, muss ich sagen, dass IBM anständige Hardware herstellt. Ich habe diesen Text auf einem IBM-Laptop geschrieben.
[2] Sie erwiesen sich tatsächlich als zum Untergang verdammt. Sie schlossen ein paar Monate später.
[3] Ich glaube, das ist es, was die Leute meinen, wenn sie vom "Sinn des Lebens" sprechen. Auf den ersten Blick scheint das eine seltsame Idee zu sein. Das Leben ist kein Ausdruck; wie könnte es dann Sinn haben? Aber es kann eine Qualität haben, die sich sehr nach Sinn anfühlt. In einem Projekt wie einem Compiler müssen Sie viele Probleme lösen, aber die Probleme fügen sich alle in ein Muster, wie in einem Signal. Während die Probleme, die Sie lösen müssen, wenn sie zufällig sind, wie Rauschen erscheinen.
[4] Einstein arbeitete zeitweise an der Konstruktion von Kühlschränken. (Er hatte Eigenkapital.)
[5] Es ist schwer genau zu sagen, was in der Computerwelt Forschung ausmacht, aber als erste Annäherung ist es Software, die keine Nutzer 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, keine dreistündige Besprechung mit einem Produktmanager über Probleme bei der Integration der koreanischen Version von Word 13.27 mit der sprechenden Büroklammer führen zu müssen.
[6] Etwas Ähnliches passiert schon seit langem in der Bauindustrie. Wenn Sie vor ein paar hundert Jahren ein Haus bauen ließen, bauten die örtlichen Handwerker alles darin. Aber zunehmend besteht die Aufgabe der Bauunternehmer darin, Komponenten zusammenzusetzen, die von jemand anderem entworfen und hergestellt wurden. Das hat, wie das Aufkommen des Desktop-Publishing, den Menschen die Freiheit gegeben, auf katastrophale Weise zu experimentieren, ist aber sicher effizienter.
[7] Google ist für Microsoft viel gefährlicher als Netscape es war. Wahrscheinlich gefährlicher als je ein anderes Unternehmen es war. Nicht zuletzt, weil sie entschlossen sind, zu kämpfen. Auf ihrer Stellenausschreibungsseite heißt es, dass einer ihrer "Kernwerte" "Sei nicht böse" ist. Von einem Unternehmen, das Sojaöl oder Bergbauausrüstung verkauft, wäre eine solche Erklärung lediglich exzentrisch. Aber ich denke, alle von uns in der Computerwelt erkennen, wem dieser Krieg gilt.
Danke an Jessica Livingston, Robert Morris und Sarah Harlin für das Lesen früherer Versionen dieses Vortrags.