GROSSARTIGE HACKER
OriginalJuli 2004
(Dieser Aufsatz basiert auf einem Vortrag bei Oscon 2004.)
Ich habe vor ein paar Monaten ein neues Buch fertiggestellt und in den Rezensionen fallen mir immer wieder Worte wie „provokativ“ und „umstritten“ auf. Von „idiotisch“ ganz zu schweigen.
Ich wollte das Buch nicht kontrovers machen. Ich wollte es effizient machen. Ich wollte die Zeit der Leute nicht damit verschwenden, ihnen Dinge zu erzählen, die sie bereits wussten. Es ist effizienter, ihnen einfach die Unterschiede zu erklären. Aber ich nehme an, das Ergebnis wäre zwangsläufig ein alarmierendes Buch.
Edisons
Es besteht keine Kontroverse darüber, welche Idee am umstrittensten ist: die Annahme, dass Unterschiede im Wohlstand vielleicht doch kein so großes Problem darstellen, wie wir glauben.
Ich habe in dem Buch nicht gesagt, dass Schwankungen im Wohlstand an sich eine gute Sache seien. Ich sagte, dass sie in manchen Situationen ein Zeichen für etwas Gutes sein könnten. Ein pochender Kopfschmerz ist nichts Gutes, aber er kann ein Zeichen für etwas Gutes sein – zum Beispiel, dass man nach einem Schlag auf den Kopf wieder zu Bewusstsein kommt.
Schwankungen im Wohlstand können ein Zeichen für Schwankungen in der Produktivität sein. (In einer Gesellschaft mit nur einer Person sind sie identisch.) Und das ist mit ziemlicher Sicherheit eine gute Sache: Wenn es in Ihrer Gesellschaft keine Schwankungen in der Produktivität gibt, liegt das wahrscheinlich nicht daran, dass alle Thomas Edison sind. Es liegt wahrscheinlich daran, dass es in Ihrer Gesellschaft keine Thomas Edisons gibt.
In einer Low-Tech-Gesellschaft gibt es kaum Unterschiede in der Produktivität. Wenn Sie einen Stamm von Nomaden haben, die Äste für ein Feuer sammeln, wie viel produktiver wird dann der beste Ästesammler sein als der schlechteste? Um den Faktor zwei? Wenn Sie den Leuten hingegen ein komplexes Werkzeug wie einen Computer in die Hand geben, gibt es enorme Unterschiede in dem, was sie damit machen können.
Das ist keine neue Idee. Fred Brooks schrieb 1974 darüber, und die Studie, die er zitierte, wurde 1968 veröffentlicht. Aber ich glaube, er unterschätzte die Unterschiede zwischen Programmierern. Er schrieb über die 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 gegeben ist? Beim Programmieren, wie in vielen anderen Bereichen, besteht der schwierige Teil nicht darin, Probleme zu lösen, sondern zu entscheiden, welche Probleme gelöst werden sollen. 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 Unterschiede zwischen Programmierern sind so groß, dass sie zu einem Unterschied in der Natur werden. Ich glaube jedoch nicht, dass dies etwas ist, das dem Programmieren inhärent ist. In jedem Bereich vergrößert die Technologie die Unterschiede in der Produktivität. Ich denke, was im Programmieren passiert, ist einfach, dass wir einen großen technologischen Einfluss haben. Aber in jedem Bereich wird der Hebel länger, sodass die Unterschiede, die wir sehen, im Laufe der Zeit in immer mehr Bereichen auftreten werden. Und der Erfolg von Unternehmen und Ländern wird zunehmend davon abhängen, wie sie damit umgehen.
Wenn die Produktivitätsunterschiede mit der Technologie zunehmen, wird der Beitrag der produktivsten Individuen nicht nur überproportional groß sein, sondern mit der Zeit sogar wachsen. Wenn Sie den Punkt erreichen, an dem 90 % der Leistung einer Gruppe von 1 % ihrer Mitglieder erbracht wird, haben Sie große Verluste, wenn etwas (ob Wikingerüberfälle oder zentrale Planung) ihre Produktivität auf den Durchschnitt drückt.
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 bringt man sie dazu, für einen zu arbeiten? Und dann ist da natürlich noch die Frage: Wie wird man selbst zu einem dieser Menschen?
Mehr als Geld
Ich kenne eine Handvoll Superhacker, also habe ich mich hingesetzt und darüber nachgedacht, was sie gemeinsam haben. Ihr wichtigstes Merkmal ist wahrscheinlich, dass sie das Programmieren wirklich lieben. Gewöhnliche Programmierer schreiben Code, um ihre Rechnungen zu bezahlen. Große Hacker hingegen betrachten es als etwas, das sie zum Spaß tun und bei dem sie sich freuen, wenn die Leute sie dafür bezahlen.
Von großartigen Programmierern wird manchmal behauptet, Geld sei ihnen gleichgültig. Das ist nicht ganz richtig. Es stimmt, dass es ihnen nur darum geht, interessante Arbeit zu leisten. Aber wenn man genug Geld verdient, kann man an allem arbeiten, was man will, und aus diesem Grund sind Hacker von der Vorstellung angezogen, richtig viel Geld zu verdienen. Aber solange sie noch jeden Tag zur Arbeit erscheinen müssen, ist ihnen das, was sie dort tun, wichtiger als die Bezahlung dafür.
Ökonomisch gesehen ist dies eine Tatsache von größter Bedeutung, denn es bedeutet, dass man großartigen Hackern nicht annähernd das zahlen muss, was sie wert sind. Ein großartiger Programmierer mag zehn- oder hundertmal so produktiv sein wie ein gewöhnlicher, aber er kann froh sein, wenn er dreimal so viel verdient. 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 gute Werkzeuge. Tatsächlich ist das noch untertrieben. Gute Hacker finden es unerträglich, schlechte Werkzeuge zu verwenden. Sie weigern sich einfach, an Projekten mit der falschen Infrastruktur zu arbeiten.
Bei einem Startup, für das ich einmal gearbeitet habe, hing an unserem schwarzen Brett unter anderem eine Anzeige von IBM. Es war ein Bild eines AS400, und die Schlagzeile lautete, glaube ich, „Hacker verachten ihn.“ [1]
Wenn Sie entscheiden, welche Infrastruktur Sie für ein Projekt verwenden, treffen Sie nicht nur eine technische Entscheidung. Sie treffen auch eine soziale Entscheidung, und diese ist möglicherweise die wichtigere der beiden. Wenn Ihr Unternehmen beispielsweise Software schreiben möchte, scheint es eine kluge Entscheidung zu sein, diese in Java zu schreiben. Aber wenn Sie eine Sprache wählen, wählen Sie auch eine Community. Die Programmierer, die Sie für ein Java-Projekt einstellen können, sind möglicherweise nicht so intelligent wie die, die Sie für ein in Python geschriebenes Projekt einstellen könnten. Und die Qualität Ihrer Hacker ist wahrscheinlich wichtiger als die von Ihnen gewählte Sprache. Obwohl, ehrlich gesagt, die Tatsache, dass gute Hacker Python Java vorziehen, sollte Ihnen etwas über die relativen Vorzüge dieser Sprachen sagen.
Geschäftsleute bevorzugen die gängigsten Sprachen, weil sie Sprachen als Standards betrachten. Sie wollen ihr Unternehmen nicht auf Betamax setzen. Sprachen sind jedoch nicht nur Standards. 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 kann man sich nichts Besseres wünschen. Aber als Ausdrucksmedium könnte man noch viel mehr erreichen. Von allen großartigen Programmierern, die mir einfallen, kenne ich nur einen, der freiwillig in Java programmieren würde. Und von allen großartigen Programmierern, die mir einfallen und die nicht für Sun an Java arbeiten, kenne ich keinen einzigen.
Gute Hacker bestehen im Allgemeinen 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 ein Teil dessen, was sie zu guten Hackern macht: Wenn etwas kaputt ist, müssen sie es reparieren. Sie möchten, dass sie dies über die Software denken, die sie für Sie schreiben. Sie sollten nicht überrascht sein, wenn sie dasselbe über das Betriebssystem denken.
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 aufzubauen, und hätten gerade einen sehr erfahrenen NT-Entwickler als technischen Leiter eingestellt. Als ich das hörte, dachte ich, diese Leute sind verloren. Erstens konnte der CTO kein erstklassiger Hacker sein, denn um ein herausragender NT-Entwickler zu werden, hätte er NT freiwillig und mehrfach verwenden müssen, und ich konnte mir nicht vorstellen, dass ein großartiger Hacker das tun würde; und zweitens hätte er, selbst wenn er gut wäre, Schwierigkeiten, jemanden einzustellen, der gut für ihn arbeitet, wenn das Projekt auf NT aufgebaut werden müsste. [2]
Die letzte Grenze
Nach der Software ist für einen Hacker wahrscheinlich sein Büro das wichtigste Werkzeug. Große Unternehmen glauben, dass Büroräume dazu dienen, Rang und Würde auszudrücken. Hacker nutzen ihre Büros jedoch für mehr: Sie nutzen sie als Ort zum Nachdenken. Und wenn Sie ein Technologieunternehmen sind, sind ihre Gedanken Ihr Produkt. Hacker in einer lauten, ablenkenden Umgebung arbeiten zu lassen, ist also wie in einer Farbfabrik, in der die Luft voller Ruß ist.
Der Comic Dilbert hat viel über Bürokabinen zu sagen, und das aus gutem Grund. Alle Hacker, die ich kenne, verachten sie. Allein die Aussicht, unterbrochen zu werden, reicht aus, um Hacker davon abzuhalten, an schwierigen Problemen zu arbeiten. Wenn Sie in einem Büro mit Bürokabinen echte Arbeit erledigen möchten, haben Sie zwei Möglichkeiten: zu Hause arbeiten oder früh oder spät oder am Wochenende kommen, wenn sonst niemand da ist. Ist den Unternehmen nicht klar, dass dies ein Zeichen dafür ist, dass etwas nicht stimmt? Eine Büroumgebung sollte etwas sein, das Ihnen beim Arbeiten hilft , und nicht etwas, trotz dem Sie arbeiten.
Unternehmen wie Cisco sind stolz darauf, dass jeder dort ein Büro 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, dass es nur sehr wenig Produktentwicklung im eigenen Haus durchführt. Sie erhalten neue Technologien, 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 von Microsoft mit einem großen Bild einer Tür gesehen. „Arbeiten Sie für uns“, lautete die Prämisse, „und wir geben Ihnen einen Arbeitsplatz, an dem Sie tatsächlich arbeiten können.“ Und wissen Sie, Microsoft ist unter den großen Unternehmen insofern bemerkenswert, als dass es Software im eigenen Haus entwickeln kann. 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 organisieren, damit sie möglichst viel erledigen können. Und wenn sie zu Hause arbeiten, arbeiten Hacker nicht in lauten, offenen Räumen, sondern in Räumen 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 über etwas nachdenken müssen, statt in Glaskästen auf riesigen Parkplätzen. Sie haben ein Sofa, auf dem sie ein Nickerchen machen können, wenn sie müde sind, statt im 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 Haupthacking-Zeiten durch die Gegend braust. Es gibt keine Meetings oder, Gott bewahre, Betriebsausflüge oder Teambuilding-Übungen. Und wenn Sie sich ansehen, was sie an diesem Computer tun, werden Sie feststellen, dass dies das bestätigt, was ich zuvor über Werkzeuge gesagt habe. Sie müssen bei der Arbeit vielleicht Java und Windows verwenden, aber zu Hause, wo sie selbst wählen können, werden Sie sie eher mit Perl und Linux antreffen.
Tatsächlich können diese Statistiken, dass Cobol oder Java die beliebteste Sprache sind, irreführend sein. Wenn wir wissen wollen, welche Tools die besten sind, sollten wir uns ansehen, was Hacker wählen, wenn sie die freie Wahl haben - also in ihren eigenen Projekten. Wenn Sie diese Frage stellen, werden Sie feststellen, dass Open-Source-Betriebssysteme bereits einen dominanten Marktanteil haben und die Sprache Nummer eins wahrscheinlich Perl ist.
Interessant
Hacker wollen nicht nur gute Tools, sondern auch interessante Projekte. Was macht ein Projekt interessant? Natürlich wäre es interessant, an offenkundig sexy Anwendungen wie Stealth-Flugzeugen oder Spezialeffekt-Software zu arbeiten. Aber jede Anwendung kann interessant sein, wenn sie neuartige technische Herausforderungen mit sich bringt. Daher ist es schwer vorherzusagen, welche Probleme Hackern gefallen werden, denn manche werden erst dann interessant, wenn die Leute, die daran arbeiten, eine neue Art von Lösung entdecken. Vor ITA (das die Software für Orbitz geschrieben hat) dachten die Leute, die an der Flugpreissuche arbeiteten, wahrscheinlich, dass es eine der langweiligsten Anwendungen sei, die man sich vorstellen kann. Aber ITA machte es interessant, indem es das Problem auf anspruchsvollere Weise neu definierte .
Ich glaube, bei Google ist dasselbe passiert. Als Google gegründet wurde, war die allgemeine 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 etwas bewirken können. Wie ein Elternteil, der zu seinem Kind sagt: „Ich wette, du kannst dein ganzes Zimmer nicht in zehn Minuten aufräumen“, kann ein guter Manager ein Problem manchmal als interessanter neu definieren. Steve Jobs scheint darin besonders gut zu sein, teilweise einfach, weil er hohe Ansprüche hat. Vor dem Mac gab es viele kleine, preiswerte Computer. Er definierte das Problem neu als: Mach einen, der schön ist. Und das hat die Entwickler wahrscheinlich stärker angetrieben als Zuckerbrot und Peitsche.
Sie haben definitiv geliefert. Als der Mac zum ersten Mal auf den Markt kam, musste man ihn noch nicht einmal einschalten, um zu wissen, dass er gut war; man konnte es schon am Gehäuse erkennen. Vor ein paar Wochen ging ich in Cambridge die Straße entlang und sah in jemandes Müll etwas, das wie eine Mac-Tragetasche aussah. Ich schaute hinein und da war ein Mac SE. Ich trug ihn nach Hause, steckte ihn ein und er bootete. Das fröhliche Macintosh-Gesicht und dann der Finder. Mein Gott, es war so einfach. Es war genau wie ... Google.
Hacker arbeiten gern für Leute mit hohen Ansprüchen. Aber es reicht nicht, einfach nur anspruchsvoll zu sein. Man muss auf den richtigen Dingen bestehen. Und das bedeutet normalerweise, dass man selbst ein Hacker sein muss. Ich habe gelegentlich Artikel darüber gelesen, wie man Programmierer führt. Eigentlich sollte es zwei Artikel geben: einen darüber, was man tun sollte, wenn man selbst Programmierer ist, und einen darüber, was man tun sollte, wenn man keiner ist. Und der zweite könnte wahrscheinlich in zwei Worten zusammengefasst werden: aufgeben.
Das Problem ist nicht so sehr das tägliche Management. Wirklich gute Hacker managen sich praktisch selbst. Das Problem ist, dass man, wenn man kein Hacker ist, nicht erkennen kann, wer die guten Hacker sind. Ein ähnliches Problem erklärt, warum amerikanische Autos so hässlich sind. Ich nenne es das Design-Paradoxon. Sie glauben vielleicht, Sie könnten Ihre Produkte schön machen, indem Sie einfach einen großartigen Designer damit beauftragen. Aber wenn Sie selbst keinen guten Geschmack haben, wie wollen 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 gehabt hat, denn im Design, wie in den meisten Bereichen, werden diese eher von Mode und Geschmeidigkeit bestimmt, während das tatsächliche Können erst an dritter Stelle steht. Es führt kein 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 Autohersteller von Leuten mit schlechtem Geschmack geführt werden.
Viele Menschen in diesem Land halten Geschmack für etwas Unfassbares oder sogar Frivoles. Er ist weder das eine noch das andere. Um Design voranzutreiben, muss ein Manager der anspruchsvollste Benutzer der Produkte eines Unternehmens sein. Und wenn Sie wirklich guten Geschmack haben, können Sie, wie Steve Jobs, die Zufriedenheit Ihrer Person zu einer Art Problem machen, an dem gute Leute gerne arbeiten.
Fiese kleine Probleme
Es ist ziemlich einfach zu sagen, welche Arten von Problemen uninteressant sind: die, bei denen man statt einiger großer, klarer Probleme eine Menge fieser kleiner Probleme lösen muss. Eine der schlimmsten Arten von Projekten ist das Schreiben einer Schnittstelle zu einer Software, die voller Fehler ist. Eine andere ist, wenn man etwas an die komplexen und unklaren Bedürfnisse eines einzelnen Kunden anpassen muss. Für Hacker sind solche Projekte der Tod durch tausend Schnitte.
Das Besondere an fiesen kleinen Problemen ist, dass man nichts daraus lernt. Einen Compiler zu schreiben ist interessant, weil man dabei lernt, was ein Compiler ist. Aber eine Schnittstelle zu einer fehlerhaften Software zu schreiben, bringt einem nichts bei, weil die Fehler zufällig auftreten. [3] Es ist also nicht nur Akribie, die gute Hacker fiese kleine Probleme vermeiden lässt. Es ist eher eine Frage der Selbsterhaltung. Die Arbeit an fiesen kleinen Problemen macht einen dumm. Gute Hacker vermeiden sie aus demselben Grund, aus dem Modelle Cheeseburger meiden.
Natürlich haben manche Probleme diesen Charakter von Natur aus. Und aufgrund von Angebot und Nachfrage sind sie besonders gut bezahlt. Ein Unternehmen, das einen Weg fände, großartige Hacker für die Arbeit an langwierigen Problemen zu gewinnen, wäre also sehr erfolgreich. Wie würden Sie das machen?
Dies geschieht beispielsweise in Startups. Bei unserem Startup arbeitet Robert Morris als Systemadministrator. Das ist, als würden die Rolling Stones bei einer Bar Mitzwa spielen. Solche Talente kann man nicht einstellen. Aber für Unternehmen, deren Gründer sie sind, machen die Leute jede noch so harte Arbeit. [4]
Größere Unternehmen lösen das Problem, indem sie das Unternehmen aufspalten. Sie stellen kluge Leute ein, indem sie eine separate Forschungs- und Entwicklungsabteilung einrichten, in der die Mitarbeiter nicht direkt an den lästigen kleinen Problemen der Kunden arbeiten müssen. [5] In diesem Modell funktioniert die Forschungsabteilung wie eine Mine. Sie produziert neue Ideen; vielleicht kann der Rest des Unternehmens sie gebrauchen.
Sie müssen vielleicht nicht so weit gehen. Bottom-up-Programmierung schlägt eine andere Möglichkeit vor, das Unternehmen aufzuteilen: Lassen Sie die intelligenten Leute als Werkzeugmacher arbeiten. Wenn Ihr Unternehmen Software für x entwickelt, lassen Sie eine Gruppe Werkzeuge zum Schreiben von Software dieser Art entwickeln und eine andere, die diese Werkzeuge zum Schreiben der Anwendungen verwendet. Auf diese Weise können Sie vielleicht intelligente Leute dazu bringen, 99 % Ihres Codes zu schreiben, aber sie trotzdem fast so von den Benutzern isoliert halten, wie sie es in einer traditionellen Forschungsabteilung wären. Die Werkzeugmacher hätten Benutzer, aber sie wären nur die eigenen Entwickler des Unternehmens. [6]
Würde Microsoft diesen Ansatz verwenden, wäre ihre Software nicht so voller Sicherheitslücken, weil die weniger schlauen Leute, die die eigentlichen Anwendungen schreiben, sich nicht mit so niederen Dingen wie der Speicherzuweisung beschäftigen müssten. Anstatt Word direkt in C zu schreiben, würden sie große Legosteine der Word-Sprache zusammenstecken. (Ich glaube, der Fachbegriff dafür ist Duplo.)
Verklumpung
Neben interessanten Problemen mögen gute Hacker auch andere gute Hacker. Großartige Hacker neigen dazu, sich zusammenzuschließen – manchmal auf spektakuläre Weise, wie bei Xerox Parc. Sie werden also nicht linear proportional zu der Qualität der Umgebung, die Sie für sie schaffen, gute Hacker anziehen. Die Tendenz zur Ansammlung bedeutet, dass es eher dem Quadrat der Umgebung entspricht. Es gilt also: Der Gewinner bekommt alles. Zu jedem beliebigen Zeitpunkt gibt es nur etwa zehn oder zwanzig Orte, an denen Hacker am liebsten arbeiten möchten, und wenn Sie nicht einer von ihnen sind, werden Sie nicht nur weniger großartige Hacker haben, sondern gar keine.
Gute Hacker allein reichen nicht aus, um ein Unternehmen erfolgreich zu machen. Bei Google und ITA, die derzeit zwei der angesagtesten Unternehmen sind, funktioniert das gut, aber Thinking Machines oder Xerox hat es nicht geholfen. Sun hatte eine Zeit lang einen guten Lauf, aber ihr Geschäftsmodell ist ein abwärts gerichteter Aufzug. In einer solchen Situation können selbst die besten Hacker Sie nicht retten.
Ich denke jedoch, dass ein Unternehmen, das großartige Hacker anlocken kann, unter sonst gleichen Bedingungen einen enormen Vorteil hat. Es gibt Leute, die dem nicht zustimmen würden. Als wir in den 1990er Jahren die Runde bei Risikokapitalfirmen machten, sagten uns mehrere, dass Softwareunternehmen nicht durch das Schreiben großartiger Software gewinnen, sondern durch ihre Marke, die Beherrschung von Vertriebskanälen und die richtigen Deals.
Sie schienen das wirklich zu glauben, und ich glaube, ich weiß, warum. Ich glaube, viele Risikokapitalgeber suchen, zumindest unbewusst, nach dem nächsten Microsoft. Und wenn Microsoft Ihr Vorbild ist, sollten Sie natürlich nicht nach Unternehmen suchen, die hoffen, durch die Entwicklung großartiger Software zu gewinnen. Aber Risikokapitalgeber liegen falsch, wenn sie nach dem nächsten Microsoft suchen, denn kein Startup kann das nächste Microsoft sein, wenn nicht ein anderes Unternehmen im richtigen Moment bereit ist, nachzugeben und das nächste IBM zu sein.
Es ist ein Fehler, Microsoft als Modell zu nehmen, denn die gesamte Unternehmenskultur des Unternehmens beruht auf diesem einen Glücksfall. Microsoft ist ein schlechter Datenpunkt. Wenn man Microsoft ausschließt, stellt man fest, dass gute Produkte sich auf dem Markt durchsetzen. Risikokapitalgeber sollten nach dem nächsten Apple oder dem nächsten Google Ausschau halten.
Ich denke, Bill Gates weiß das. Was ihn an Google beunruhigt, ist nicht die Macht der Marke, sondern die Tatsache, dass sie über bessere Hacker verfügen. [7]
Erkennung
Wer sind also die großen Hacker? Wie erkennt man, wenn man auf einen trifft? Das ist sehr schwer zu erkennen. Nicht einmal Hacker können das erkennen. Ich bin mir mittlerweile ziemlich sicher, dass mein Freund Trevor Blackwell ein großer 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 geschrieben hat (übrigens in Python).
Für Trevor ist das ganz normal. Aber als ich ihn das erste Mal traf, hielt ich ihn für einen Vollidioten. Er stand in Robert Morris' Büro und plapperte über irgendetwas auf ihn ein, und ich weiß noch, wie ich hinter ihm stand und wild gestikulierte, damit Robert diesen Spinner aus seinem Büro verscheuche, damit wir Mittagessen gehen könnten. Robert sagt, dass er Trevor anfangs auch falsch eingeschätzt habe. Als Robert ihn das erste Mal traf, hatte Trevor anscheinend gerade mit einem neuen Plan begonnen, bei dem er alles über jeden Aspekt seines Lebens auf einen Stapel Karteikarten schrieb, die er überallhin mitnahm. Außerdem war er gerade aus Kanada angekommen und hatte einen starken kanadischen Akzent und eine Vokuhila-Frisur.
Das Problem wird noch dadurch verschärft, dass Hacker trotz ihres Rufs der sozialen Ignoranz manchmal große Anstrengungen unternehmen, um schlau zu wirken. Als ich noch studierte, war ich gelegentlich im MIT AI Lab. Anfangs war es ziemlich einschüchternd. Alle dort sprachen so schnell. Aber nach einer Weile habe ich den Trick gelernt, schnell zu sprechen. Man muss nicht schneller denken; man muss einfach doppelt so viele Wörter verwenden, um alles zu sagen.
Bei diesem Rauschen im Signal ist es schwer, gute Hacker zu erkennen, wenn man ihnen begegnet. Ich kann es nicht erkennen, nicht einmal jetzt. Auch aus ihren Lebensläufen kann man es nicht 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 Hightech-Bereiche nur rund um Universitäten entstehen. Die aktive Komponente sind hier nicht so sehr die Professoren, sondern die Studenten. Startups entstehen rund um Universitäten, weil Universitäten vielversprechende junge Leute zusammenbringen und sie an denselben Projekten arbeiten lassen. Die Schlauen lernen, wer die anderen Schlauen sind, und gemeinsam entwickeln sie neue eigene Projekte.
Da man einen großartigen Hacker nur erkennen kann, wenn man mit ihm zusammenarbeitet, können Hacker selbst nicht sagen, wie gut sie sind. Dies trifft bis zu einem gewissen Grad auf die meisten Bereiche zu. Ich habe festgestellt, dass Menschen, die in etwas großartig sind, nicht so sehr von ihrer eigenen Großartigkeit überzeugt sind, sondern eher darüber verblüfft sind, warum alle anderen so inkompetent erscheinen.
Für Hacker ist es jedoch besonders schwierig, ihre Leistung zu beurteilen, da ihre Arbeit kaum vergleichbar ist. In den meisten anderen Bereichen ist dies einfacher. Beim Hundertmeterlauf weiß man in 10 Sekunden, wer am schnellsten ist. Sogar 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 Hacken ist wie Schreiben. Wer kann schon sagen, welcher von zwei Romanen besser ist? Die Autoren jedenfalls nicht.
Bei Hackern können es zumindest andere Hacker erkennen. Das liegt daran, dass Hacker, anders als Romanautoren, an Projekten zusammenarbeiten. Wenn man jemandem über das Netz ein paar schwierige Probleme vorsetzt, erfährt man ziemlich schnell, wie hart er zurückschlägt. Hacker können sich jedoch nicht selbst bei der Arbeit zusehen. Wenn Sie also einen großen Hacker fragen, 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 die Leute, mit denen wir tatsächlich zusammengearbeitet haben. Das bringt uns in eine seltsame Situation: Wir wissen nicht, wer unsere Helden sein sollten. Die Hacker, die berühmt werden, werden meist durch zufällige PR-Unfälle berühmt. Gelegentlich muss ich ein Beispiel für einen großartigen Hacker geben und weiß nie, wen ich verwenden soll. Die ersten Namen, die mir in den Sinn kommen, sind meist Leute, die ich persönlich kenne, aber es scheint mir lahm, sie zu verwenden. Also, denke ich, vielleicht sollte ich Richard Stallman oder Linus Torvalds oder Alan Kay oder jemanden nennen, der so berühmt ist. Aber ich habe keine Ahnung, ob diese Typen großartige Hacker sind. Ich habe nie mit ihnen an irgendetwas gearbeitet.
Ob es einen Michael Jordan des Hackens gibt, weiß niemand, auch er nicht.
Anbau
Zum Schluss noch die Frage, die sich alle Hacker stellen: Wie wird man ein großartiger Hacker? Ich weiß nicht, ob man sich selbst zu einem solchen machen kann. 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 schlau machen.
Der Schlüssel zu einem guten Hacker könnte darin liegen, an dem zu arbeiten, was einem Spaß macht. Wenn ich an die großen Hacker denke, die ich kenne, fällt mir auf, dass sie alle eines gemeinsam haben: Es ist extrem schwierig , sie dazu zu bringen, an etwas zu arbeiten, was sie nicht wollen. Ich weiß nicht, ob das Ursache oder Wirkung ist; vielleicht ist es beides.
Um etwas gut zu machen, muss man es lieben . Wenn Sie also das Hacken als etwas bewahren können, das Sie lieben, werden Sie es wahrscheinlich auch gut machen. Versuchen Sie, das Staunen über das Programmieren zu bewahren, das Sie mit 14 Jahren hatten. Wenn Sie befürchten, dass Ihr aktueller Job Ihr Gehirn verrotten lässt, dann ist das wahrscheinlich auch der Fall.
Die besten Hacker sind natürlich meist schlau, aber das trifft auf viele Bereiche zu. Gibt es eine Eigenschaft, die Hackern eigen ist? Ich habe ein paar Freunde gefragt, und als Erstes nannten sie Neugier. Ich hatte immer angenommen, dass alle schlauen Leute neugierig sind – dass Neugier einfach die erste Ableitung von Wissen ist. Aber anscheinend sind Hacker besonders neugierig, vor allem, was die Funktionsweise von Dingen angeht. Das macht Sinn, denn Programme sind im Grunde riesige Beschreibungen davon, wie Dinge funktionieren.
Mehrere Freunde erwähnten die Konzentrationsfähigkeit von Hackern – ihre Fähigkeit, wie einer es ausdrückte, „alles außerhalb ihres eigenen Kopfes auszublenden“. Mir ist das auf jeden Fall aufgefallen. Und ich habe mehrere Hacker sagen hören, dass sie nach einem halben Bier überhaupt nicht programmieren können. Vielleicht erfordert Hacken also doch eine besondere Konzentrationsfähigkeit. Vielleicht können großartige Hacker eine große Menge Kontext in ihren Kopf laden, sodass sie beim Betrachten einer Codezeile nicht nur diese Zeile, sondern das gesamte Programm darum herum sehen. John McPhee schrieb, dass Bill Bradleys Erfolg als Basketballspieler teilweise auf sein außergewöhnliches peripheres Sehen zurückzuführen sei. „Perfektes“ Sehvermögen bedeutet ungefähr 47 Grad vertikales peripheres Sehen. 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 schummele, indem ich eine sehr komplizierte Sprache verwende, die das Spielfeld verkleinert.)
Dies könnte die Diskrepanz in Bezug auf die Büroarbeit erklären. Vielleicht haben die für die Einrichtungen verantwortlichen Leute, die keine Konzentration aufbringen müssen, keine Ahnung davon, dass sich die Arbeit in einem Büro für einen Hacker anfühlt, als hätte man sein Gehirn in einem Mixer. (Wobei Bill, wenn die Gerüchte über Autismus wahr sind, das nur zu gut weiß.)
Ein Unterschied, den ich zwischen großartigen Hackern und schlauen Leuten im Allgemeinen bemerkt habe, ist, dass Hacker politisch unkorrekter sind. Wenn es unter guten Hackern einen geheimen Handschlag gibt, dann nur, wenn sie sich gut genug kennen, um Meinungen zu äußern, für die sie von der Öffentlichkeit gesteinigt würden. Und ich kann verstehen, warum politische Unkorrektheit eine nützliche Eigenschaft beim Programmieren ist. Programme sind sehr komplex und, zumindest in den Händen guter Programmierer, sehr flüssig. In solchen Situationen ist es hilfreich, die 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. Hier ist also mein Versuch, ein Rezept zu finden. Wenn es möglich ist, sich selbst zu einem großartigen Hacker zu machen, dann vielleicht, indem man mit sich selbst den folgenden Deal macht: Man muss nie an langweiligen Projekten arbeiten (es sei denn, die Familie verhungert sonst) und im Gegenzug wird man sich nie erlauben, eine halbe Arbeit zu machen. Alle großartigen Hacker, die ich kenne, scheinen diesen Deal gemacht zu haben, obwohl vielleicht keiner von ihnen eine Wahl hatte.
Hinweise
[1] Fairerweise muss ich sagen, dass IBM ordentliche Hardware herstellt. Ich habe dies auf einem IBM-Laptop geschrieben.
[2] Es stellte sich heraus, dass sie zum Scheitern verurteilt waren. Sie mussten einige Monate später schließen.
[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 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 folgen alle einem Muster, wie bei einem Signal. Wenn die zu lösenden Probleme hingegen zufällig sind, erscheinen sie wie Rauschen.
[4] Einstein war eine Zeit lang als Entwickler von Kühlschränken tätig. (Er besaß Eigenkapital.)
[5] Es ist schwer zu sagen, was genau Forschung in der Computerwelt ausmacht, aber in erster Näherung handelt es sich um Software, die keine Benutzer hat.
Ich glaube nicht, dass es die Veröffentlichungen sind, die die besten Hacker dazu bringen, in Forschungsabteilungen arbeiten zu wollen. Ich glaube, es liegt vor allem daran, dass sie keine dreistündige Besprechung mit einem Produktmanager über Probleme bei der Integration der koreanischen Version von Word 13.27 mit der sprechenden Büroklammer abhalten 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 Bauunternehmer alles darin. Aber immer häufiger montieren Bauunternehmer Komponenten, die von jemand anderem entworfen und hergestellt wurden. Dies hat den Menschen, wie auch die Einführung des Desktop-Publishing, die Freiheit gegeben, auf katastrophale Weise zu experimentieren, aber es ist sicherlich effizienter.
[7] Google ist für Microsoft viel gefährlicher als Netscape es war. Wahrscheinlich gefährlicher als jedes andere Unternehmen es je war. Nicht zuletzt, weil sie entschlossen sind, zu kämpfen. Auf ihrer Seite mit den Stellenangeboten heißt es, einer ihrer „Kernwerte“ sei „Sei nicht böse“. Von einem Unternehmen, das Sojaöl oder Bergbauausrüstung verkauft, wäre eine solche Aussage einfach exzentrisch. Aber ich denke, wir alle in der Computerwelt wissen, wem das eine Kriegserklärung ist.
Vielen Dank an Jessica Livingston, Robert Morris und Sarah Harlin für das Lesen früherer Versionen dieses Vortrags.