GROSSE HACKER
OriginalJuli 2004
(Dieser Aufsatz stammt aus einem Vortrag auf der Oscon 2004.)
Vor ein paar Monaten habe ich ein neues Buch fertiggestellt, und in den Rezensionen fallen mir immer wieder Worte wie "provokant" und "kontrovers" auf. Ganz zu schweigen von "idiotisch".
Ich wollte das Buch nicht kontrovers gestalten. Ich wollte es effizient machen. Ich wollte die Zeit der Leute nicht verschwenden, indem ich ihnen Dinge erzähle, die sie bereits wissen. Es ist effizienter, ihnen einfach die Unterschiede zu geben. Aber ich nehme an, das wird zwangsläufig ein alarmierendes Buch ergeben.
Edisons
Es gibt keine Kontroversen darüber, welche Idee am umstrittensten ist: der Vorschlag, dass die Variation im Wohlstand möglicherweise nicht so großes Problem ist, wie wir denken.
Ich habe im Buch nicht gesagt, dass die Variation im Wohlstand an sich eine gute Sache ist. Ich habe gesagt, dass sie in einigen 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 du das Bewusstsein zurückgewinnst, nachdem du auf den Kopf geschlagen wurdest.
Die Variation im Wohlstand kann ein Zeichen für die Variation in der Produktivität sein. (In einer Gesellschaft von einem ist beides identisch.) Und das ist fast sicher eine gute Sache: Wenn deine Gesellschaft keine Variation in der Produktivität hat, liegt es wahrscheinlich nicht daran, dass jeder Thomas Edison ist. Es liegt wahrscheinlich daran, dass du keine Thomas Edisons hast.
In einer technologiearmen Gesellschaft siehst du nicht viel Variation in der Produktivität. Wenn du einen Stamm von Nomaden hast, die Stöcke für ein Feuer sammeln, wie viel produktiver wird der beste Stocksammler sein als der schlechteste? Ein Faktor von zwei? Während du, wenn du den Leuten ein komplexes Werkzeug wie einen Computer gibst, eine enorme Variation in dem, was sie damit tun können, siehst.
Das ist keine neue Idee. Fred Brooks schrieb 1974 darüber, und die Studie, die er zitierte, wurde 1968 veröffentlicht. Aber ich denke, er hat die Variation zwischen Programmierern unterschätzt. Er schrieb über Produktivität in Zeilen Code: Die besten Programmierer können ein gegebenes Problem in einem Zehntel der Zeit lösen. Aber was, wenn das Problem nicht gegeben ist? In der Programmierung, wie in vielen Bereichen, ist der schwierige Teil nicht das Lösen von Problemen, sondern das Entscheiden, welche Probleme zu lösen sind. Vorstellungskraft ist schwer zu messen, aber in der Praxis dominiert sie die Art von Produktivität, die in Zeilen Code 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 sie zu einem Unterschied in der Art wird. Ich denke nicht, dass dies etwas ist, das intrinsisch zur Programmierung gehört. In jedem Bereich verstärkt Technologie die Unterschiede in der Produktivität. Ich denke, was in der Programmierung passiert, ist einfach, dass wir viel technologischen Hebel haben. Aber in jedem Bereich wird der Hebel länger, sodass die Variation, die wir sehen, etwas ist, 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 Variation in der Produktivität mit der Technologie zunimmt, wird der Beitrag der produktivsten Individuen nicht nur unverhältnismäßig groß sein, sondern tatsächlich mit der Zeit wachsen. Wenn du den Punkt erreichst, an dem 90 % der Produktion einer Gruppe von 1 % ihrer Mitglieder erzeugt wird, verlierst du groß, wenn etwas (ob Viking-Razzien 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 erkennst du sie? Wie bringst du sie dazu, für dich zu arbeiten? Und dann gibt es natürlich die Frage, wie man selbst einer wird.
Mehr als Geld
Ich kenne eine Handvoll Super-Hacker, also habe ich mich hingesetzt und darüber nachgedacht, was sie gemeinsam haben. Ihre definierende Eigenschaft ist wahrscheinlich, dass sie wirklich gerne programmieren. Gewöhnliche Programmierer schreiben Code, um die Rechnungen zu bezahlen. Große Hacker sehen es als etwas, das sie zum Spaß tun, und über das sie sich freuen, dass die Leute bereit sind, sie dafür zu bezahlen.
Es wird manchmal gesagt, dass große Programmierer gegenüber Geld gleichgültig sind. Das ist nicht ganz wahr. Es stimmt, dass sie sich nur für interessante Arbeit interessieren. Aber wenn du genug Geld verdienst, kannst du an dem arbeiten, was du willst, und aus diesem Grund sind Hacker auch von der Idee angezogen, wirklich große Geldbeträge zu verdienen. Aber solange sie jeden Tag zur Arbeit erscheinen müssen, interessiert sie mehr, was sie dort tun, als wie viel sie dafür bezahlt werden.
Ökonomisch ist dies eine Tatsache von größter Bedeutung, denn es bedeutet, dass du große Hacker nicht annähernd so viel bezahlen musst, wie sie wert sind. Ein großartiger Programmierer könnte zehn oder hundertmal so produktiv sein wie ein gewöhnlicher, aber er wird sich glücklich schätzen, drei Mal 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 Hauptziel ist, das 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 einfach ablehnen, an Projekten mit der falschen Infrastruktur zu arbeiten.
In einem Startup, für das ich einmal gearbeitet habe, war eines der Dinge, die an unserem schwarzen Brett befestigt waren, eine Anzeige von IBM. Es war ein Bild eines AS400, und die Überschrift lautete, glaube ich, "Hacker verachten es." [1]
Wenn du entscheidest, welche Infrastruktur du für ein Projekt verwenden möchtest, triffst du nicht nur eine technische Entscheidung. Du triffst auch eine soziale Entscheidung, und diese könnte die wichtigere von beiden sein. Wenn dein Unternehmen beispielsweise Software schreiben möchte, könnte es eine kluge Wahl erscheinen, sie in Java zu schreiben. Aber wenn du eine Sprache wählst, wählst du auch eine Gemeinschaft. Die Programmierer, die du einstellen kannst, um an einem Java-Projekt zu arbeiten, werden nicht so intelligent sein wie die, die du für ein Projekt in Python gewinnen könntest. Und die Qualität deiner Hacker ist wahrscheinlich wichtiger als die Sprache, die du wählst. Obwohl, ehrlich gesagt, die Tatsache, dass gute Hacker Python Java vorziehen, sollte dir etwas über die relativen Vorzüge dieser Sprachen sagen.
Geschäftsleute bevorzugen die beliebtesten Sprachen, weil sie Sprachen als Standards betrachten. Sie wollen das Unternehmen nicht auf Betamax setzen. Das Problem mit Sprachen ist jedoch, dass sie nicht nur Standards sind. Wenn du Bits über ein Netzwerk bewegen musst, benutze unbedingt TCP/IP. Aber eine Programmiersprache ist nicht nur ein Format. Eine Programmiersprache ist ein Ausdrucksmittel.
Ich habe gelesen, dass Java gerade Cobol als die beliebteste Sprache überholt hat. Als Standard könnte man sich nichts Besseres wünschen. Aber als Ausdrucksmittel könnte man viel besser abschneiden. Von all den großartigen Programmierern, an die ich denken kann, kenne ich nur einen, der freiwillig in Java programmieren würde. Und von all den großartigen Programmierern, an die ich denken kann, die nicht für Sun an Java arbeiten, kenne ich keinen.
Große Hacker bestehen auch im Allgemeinen 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. Du möchtest, dass sie sich so über die Software fühlen, die sie für dich schreiben. Du solltest nicht überrascht sein, wenn sie sich über das Betriebssystem genauso fühlen.
Vor ein paar Jahren erzählte mir ein Freund, der Risikokapitalgeber ist, von einem neuen Startup, an dem er beteiligt war. Es klang vielversprechend. Aber beim nächsten Mal, als ich mit ihm sprach, sagte er, sie hätten beschlossen, ihre Software auf Windows NT zu entwickeln, und hätten gerade einen sehr erfahrenen NT-Entwickler als 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 angesehener NT-Entwickler zu werden, hätte er NT freiwillig mehrfach verwenden müssen, und ich konnte mir nicht vorstellen, dass ein großartiger Hacker das tun würde; und zweitens, selbst wenn er gut war, hätte er Schwierigkeiten, jemanden guten zu finden, der für ihn arbeitet, wenn das Projekt auf NT aufgebaut werden muss. [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 einen Ort zum Nachdenken. Und wenn du ein Technologieunternehmen bist, sind ihre Gedanken dein Produkt. Daher ist es, Hacker in einer lauten, ablenkenden Umgebung arbeiten zu lassen, wie eine Malerei-Fabrik zu haben, in der die Luft voller Ruß ist.
Der Comicstrip Dilbert hat viel über Büros zu sagen, und das aus gutem Grund. Alle Hacker, die ich kenne, verachten sie. Die bloße Aussicht, unterbrochen zu werden, reicht aus, um Hacker daran zu hindern, an schwierigen Problemen zu arbeiten. Wenn du in einem Büro mit Kabinen echte Arbeit erledigen möchtest, hast du zwei Optionen: arbeite von zu Hause aus oder komm früh oder spät oder am Wochenende, wenn sonst niemand da ist. Verstehen Unternehmen nicht, dass dies ein Zeichen dafür ist, dass etwas kaputt ist? Eine Büroumgebung sollte etwas sein, das dir hilft, zu arbeiten, nicht etwas, gegen das du arbeiten musst.
Unternehmen wie Cisco sind stolz darauf, dass jeder dort eine Kabine hat, sogar der CEO. Aber sie sind nicht so fortschrittlich, wie sie denken; offensichtlich betrachten sie immer noch Büroräume als ein Zeichen des Rangs. Beachte auch, dass Cisco dafür bekannt ist, sehr wenig Produktentwicklung im Haus zu betreiben. Sie erhalten neue Technologien, indem sie die Startups kaufen, die sie geschaffen 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 Rekrutierungsanzeige für Microsoft gesehen, mit einem großen Bild einer Tür. Arbeite für uns, lautete die Prämisse, und wir geben dir einen Arbeitsplatz, an dem du tatsächlich Arbeit erledigen kannst. Und du weißt, Microsoft ist bemerkenswert unter großen Unternehmen, weil 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 selbst so anordnen, dass sie am meisten erledigen können. 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 Menschen um sich herum und irgendwo, wo sie spazieren gehen können, wenn sie etwas überdenken müssen, anstatt in Glasboxen, die in Hektar von Parkplätzen stehen. Sie haben ein Sofa, auf dem 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 kein Team von Leuten mit Staubsaugern, die jeden Abend während der besten Hackerzeiten durchrauschen. Es gibt keine Besprechungen oder, Gott bewahre, Unternehmens-Retreats oder Teambuilding-Übungen. Und wenn du dir ansiehst, was sie an diesem Computer tun, wirst du feststellen, dass es das, was ich zuvor über Werkzeuge gesagt habe, verstärkt. Sie müssen vielleicht bei der Arbeit Java und Windows verwenden, aber zu Hause, wo sie selbst wählen können, findest du sie eher mit Perl und Linux.
In der Tat können diese Statistiken über Cobol oder Java als die beliebteste Sprache irreführend sein. Was wir uns ansehen sollten, wenn wir wissen wollen, welche Werkzeuge am besten sind, ist, was Hacker wählen, wenn sie frei wählen können – das heißt, in Projekten, die sie selbst durchführen. Wenn du diese Frage stellst, stellst du fest, dass Open-Source-Betriebssysteme bereits einen dominierenden Marktanteil haben, und die Nummer eins Sprache ist wahrscheinlich Perl.
Interessant
Neben guten Werkzeugen wollen Hacker interessante Projekte. Was macht ein Projekt interessant? Nun, offensichtlich wären offensichtlich sexy Anwendungen wie Tarnkappenflugzeuge oder Software für Spezialeffekte interessant zu bearbeiten. Aber jede Anwendung kann interessant sein, wenn sie neuartige technische Herausforderungen bietet. Daher ist es schwer vorherzusagen, welche Probleme Hacker mögen werden, denn einige werden erst interessant, wenn die Menschen, 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 der Suche nach Flugpreisen arbeiteten, wahrscheinlich, dass es eine der langweiligsten Anwendungen ist, die man sich vorstellen kann. Aber ITA machte es interessant, indem sie das Problem auf eine ehrgeizigere Weise neu definierten.
Ich denke, dass dasselbe bei Google passiert ist. Als Google gegründet wurde, war die allgemeine Meinung 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.
Das 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 nicht in zehn Minuten aufräumen", kann ein guter Manager manchmal ein Problem als interessanter definieren. Steve Jobs scheint besonders gut darin zu sein, teilweise einfach, indem er hohe Standards hat. Es gab viele kleine, günstige Computer vor dem Mac. Er definierte das Problem um: "Mach einen, der schön ist." Und das trieb die Entwickler wahrscheinlich härter an, als jede Karotte oder Peitsche es könnte.
Sie haben auf jeden Fall 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 die Straße in Cambridge entlang, und im Müll eines anderen sah ich, was wie eine Mac-Tragetasche aussah. Ich schaute hinein, und da war ein Mac SE. Ich trug ihn nach Hause und steckte ihn ein, und er bootete. Das glückliche Macintosh-Gesicht, und dann der Finder. Mein Gott, es war so einfach. Es war genau wie ... Google.
Hacker arbeiten gerne für Menschen mit hohen Standards. Aber es reicht nicht aus, nur anspruchsvoll zu sein. Du musst auf die richtigen Dinge bestehen. Was normalerweise bedeutet, dass du selbst ein Hacker sein musst. Ich habe gelegentlich Artikel darüber gesehen, wie man Programmierer managt. Wirklich sollte es zwei Artikel geben: einen darüber, was zu tun ist, wenn du selbst ein Programmierer bist, und einen darüber, was zu tun ist, wenn du es nicht bist. Und der zweite könnte wahrscheinlich auf zwei Worte reduziert werden: gib auf.
Das Problem ist nicht so sehr das tägliche Management. Wirklich gute Hacker sind praktisch selbstverwaltend. Das Problem ist, wenn du kein Hacker bist, kannst du nicht sagen, wer die guten Hacker sind. Ein ähnliches Problem erklärt, warum amerikanische Autos so hässlich sind. Ich nenne es das Design-Paradoxon. Du könntest denken, dass du deine Produkte schön machen könntest, indem du einfach einen großartigen Designer anheuerst, um sie zu entwerfen. Aber wenn du selbst keinen guten Geschmack hast, wie wirst du dann einen guten Designer erkennen? Per Definition kannst du es nicht an seinem Portfolio erkennen. Und du kannst nicht nach den Auszeichnungen gehen, die er gewonnen hat, oder den Jobs, die er hatte, denn im Design, wie in den meisten Bereichen, werden diese tendenziell von Mode und Schmeichelei bestimmt, wobei tatsächliche Fähigkeiten an dritter Stelle stehen. Es gibt keinen Weg daran vorbei: Du kannst einen Prozess, der dazu gedacht ist, schöne Dinge zu produzieren, nicht managen, ohne zu wissen, was schön ist. Amerikanische Autos sind hässlich, weil amerikanische Autohersteller von Menschen mit schlechtem Geschmack geleitet werden.
Viele Menschen in diesem Land betrachten Geschmack als etwas Flüchtiges oder sogar Frivoles. Das ist es nicht. Um Design voranzutreiben, muss ein Manager der anspruchsvollste Nutzer der Produkte eines Unternehmens sein. Und wenn du wirklich guten Geschmack hast, kannst du, wie Steve Jobs, es zu einem Problem machen, das gute Menschen gerne bearbeiten.
Nasty Little Problems
Es ist ziemlich einfach zu sagen, welche Arten von Problemen nicht interessant sind: solche, bei denen du anstelle von ein paar großen, klaren Problemen viele unangenehme kleine lösen musst. Eines der schlimmsten Arten von Projekten ist das Schreiben einer Schnittstelle zu einem Stück Software, das voller Fehler ist. Ein weiteres ist, wenn du etwas für die komplexen und schlecht definierten Bedürfnisse eines einzelnen Kunden anpassen musst. Für Hacker sind diese Arten von Projekten der Tod durch tausend Schnitte.
Das Unterscheidungsmerkmal von unangenehmen kleinen Problemen ist, dass du dabei nichts lernst. Das Schreiben eines Compilers ist interessant, weil es dir beibringt, was ein Compiler ist. Aber das Schreiben einer Schnittstelle zu einem fehlerhaften Stück Software lehrt dich nichts, weil die Fehler zufällig sind. [3] Es ist also nicht nur Pedanterie, die gute Hacker dazu bringt, unangenehme kleine Probleme zu vermeiden. Es ist mehr eine Frage der Selbstbewahrung. An unangenehmen kleinen Problemen zu arbeiten, macht dich dumm. Gute Hacker vermeiden es aus demselben Grund, aus dem Models Cheeseburger vermeiden.
Natürlich haben einige Probleme von Natur aus diesen Charakter. Und aufgrund von Angebot und Nachfrage zahlen sie besonders gut. Ein Unternehmen, das einen Weg finden würde, großartige Hacker dazu zu bringen, an mühsamen Problemen zu arbeiten, wäre sehr erfolgreich. Wie würdest du das tun?
Ein Ort, an dem dies geschieht, sind Startups. In unserem Startup hatten wir Robert Morris als Systemadministrator. Das ist, als würde man die Rolling Stones auf einer Bar Mitzvah spielen lassen. Du kannst so ein Talent nicht einstellen. Aber Menschen werden jede Menge Mühe für Unternehmen auf sich nehmen, deren Gründer sie sind. [4]
Größere Unternehmen lösen das Problem, indem sie das Unternehmen partitionieren. Sie bekommen kluge Leute, die für sie arbeiten, indem sie eine separate F&E-Abteilung einrichten, 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.
Du musst vielleicht nicht zu diesem Extrem gehen. Bottom-up-Programmierung schlägt einen anderen Weg vor, das Unternehmen zu partitionieren: Lass die klugen Leute als Werkzeugmacher arbeiten. Wenn dein Unternehmen Software zur Durchführung von x herstellt, lass eine Gruppe Werkzeuge zum Schreiben von Software dieses Typs bauen und eine andere, die diese Werkzeuge verwendet, um die Anwendungen zu schreiben. Auf diese Weise könntest du kluge Leute dazu bringen, 99 % deines Codes zu schreiben, aber sie dennoch fast so isoliert von den Benutzern 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 verwenden würde, wäre ihre Software nicht so voller Sicherheitslöcher, weil die weniger klugen Leute, die die tatsächlichen Anwendungen schreiben, nicht mit niedrigstufigen Dingen wie der Speicherzuweisung beschäftigt wären. Anstatt Word direkt in C zu schreiben, würden sie große Lego-Blöcke der Word-Sprache zusammenstecken. (Duplo, glaube ich, ist der technische Begriff.)
Clumping
Neben interessanten Problemen mögen gute Hacker auch andere gute Hacker. Große Hacker neigen dazu, sich zusammenzuschließen – manchmal spektakulär, wie bei Xerox Parc. Daher wirst du keine guten Hacker in linearer Proportion zu der Qualität der Umgebung, die du für sie schaffst, anziehen. Die Tendenz zum Clumping bedeutet, dass es mehr wie das Quadrat der Umgebung ist. Es ist also ein Gewinner, der alles nimmt. Zu jedem gegebenen Zeitpunkt gibt es nur etwa zehn oder zwanzig Orte, an denen Hacker am liebsten arbeiten möchten, und wenn du nicht einer von ihnen bist, wirst du nicht nur weniger großartige Hacker haben, sondern null.
Große Hacker zu haben, ist nicht allein genug, um ein Unternehmen erfolgreich zu machen. Es funktioniert gut für Google und ITA, die zwei der Hotspots im Moment sind, aber es hat Thinking Machines oder Xerox nicht geholfen. Sun hatte eine gute Zeit, aber ihr Geschäftsmodell ist ein abwärts gerichteter Aufzug. In dieser Situation können selbst die besten Hacker dich nicht retten.
Ich denke jedoch, dass ein Unternehmen, das großartige Hacker anziehen kann, einen riesigen Vorteil hat, wenn alle anderen Dinge gleich sind. Es gibt Menschen, die damit nicht einverstanden sind. Als wir in den 1990er Jahren bei den Risikokapitalfirmen auf Tour waren, sagten uns mehrere, dass Softwareunternehmen nicht gewinnen, indem sie großartige Software schreiben, sondern durch Marke, Dominanz der Kanäle und die richtigen Geschäfte.
Sie schienen wirklich zu glauben, und ich denke, ich weiß warum. Ich denke, dass viele VCs, zumindest unbewusst, nach dem nächsten Microsoft suchen. Und natürlich, wenn Microsoft dein Modell ist, solltest du nicht nach Unternehmen suchen, die hoffen, durch das Schreiben großartiger Software zu gewinnen. Aber VCs irren sich, wenn sie nach dem nächsten Microsoft suchen, denn kein Startup kann das nächste Microsoft sein, es sei denn, ein anderes Unternehmen ist bereit, sich im genau richtigen Moment zu bücken und das nächste IBM zu sein.
Es ist ein Fehler, Microsoft als Modell zu verwenden, denn ihre gesamte Kultur leitet sich von diesem einen glücklichen Zufall ab. Microsoft ist ein schlechter Datenpunkt. Wenn du sie ausschließt, stellst du fest, dass gute Produkte dazu tendieren, auf dem Markt zu gewinnen. Wonach VCs suchen sollten, ist das nächste Apple oder das nächste Google.
Ich denke, 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
Also, wer sind die großen Hacker? Wie weißt du, wenn du einem begegnest? Das stellt sich als sehr schwierig heraus. Sogar Hacker können es nicht sagen. Ich bin mir jetzt ziemlich sicher, dass mein Freund Trevor Blackwell ein großer Hacker ist. Vielleicht hast du auf Slashdot gelesen, wie er seinen eigenen Segway gebaut hat. Das Bemerkenswerte an diesem Projekt war, dass er die gesamte Software an einem Tag (übrigens in Python) schrieb.
Für Trevor ist das normal. Aber als ich ihn das erste Mal traf, dachte ich, er sei ein kompletter Idiot. Er stand im Büro von Robert Morris und redete mit ihm über irgendetwas, und ich erinnere mich, dass ich hinter ihm stand und verzweifelte Gesten an Robert machte, um diesen Spinner aus seinem Büro zu scheuchen, damit wir zu Mittag essen konnten. Robert sagt, er habe Trevor anfangs auch falsch eingeschätzt. Offensichtlich hatte Trevor, als Robert ihn zum ersten Mal traf, gerade ein neues Schema begonnen, das darin bestand, alles über jeden Aspekt seines Lebens auf einem Stapel von Karteikarten aufzuschreiben, die er überall mit sich herumtrug. Er war auch gerade aus Kanada angekommen und hatte einen starken kanadischen Akzent und einen Vokuhila.
Das Problem wird dadurch verschärft, dass Hacker, trotz ihres Rufs für soziale Unkenntnis, manchmal viel Mühe darauf verwenden, schlau zu erscheinen. Als ich im Graduiertenstudium war, hing ich gelegentlich im MIT AI Lab herum. Es war anfangs ziemlich einschüchternd. Alle dort sprachen so schnell. Aber nach einer Weile lernte ich den Trick, schnell zu sprechen. Du musst nicht schneller denken; benutze einfach doppelt so viele Worte, um alles zu sagen.
Mit dieser Menge an Rauschen im Signal ist es schwer zu erkennen, gute Hacker zu treffen, wenn du ihnen begegnest. Ich kann es nicht einmal jetzt sagen. Du kannst auch nicht an ihren Lebensläufen erkennen. Es scheint, als wäre der einzige Weg, einen Hacker zu beurteilen, mit ihm an etwas zu arbeiten.
Und das ist der Grund, warum High-Tech-Gebiete nur um Universitäten entstehen. Der aktive Bestandteil hier sind nicht so sehr die Professoren als die Studenten. Startups wachsen um Universitäten, weil Universitäten vielversprechende junge Menschen zusammenbringen und sie an denselben Projekten arbeiten lassen. Die Klugen lernen, wer die anderen Klugen sind, und zusammen entwickeln sie neue Projekte.
Weil du einen großartigen Hacker nur erkennen kannst, indem du mit ihm arbeitest, können Hacker selbst nicht erkennen, wie gut sie sind. Das ist in den meisten Bereichen bis zu einem gewissen Grad wahr. Ich habe festgestellt, dass Menschen, die in etwas großartig sind, nicht so sehr von ihrer eigenen Größe überzeugt sind, sondern verwirrt darüber, warum alle anderen so inkompetent erscheinen.
Aber es ist besonders schwer für Hacker zu wissen, wie gut sie sind, weil es schwer ist, ihre Arbeit zu vergleichen. Das ist in den meisten anderen Bereichen einfacher. Im Hundertmeterlauf weißt du 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 Hacken ist wie Schreiben. Wer kann sagen, welcher von zwei Romanen besser ist? Sicherlich nicht die Autoren.
Bei Hackern können zumindest andere Hacker es sagen. Das liegt daran, dass Hacker im Gegensatz zu Romanautoren an Projekten zusammenarbeiten. Wenn du ein paar schwierige Probleme über das Netz auf jemanden werfen kannst, lernst du ziemlich schnell, wie hart sie zurückschlagen. Aber Hacker können sich nicht selbst bei der Arbeit beobachten. Wenn du also einen großartigen Hacker fragst, 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 Menschen, mit denen wir tatsächlich gearbeitet haben. Was uns in eine seltsame Situation bringt: Wir wissen nicht, wer unsere Helden sein sollten. Die Hacker, die berühmt werden, werden dazu tendieren, durch zufällige PR-Unfälle berühmt zu werden. Gelegentlich muss ich ein Beispiel für einen großartigen Hacker geben, und ich weiß nie, wen ich verwenden soll. Die ersten Namen, die mir einfallen, sind immer Menschen, die ich persönlich kenne, aber es scheint lahm, sie zu verwenden. Also denke ich, vielleicht sollte ich Richard Stallman, Linus Torvalds oder Alan Kay oder jemanden Berühmten wie das sagen. Aber ich habe keine Ahnung, ob diese Leute großartige Hacker sind. Ich habe nie mit ihnen an irgendetwas gearbeitet.
Wenn es einen Michael Jordan des Hackens gibt, weiß es niemand, einschließlich ihm.
Kultivierung
Schließlich die Frage, über die die Hacker alle nachdenken: Wie wird man ein großartiger Hacker? Ich weiß nicht, ob es möglich ist, sich selbst zu einem zu machen. Aber es ist sicherlich möglich, Dinge zu tun, die dich dumm machen, und wenn du dich dumm machen kannst, kannst du dich wahrscheinlich auch schlau machen.
Der Schlüssel, um ein guter Hacker zu sein, könnte sein, an dem zu arbeiten, was du magst. Wenn ich an die großartigen Hacker denke, die ich kenne, haben sie eines gemeinsam: die extreme Schwierigkeit, sie dazu zu bringen, an irgendetwas zu arbeiten, was sie nicht wollen. Ich weiß nicht, ob das Ursache oder Wirkung ist; es könnte beides sein.
Um etwas gut zu machen, musst du es lieben. Soweit du das Hacken als etwas bewahren kannst, das du liebst, wirst du es wahrscheinlich gut machen. Versuche, das Gefühl des Staunens, das du mit 14 über Programmierung hattest, zu bewahren. Wenn du dir Sorgen machst, dass dein aktueller Job dein Gehirn verrottet, tut er es wahrscheinlich.
Die besten Hacker sind natürlich tendenziell klug, aber das ist in vielen Bereichen der Fall. Gibt es eine Eigenschaft, die einzigartig für Hacker ist? Ich habe einige Freunde gefragt, und das Wichtigste, was sie erwähnten, 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, insbesondere darüber, wie Dinge funktionieren. Das macht Sinn, denn Programme sind im Grunde genommen riesige Beschreibungen, wie Dinge funktionieren.
Mehrere Freunde erwähnten die Fähigkeit der Hacker, sich zu konzentrieren – ihre Fähigkeit, wie einer es ausdrückte, "alles außerhalb ihrer eigenen Köpfe auszublenden." Das habe ich sicherlich bemerkt. Und ich habe mehrere Hacker sagen hören, dass sie nach dem Trinken von sogar einem halben Bier überhaupt nicht mehr programmieren können. Vielleicht erfordert Hacken also eine besondere Fähigkeit zur Fokussierung. Vielleicht können großartige Hacker eine große Menge an Kontext in ihren Kopf laden, sodass sie, wenn sie eine Zeile Code ansehen, nicht nur diese Zeile, sondern das gesamte Programm um sie herum sehen. John McPhee schrieb, dass Bill Bradleys Erfolg als Basketballspieler teilweise auf sein außergewöhnliches peripheres Sehen zurückzuführen war. "Perfektes" Sehen bedeutet etwa 47 Grad vertikales peripheres Sehen. Bill Bradley hatte 70; er konnte den Korb sehen, während er auf den Boden schaute. Vielleicht haben großartige Hacker eine ähnliche angeborene Fähigkeit. (Ich schummle, indem ich eine sehr dichte Sprache verwende, die das Spielfeld verkleinert.)
Das könnte die Diskrepanz über Kabinen erklären. Vielleicht haben die Leute, die für die Einrichtungen verantwortlich sind, da sie keine Konzentration haben, die zerbrochen werden könnte, keine Ahnung, dass es sich für einen Hacker anfühlt, in einer Kabine zu arbeiten, als hätte man sein Gehirn in einem Mixer. (Während Bill, wenn die Gerüchte über Autismus wahr sind, das nur zu gut weiß.)
Ein Unterschied, den ich zwischen großartigen Hackern und klugen Menschen im Allgemeinen bemerkt habe, ist, dass Hacker politisch unkorrekter sind. Soweit es eine geheime Handschlag unter guten Hackern gibt, ist es, wenn sie sich gut genug kennen, um Meinungen auszudrücken, die sie von der allgemeinen Öffentlichkeit zu Tode steinigen würden. Und ich kann sehen, warum politische Unkorrektheit eine nützliche Eigenschaft in der Programmierung wäre. Programme sind sehr komplex und, zumindest in den Händen guter Programmierer, sehr flüssig. In solchen Situationen ist es hilfreich, eine Gewohnheit zu haben, Annahmen in Frage zu stellen.
Kannst du diese Eigenschaften kultivieren? Ich weiß es nicht. Aber du kannst sie zumindest nicht unterdrücken. Hier ist also mein bester Versuch für ein Rezept. Wenn es möglich ist, sich selbst zu einem großartigen Hacker zu machen, könnte der Weg, dies zu tun, darin bestehen, den folgenden Deal mit dir selbst zu machen: Du musst nie an langweiligen Projekten arbeiten (es sei denn, deine Familie würde sonst verhungern), und im Gegenzug wirst du dir nie erlauben, einen schlampigen Job zu machen. Alle großartigen Hacker, die ich kenne, scheinen diesen Deal gemacht zu haben, obwohl vielleicht keiner von ihnen eine Wahl in der Angelegenheit hatte.
Anmerkungen
[1] Um fair zu sein, muss ich sagen, dass IBM anständige Hardware herstellt. Ich habe dies auf einem IBM-Laptop geschrieben.
[2] Sie stellten sich tatsächlich als zum Scheitern verurteilt heraus. Sie schlossen ein paar Monate später.
[3] Ich denke, das ist es, was die Leute meinen, wenn sie über den "Sinn des Lebens" sprechen. Auf den ersten Blick scheint das eine seltsame Idee zu sein. Das Leben ist kein Ausdruck; wie könnte es Bedeutung haben? Aber es kann eine Qualität haben, die sich sehr nach Bedeutung anfühlt. In einem Projekt wie einem Compiler musst du viele Probleme lösen, aber die Probleme fallen alle in ein Muster, wie in einem Signal. Während die Probleme, die du lösen musst, zufällig sind, erscheinen sie wie Rauschen.
[4] Einstein arbeitete einmal daran, Kühlschränke zu entwerfen. (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 denke nicht, dass es die Veröffentlichung ist, die die besten Hacker dazu bringt, in Forschungsabteilungen arbeiten zu wollen. Ich denke, es liegt hauptsächlich daran, dass sie nicht drei Stunden mit einem Produktmanager über Probleme bei der Integration der koreanischen Version von Word 13.27 mit der sprechenden Büroklammer sprechen müssen.
[6] Etwas Ähnliches geschieht seit langem in der Bauindustrie. Als du vor ein paar hundert Jahren ein Haus bauen ließest, bauten die örtlichen Bauunternehmer alles darin. Aber zunehmend besteht die Aufgabe der Bauunternehmer darin, Komponenten zusammenzustellen, die von jemand anderem entworfen und hergestellt wurden. Dies hat, wie die Ankunft des Desktop-Publishings, den Menschen die Freiheit gegeben, auf katastrophale Weise zu experimentieren, aber es ist sicherlich effizienter.
[7] Google ist Microsoft viel gefährlicher als Netscape es war. Wahrscheinlich gefährlicher als jedes andere Unternehmen jemals war. Nicht zuletzt, weil sie entschlossen sind, zu kämpfen. Auf ihrer Jobliste sagen sie, dass einer ihrer "Kernwerte" ist: "Sei nicht böse." Von einem Unternehmen, das Sojaöl oder Bergbaugeräte verkauft, wäre eine solche Aussage lediglich exzentrisch. Aber ich denke, wir alle in der Computerwelt erkennen, gegen wen das eine Kriegserklärung ist.
Danke an Jessica Livingston, Robert Morris und Sarah Harlin für das Lesen früherer Versionen dieses Vortrags.