Große Hacker
Möchten Sie ein Startup gründen? Lassen Sie sich von Y Combinator finanzieren.
Juli 2004
(Dieser Aufsatz basiert auf einem Vortrag bei Oscon 2004.)
Vor ein paar Monaten habe ich ein neues Buch fertiggestellt, und in Rezensionen stoße ich immer wieder auf Wörter wie „provokativ“ und „kontrovers“. Ganz zu schweigen von „idiotisch“.
Ich wollte das Buch nicht kontrovers gestalten. Ich wollte es effizient gestalten. Ich wollte die Zeit der Leute nicht verschwenden, indem ich ihnen Dinge erzähle, die sie bereits wussten. Es ist effizienter, ihnen einfach die Unterschiede mitzuteilen. Aber ich nehme an, das führt zwangsläufig zu einem beunruhigenden Buch.
Edisons
Es gibt keine Kontroverse darüber, welche Idee am kontroversesten ist: der Vorschlag, dass Wohlstandsunterschiede vielleicht nicht so groß sind, wie wir denken.
Ich habe im Buch nicht gesagt, dass Wohlstandsunterschiede an sich eine gute Sache sind. Ich habe gesagt, dass sie in manchen Situationen ein Zeichen für gute Dinge sein können. Ein pochender Kopfschmerz ist keine gute Sache, aber er kann ein Zeichen für eine gute Sache sein – zum Beispiel, dass Sie nach einem Schlag auf den Kopf wieder zu Bewusstsein kommen.
Wohlstandsunterschiede können ein Zeichen für Produktivitätsunterschiede sein. (In einer Gesellschaft von einer Person sind sie identisch.) Und das ist fast sicher eine gute Sache: Wenn Ihre Gesellschaft keine Produktivitätsunterschiede aufweist, liegt das wahrscheinlich nicht daran, dass alle Thomas Edison sind. Es liegt wahrscheinlich daran, dass Sie keine Thomas Edisons haben.
In einer niedrigtechnologischen Gesellschaft sieht man nicht viele Produktivitätsunterschiede. Wenn Sie einen Stamm von Nomaden haben, der Stöcke für ein Feuer sammelt, wie viel produktiver wird der beste Stockesammler sein als der schlechteste? Ein Faktor zwei? Wenn Sie den Leuten jedoch ein komplexes Werkzeug wie einen Computer geben, ist die Bandbreite 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 glaube, er unterschätzte die Unterschiede zwischen Programmierern. 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? Beim Programmieren, wie in vielen Bereichen, ist der schwierige Teil nicht das Lösen von Problemen, sondern die Entscheidung, 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 Art werden. Ich glaube jedoch nicht, dass dies etwas Intrinsisches am Programmieren ist. In jedem Bereich verstärkt Technologie Produktivitätsunterschiede. Ich glaube, was beim Programmieren passiert, ist einfach, dass wir viel technologischen Hebel haben. Aber in jedem Bereich wird der Hebel länger, sodass die Unterschiede, die wir sehen, etwas sind, das immer mehr Bereiche im Laufe der Zeit sehen 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, dann 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 werden, verlieren Sie viel, wenn etwas (ob Wikingerüberfälle oder Zentralplanung) 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 Sie zu arbeiten? Und dann gibt es natürlich noch die Frage, wie man selbst einer wird?
Mehr als Geld
Ich kenne eine Handvoll Super-Hacker, also setzte ich mich hin und dachte darüber nach, was sie gemeinsam haben. Ihre definierende Eigenschaft ist wahrscheinlich, dass sie Programmieren wirklich lieben. Normale Programmierer schreiben Code, um die Rechnungen zu bezahlen. Große Hacker betrachten es als etwas, das sie zum Spaß tun, und sie sind begeistert, wenn Leute sie dafür bezahlen.
Großen Programmierern wird manchmal nachgesagt, dass sie Geld gegenüber gleichgültig sind. Das stimmt nicht ganz. Es stimmt, dass sie sich nur um interessante Arbeit kümmern. Aber wenn man genug Geld verdient, kann man an allem arbeiten, was man will, und aus diesem Grund fühlen sich Hacker von der Idee angezogen, wirklich viel Geld zu verdienen. Aber solange sie jeden Tag zur Arbeit erscheinen müssen, kümmern sie sich mehr darum, was sie dort tun, als darum, wie viel sie dafür bezahlt werden.
Wirtschaftlich ist dies eine Tatsache von größter Bedeutung, denn es bedeutet, dass man großen Hackern nicht annähernd das zahlen muss, was sie wert sind. Ein großer Programmierer mag zehn- oder hundertmal produktiver sein als ein gewöhnlicher, 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ße Hacker nicht wissen, wie gut sie sind. Aber es liegt auch daran, dass Geld nicht das ist, was sie hauptsächlich 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 weigern sich einfach, an Projekten mit der falschen Infrastruktur zu arbeiten.
Bei einem Startup, für das ich einmal gearbeitet habe, hing eine Anzeige von IBM an unserer Pinnwand. Es war ein Bild eines AS400, und die Überschrift 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 mag wichtiger sein als die technische. Wenn Ihr Unternehmen beispielsweise Software schreiben möchte, könnte die Wahl von Java eine umsichtige Entscheidung sein. 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 Projekt in Python bekommen könnten. Und die Qualität Ihrer Hacker ist wahrscheinlich wichtiger als die gewählte Sprache. Obwohl, ehrlich gesagt, die Tatsache, dass gute Hacker Python gegenüber Java bevorzugen, Ihnen etwas über die relativen Vorzüge dieser Sprachen sagen sollte.
Geschäftsleute bevorzugen die beliebtesten Sprachen, weil sie Sprachen als Standards betrachten. Sie wollen die Firma nicht auf Betamax setzen. Das Ding mit Sprachen ist jedoch, dass sie nicht nur Standards sind. Wenn Sie Bits über ein Netzwerk bewegen müssen, 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 gerade Cobol als beliebteste Sprache überholt hat. Als Standard könnten Sie sich nicht mehr wünschen. Aber als Ausdrucksmittel könnten Sie viel besser abschneiden. 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 und nicht für Sun arbeiten, auf Java, kenne ich null.
Große 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 Teil dessen, was sie zu guten Hackern macht: Wenn etwas kaputt ist, müssen sie es reparieren. Sie möchten, dass sie dieses Gefühl für die Software haben, die sie für Sie schreiben. Sie sollten nicht überrascht sein, wenn sie dasselbe Gefühl für das Betriebssystem haben.
Vor ein paar Jahren erzählte mir ein Freund, ein Risikokapitalgeber, 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 ihren technischen Leiter 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 herausragender NT-Entwickler zu werden, hätte er NT freiwillig, mehrmals, benutzen müssen, und ich konnte mir keinen großen Hacker vorstellen, der das tut; und zweitens, selbst wenn er gut wäre, hätte er Schwierigkeiten, gute Leute für sich arbeiten zu lassen, wenn das Projekt auf NT aufgebaut werden müsste.[2]
Die letzte Grenze
Nach Software ist das wichtigste Werkzeug für einen Hacker wahrscheinlich sein Büro. Große Unternehmen denken, die Funktion von Büroräumen sei es, 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. Daher ist es wie eine Farbenfabrik, in der die Luft voller Ruß ist, wenn man Hacker in einer lauten, ablenkenden Umgebung arbeiten lässt.
Der Cartoon Dilbert hat viel über Cubicles 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 Cubicles echte Arbeit leisten wollen, haben Sie zwei Möglichkeiten: zu Hause arbeiten oder früh oder spät oder am Wochenende kommen, wenn niemand sonst da ist. Erkennen Unternehmen nicht, dass dies ein Zeichen dafür ist, dass etwas kaputt ist? Eine Büroumgebung soll Ihnen bei der Arbeit helfen, nicht etwas, gegen das Sie arbeiten.
Unternehmen wie Cisco sind stolz darauf, dass jeder dort ein Cubicle hat, sogar der CEO. Aber sie sind nicht so fortschrittlich, wie sie denken; offensichtlich betrachten sie Büroräume immer noch als Statussymbol. Beachten Sie auch, dass Cisco dafür berühmt ist, sehr wenig Produktentwicklung intern zu betreiben. Sie erhalten neue Technologien, indem sie die Startups 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 Reklame 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 arbeiten können. Und wissen Sie, Microsoft ist bemerkenswert unter großen Unternehmen, da sie in der Lage sind, Software intern zu entwickeln. Nicht gut, vielleicht, 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 arrangieren, damit sie am meisten erreichen. Und wenn sie zu Hause arbeiten, arbeiten Hacker nicht in lauten, offenen Räumen; sie arbeiten in Räumen mit Türen. Sie arbeiten in gemütlichen, nachbarschaftlichen Orten mit Leuten um sich herum und irgendwo zum Spazierengehen, wenn sie etwas durchdenken müssen, anstatt in Glasboxen, die auf Parkplätzen stehen. Sie haben ein Sofa, auf dem sie sich ausruhen können, wenn sie müde sind, anstatt komatös an ihrem Schreibtisch zu sitzen und vorzugeben, zu arbeiten. Es gibt keine Crew von Leuten mit Staubsaugern, die jeden Abend während der Haupt-Hacking-Zeiten durchrauschen. Es gibt keine Besprechungen 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 unterstreicht, was ich zuvor über Werkzeuge gesagt habe. Sie müssen bei der Arbeit vielleicht Java und Windows verwenden, aber zu Hause, wo sie es selbst wählen können, finden Sie sie eher bei Perl und Linux.
In der Tat können diese Statistiken über Cobol oder Java als 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 ihren eigenen Projekten. Wenn Sie diese Frage stellen, stellen Sie fest, dass Open-Source-Betriebssysteme bereits einen dominanten Marktanteil haben und die Nummer eins Sprache wahrscheinlich Perl ist.
Interessant
Neben guten Werkzeugen wollen Hacker interessante Projekte. Was macht ein Projekt interessant? Nun, offensichtlich wären offen sexy Anwendungen wie Stealth-Flugzeuge oder Spezialeffekt-Software interessant zu bearbeiten. Aber jede Anwendung kann interessant sein, wenn sie neuartige technische Herausforderungen birgt. Es ist also schwer vorherzusagen, welche Probleme Hacker mögen werden, da einige erst interessant werden, wenn die Leute, die an ihnen arbeiten, eine neue Art von Lösung entdecken. Vor ITA (die die Software innerhalb von Orbitz geschrieben haben) dachten die Leute, die an Flugpreis-Suchen arbeiteten, wahrscheinlich, dass dies eine der langweiligsten Anwendungen überhaupt war. Aber ITA machte es interessant, indem es das Problem auf eine ehrgeizigere Weise neu definierte.
Ich denke, dasselbe ist bei Google passiert. Als Google gegründet wurde, war die konventionelle Weisheit unter den sogenannten Portalen, dass Suche langweilig und unwichtig sei. Aber die Leute bei Google dachten nicht, dass Suche langweilig sei, und deshalb machen sie es so gut.
Dies ist ein Bereich, in dem Manager einen Unterschied machen können. Wie ein Elternteil, der einem Kind sagt: „Ich wette, du kannst dein ganzes Zimmer in zehn Minuten aufräumen“, kann ein guter Manager ein Problem manchmal als interessanteres Problem neu definieren. Steve Jobs scheint darin besonders gut zu sein, teilweise einfach durch hohe Standards. Es gab viele kleine, preiswerte Computer vor dem Mac. Er definierte das Problem neu als: Mach einen, der schön ist. Und das trieb die Entwickler wahrscheinlich mehr an als jeder Karotte oder jeder Peitsche.
Sie haben sicherlich geliefert. 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 in Cambridge die Straße entlang, und in jemandes Müll sah ich etwas, das wie eine Mac-Tragetasche aussah. Ich schaute hinein und da war ein Mac SE. Ich trug ihn nach Hause und schloss ihn an, 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 aus, nur anspruchsvoll zu sein. Man muss auf die richtigen Dinge bestehen. Was normalerweise 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 Worte reduziert werden: Gib auf.
Das Problem ist nicht so sehr das Tagesgeschäft. Wirklich gute Hacker sind praktisch selbstverwaltend. Das Problem ist, wenn man kein Hacker ist, kann man 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 meinen, man könnte seine Produkte schön machen, indem man einfach einen großartigen Designer einstellt, um sie zu entwerfen. Aber wenn man selbst keinen guten Geschmack hat, wie erkennt man dann einen guten Designer? Per Definition kann man es nicht anhand seines Portfolios erkennen. Und man kann sich nicht an den Auszeichnungen orientieren, die er gewonnen hat, oder an den Jobs, die er hatte, denn im Design, wie in den meisten Bereichen, werden diese von Mode und Schleimerei angetrieben, wobei die tatsächliche Fähigkeit eine ferne dritte Stelle einnimmt. Es gibt keinen Ausweg: Man kann keinen Prozess managen, der darauf abzielt, schöne Dinge zu produzieren, ohne zu wissen, was schön ist. Amerikanische Autos sind hässlich, weil amerikanische Autofirmen von Leuten mit schlechtem Geschmack geführt werden.
Viele Menschen in diesem Land betrachten Geschmack als etwas Elusive oder sogar Frivoles. Das ist beides nicht. Um das Design voranzutreiben, muss ein Manager der anspruchsvollste Nutzer der Produkte eines Unternehmens sein. Und wenn man wirklich guten Geschmack hat, kann man, wie Steve Jobs, das Zufriedenstellen zu einer Aufgabe machen, die gute Leute gerne erledigen.
Nasty Little Problems
Es ist ziemlich einfach zu sagen, welche Arten von Problemen nicht interessant sind: solche, bei denen man statt einiger großer, klarer Probleme viele unangenehme kleine lösen muss. Einer der schlimmsten Arten von Projekten ist das Schreiben einer Schnittstelle zu einer Software, die 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 unangenehmen kleinen Problemen ist, dass man nichts daraus lernt. Das Schreiben eines Compilers ist interessant, weil es einem lehrt, 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 von unangenehmen kleinen Problemen fernhält. Es ist eher eine Frage der Selbsterhaltung. Das Arbeiten an unangenehmen kleinen Problemen macht einen dumm. Gute Hacker meiden es aus demselben Grund, warum Models Cheeseburger meiden.
Natürlich haben einige Probleme von Natur aus diesen Charakter. Und wegen Angebot und Nachfrage zahlen sie besonders gut. Ein Unternehmen, das einen Weg findet, große Hacker dazu zu bringen, an mühsamen Problemen zu arbeiten, wäre also sehr erfolgreich. Wie würde man das tun?
Ein Ort, an dem dies geschieht, sind Startups. Bei unserem Startup hatten wir Robert Morris als Systemadministrator. Das ist, als würde man die Rolling Stones bei einer Bar Mizwa spielen lassen. Man kann kein Talent dieser Art einstellen. Aber Leute tun jede Menge Schufterei für Unternehmen, deren Gründer sie sind.[4]
Größere Unternehmen lösen das Problem, indem sie das Unternehmen aufteilen. Sie stellen kluge Leute ein, indem sie eine separate F&E-Abteilung gründen, in der die Mitarbeiter nicht direkt an den unangenehmen kleinen Problemen der Kunden arbeiten müssen.[5] In diesem Modell funktioniert die Forschungsabteilung wie eine Mine. Sie produzieren neue Ideen; vielleicht kann der Rest des Unternehmens sie nutzen.
Sie müssen vielleicht nicht zu diesem Extrem gehen. Bottom-up-Programmierung schlägt einen anderen Weg vor, das Unternehmen aufzuteilen: Lassen Sie die klugen Leute als Werkzeugmacher arbeiten. Wenn Ihr Unternehmen Software zur Ausführung von x erstellt, lassen Sie eine Gruppe Werkzeuge für die Erstellung von Software dieser Art erstellen und eine andere Gruppe diese Werkzeuge zur Erstellung der Anwendungen verwenden. Auf diese Weise könnten Sie kluge Leute dazu bringen, 99 % Ihres Codes zu schreiben, aber sie fast so gut von den Benutzern isoliert halten, wie sie es in einer traditionellen Forschungsabteilung wären. Die Werkzeugmacher hätten Benutzer, aber es wären nur die eigenen Entwickler des Unternehmens.[6]
Wenn Microsoft diesen Ansatz verfolgen würde, wäre ihre Software nicht so voller Sicherheitslücken, weil die weniger klugen Leute, die die eigentlichen Anwendungen schreiben, keine Low-Level-Aufgaben wie die Speicherzuweisung durchführen würden. Anstatt Word direkt in C zu schreiben, würden sie große Lego-Blöcke aus der Word-Sprache zusammensetzen. (Duplo, glaube ich, ist der Fachbegriff.)
Klumpenbildung
Neben interessanten Problemen mögen gute Hacker andere gute Hacker. Große Hacker neigen dazu, sich zusammenzuschließen – manchmal spektakulär, wie bei Xerox Parc. Sie werden also gute Hacker nicht in einem linearen Verhältnis zur Qualität der Umgebung, die Sie für sie schaffen, anziehen. Die Tendenz zur Klumpenbildung bedeutet, dass es eher dem Quadrat der Umgebung entspricht. Es ist also ein Winner-takes-all-Markt. Zu jeder Zeit gibt es nur etwa zehn oder zwanzig Orte, an denen Hacker am liebsten arbeiten möchten, und wenn Sie nicht einer davon sind, werden Sie nicht nur weniger großartige Hacker haben, sondern gar keine.
Große Hacker zu haben, reicht für sich genommen nicht aus, um ein Unternehmen erfolgreich zu machen. Es funktioniert gut für Google und ITA, die derzeit zwei der angesagten Orte sind, aber es hat Thinking Machines oder Xerox nicht geholfen. Sun hatte eine gute Zeit lang Erfolg, aber ihr Geschäftsmodell ist ein absteigender Aufzug. In dieser Situation können selbst die besten Hacker Sie nicht retten.
Ich glaube jedoch, dass bei ansonsten gleichen Bedingungen ein Unternehmen, das große Hacker anziehen kann, einen riesigen Vorteil hat. Es gibt Leute, die dem widersprechen 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 Marke, Dominanz von Kanälen und die richtigen Deals.
Sie schienen das wirklich zu glauben, und ich glaube, ich weiß warum. Ich glaube, viele VCs suchen, zumindest unbewusst, nach dem nächsten 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 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, im richtigen Moment nachzugeben und das nächste IBM zu werden.
Es ist ein Fehler, Microsoft als Modell zu verwenden, da ihre gesamte Kultur von diesem einen glücklichen Zufall herrührt. 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 glaube, Bill Gates weiß das. Was ihn an Google beunruhigt, ist nicht die Stärke ihrer Marke, sondern die Tatsache, dass sie bessere Hacker haben.[7]
Anerkennung
Wer sind also die großen Hacker? Woher weiß man, wann man einen trifft? Das erweist sich als sehr schwierig. Selbst Hacker können es nicht sagen. Ich bin mir jetzt ziemlich sicher, dass mein Freund Trevor Blackwell ein großer Hacker ist. Sie haben vielleicht 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 (übrigens in Python).
Für Trevor ist das normal. Aber als ich ihn zum ersten Mal traf, hielt ich ihn für einen völligen Idioten. Er stand in Robert Morris' Büro und redete ihm irgendetwas zu, und ich erinnere mich, wie ich hinter ihm stand und Robert hektische Gesten machte, damit er diesen Verrückten aus seinem Büro scheucht, damit wir zu Mittag essen gehen konnten. Robert sagt, er habe Trevor anfangs auch falsch eingeschätzt. Anscheinend hatte Trevor, als Robert ihn zum ersten Mal traf, gerade ein neues Schema begonnen, bei dem er alles über jeden Aspekt seines Lebens auf einen Stapel Karteikarten schrieb, die er überall bei sich trug. Er war auch gerade aus Kanada angekommen, hatte einen starken kanadischen Akzent und einen Vokuhila.
Das Problem wird dadurch verschärft, dass Hacker trotz ihres Rufs der sozialen Vernachlässigung manchmal viel Mühe darauf verwenden, klug zu wirken. Als ich im Graduiertenstudium war, hing ich gelegentlich im MIT AI Lab herum. Es war anfangs etwas einschüchternd. Alle sprachen so schnell. Aber nach einer Weile lernte ich den Trick, schnell zu sprechen. Man muss nicht schneller denken; man muss nur doppelt so viele Wörter verwenden, um alles zu sagen.
Bei dieser Menge an Rauschen im Signal ist es schwer zu erkennen, wann man gute Hacker trifft. Ich kann es selbst jetzt nicht sagen. Man kann es auch nicht aus ihren Lebensläufen erkennen. Es scheint, dass der einzige Weg, einen Hacker zu beurteilen, darin besteht, mit ihm an etwas zu arbeiten.
Und das ist der Grund, warum High-Tech-Gebiete nur um Universitäten herum entstehen. Die aktive Zutat hier sind nicht so sehr die Professoren, sondern die Studenten. Startups entstehen um Universitäten, weil Universitäten vielversprechende junge Leute zusammenbringen und sie dazu bringen, an denselben Projekten zu arbeiten. Die Klugen lernen, wer die anderen Klugen sind, und zusammen brüten sie ihre eigenen neuen Projekte aus.
Da man einen großen Hacker nicht erkennen kann, außer durch die Zusammenarbeit mit ihm, können Hacker selbst nicht wissen, wie gut sie sind. Das gilt in gewissem Maße in den meisten Bereichen. Ich habe festgestellt, dass Menschen, die etwas großartig beherrschen, sich nicht so sehr ihrer eigenen Größe bewusst sind, wie sie sich wundern, warum alle anderen so inkompetent erscheinen.
Aber für Hacker ist es besonders schwer zu wissen, wie gut sie sind, weil es schwer ist, ihre Arbeit zu vergleichen. Das ist in den meisten anderen Bereichen einfacher. Über hundert 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 darstellt. Aber Hacking ist wie Schreiben. Wer kann sagen, welcher von zwei Romanen besser ist? Sicherlich nicht die Autoren.
Bei Hackern können es zumindest andere Hacker sagen. Das liegt daran, dass Hacker im Gegensatz zu Romanautoren an Projekten zusammenarbeiten. Wenn man über das Netz ein paar schwierige Probleme bei jemandem lösen kann, lernt man ziemlich schnell, wie hart sie zurückschlagen. Aber Hacker können sich selbst nicht bei der Arbeit beobachten. Wenn man also einen großen 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 bringt uns in eine seltsame Situation: Wir wissen nicht, wer unsere Helden sein sollten. Die Hacker, die berühmt werden, werden oft durch zufällige PR-Unfälle berühmt. Gelegentlich muss ich ein Beispiel für einen großen Hacker geben, 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 benutzen. Also denke ich, vielleicht sollte ich Richard Stallman, Linus Torvalds, Alan Kay oder jemanden Berühmten wie sie sagen. Aber ich habe keine Ahnung, ob diese Leute große Hacker sind. Ich habe noch nie mit ihnen an etwas gearbeitet.
Wenn es einen Michael Jordan des Hackings gibt, weiß es niemand, einschließlich ihm selbst.
Kultivierung
Schließlich die Frage, über die sich alle Hacker gewundert haben: Wie wird man ein großer 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 dumm machen kann, kann man sich wahrscheinlich auch schlau machen.
Der Schlüssel zu einem guten Hacker mag darin liegen, an dem zu arbeiten, was man mag. Wenn ich an die großen Hacker denke, die ich kenne, ist eines, das sie gemeinsam haben, 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. In dem Maße, in dem Sie das Hacking als etwas bewahren können, das Sie lieben, werden Sie es wahrscheinlich gut machen. Versuchen Sie, den Sinn für Wunder zu bewahren, den Sie mit 14 Jahren für das Programmieren hatten. Wenn Sie sich Sorgen machen, dass Ihr aktueller Job Ihr Gehirn verrottet, tut er das wahrscheinlich.
Die besten Hacker sind natürlich klug, aber das gilt in vielen Bereichen. Gibt es eine Eigenschaft, die für Hacker einzigartig ist? Ich habe einige Freunde gefragt, und das Wichtigste, was sie erwähnten, war Neugier. Ich hatte immer angenommen, dass alle klugen Leute neugierig sind – dass Neugier einfach die erste Ableitung von Wissen ist. Aber anscheinend sind Hacker besonders neugierig, besonders darauf, wie Dinge funktionieren. Das macht Sinn, denn Programme sind im Grunde riesige Beschreibungen, 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“. Das habe ich sicherlich bemerkt. Und ich habe mehrere Hacker sagen hören, dass sie nach dem Genuss auch nur eines halben Biers überhaupt nicht mehr programmieren können. Vielleicht erfordert Hacking also eine besondere Fähigkeit zur Fokussierung. Vielleicht können große Hacker eine große Menge an Kontext in ihrem Kopf speichern, sodass sie, wenn sie eine Codezeile betrachten, nicht nur diese Zeile, sondern das gesamte Programm darum herum sehen. John McPhee schrieb, dass Bill Bradleys Erfolg als Basketballspieler teilweise auf seine außergewöhnliche periphere Sicht zurückzuführen sei. „Perfekte“ Sicht bedeutet etwa 47 Grad periphere Sicht. 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 schummele, indem ich eine sehr dichte Sprache verwende, die das Spielfeld verkleinert.)
Dies könnte die Diskrepanz bei den Cubicles erklären. Vielleicht haben die für die Einrichtungen zuständigen Personen, da sie keine Konzentration zu zerstören haben, keine Ahnung, dass das Arbeiten in einem Cubicle für einen Hacker wie das Zerkleinern des Gehirns in einem Mixer ist. (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 bemerkt habe, ist, dass Hacker politisch inkorrekter 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 Öffentlichkeit zu Tode 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, die Gewohnheit zu haben, Annahmen zu hinterfragen.
Kann man diese Qualitäten 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ßen Hacker zu machen, dann vielleicht, indem man folgenden Deal mit sich selbst macht: Man muss nie an langweiligen Projekten arbeiten (es sei denn, die Familie hungert), und im Gegenzug erlaubt man sich nie, eine halbherzige Arbeit zu leisten. Alle großen Hacker, die ich kenne, scheinen diesen Deal gemacht zu haben, obwohl keiner von ihnen vielleicht die Wahl hatte.
Anmerkungen
[1] Fairerweise muss ich sagen, dass IBM anständige Hardware herstellt. Ich habe das auf einem IBM-Laptop geschrieben.
[2] Sie erwiesen sich als zum Scheitern verurteilt. Sie schlossen wenige Monate später.
[3] Ich glaube, das ist es, was Leute meinen, wenn sie über den „Sinn des Lebens“ sprechen. Oberflächlich betrachtet scheint dies 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 zu einem Zeitpunkt an der Entwicklung von Kühlschränken. (Er hatte Anteile.)
[5] Es ist schwer zu sagen, was genau Forschung in der Computerwelt ausmacht, aber als erste Annä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 glaube, es ist hauptsächlich, dass sie keine dreistündige Besprechung mit einem Produktmanager über Probleme bei der Integration der koreanischen Version von Word 13.27 mit dem sprechenden Büroklammer haben müssen.
[6] Etwas Ähnliches geschieht seit langem in der Bauindustrie. Als vor ein paar hundert Jahren ein Haus gebaut wurde, bauten die lokalen Bauherren alles darin. Aber zunehmend montieren die Bauherren Komponenten, 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 weitaus 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 Stellenausschreibungsseite sagen sie, dass einer ihrer „Kernwerte“ „Don't be evil“ ist. Von einem Unternehmen, das Sojaöl verkauft oder Bergbauausrüstung herstellt, wäre eine solche Aussage lediglich exzentrisch. Aber ich glaube, wir alle in der Computerwelt erkennen, wogegen dies eine Kriegserklärung ist.
Danke an Jessica Livingston, Robert Morris und Sarah Harlin für das Lesen früherer Versionen dieses Vortrags.