Permalink

0

Der 100-fache Entwickler

Über die Produktivität von Menschen lässt sich nur schwer schreiben, denn es sind prinzipiell sehr viele Faktoren einzubeziehen und zu bewerten, schliesslich sind wir Menschen und keine Maschinen. Selbst einem Fabrikarbeiter am Fliessband kann man zwar vorrechnen, wie viele Schritte oder Werkstücke er pro Zeiteinheit erledigt, aber das lässt natürlich individuelle Faktoren vollkommen ausser Acht: Neben der körperlichen Konsistenz besteht das Leben eben nicht nur aus Arbeit oder eben aus dieser einen Arbeit: Familie, soziales Engagement in Vereinen oder zwangsweise eine weitere Arbeitsstelle reduzieren die Leistungsfähigkeit.

Zu Beginn der Industrialisierung hat man ohne Gewissen Mitarbeiter ausgebeutet, ja verheizt. Arbeitsunfälle, arbeitsbedingte Krankheiten und Todesfälle und arbeitsbedingte Armut — man zwang die Mitarbeiter zum Umzug, aus bäuerlichen Selbstversorgern wurden Arbeiter die Wohnung und Lebensmittel von ihrem Lohn zahlen mussten.

Erst mit der Zeit und vereinzelt erkannten Industrielle, dass man hier nicht beliebig und gewissenlos handeln kann, sondern seine Mitarbeiter und die davon abhängigen Familien ordentlich behandeln muss. Daraus entstanden Mitarbeiterwohnungen, Sozialwerke, Sportvereine und ganze Mikrokosmen bzw Stadtteile.

Seit 1945 hat sich der Anteil der körperlich arbeitenden Bevölkerung aber massiv reduziert. Personalintensive Industrien brachen weg, beispielsweise Bergbau- und Textilindustrien. Aus Rüstungs- und Schwerindustrie entstand die Automobilindustrie, die aber laufend durch Automatisierung, just-in-time-Produktion, Komponentenbauweise etc. den Personalbedarf drastisch senken konnte.

Deutschland ist ein Land der Schreibtischtäter geworden. Und auch hier unterscheidet sich die Arbeit noch immer sehr stark: Es gibt normale Jobs, deren Schwierigkeitsgrad nicht besonders ausgeprägt ist und deren Aufgabe klar abgesteckt ist. Beispielsweise ein Sachbearbeiter mit klarem Themengebiet. Hier gilt es eine Anzahl von Geschäftsvorfällen abzuarbeiten, 80-90% der Arbeit dürfte aus Routine bestehen und dementsprechend gut messbar ist die Leistung der Mitarbeiter.

Dann gibt es aber den ganzen Bereich Forschung und Entwicklung, Kreativität, “Kopfarbeiter”. Hierzu zählen auch Software-Entwickler, sofern sie mehr tun, als typische “Wartungsprogrammierung”. Also komplexe Systementwicklung (“digitaler Maschinenbau”), Evaluierung und Entwicklung mit sich laufend ändernder Zielvorgabe und ungewissem Ausgang.

Steve Jobs und andere US-IT-Gurus sprechen in diesem Zusammenhang oft von so genannten “A” und “A+”-Playern. Und einer Bozo-Explosion als Feind dieser Kultur. Kurz gesagt: Gute Leute versuchen für ihre Abteilung auch die besten Mitarbeiter zu finden, während mittelmäßige Leute zur Absicherung der eigenen Machtposition lieber eine große Anzahl an noch schlechteren Mitarbeitern einstellen wollen. Das ganze setzt sich dann immer weiter fort und am Ende steht ein großer Haufen voller unfähiger Leute, der sich selbst im Weg steht und nicht über die Fähigkeiten verfügt, die Abteilung, den Betrieb und auch sich selbst nachhaltig zu beschäftigen und zu finanzieren.

Weiterhin ist oft die Rede von den 10x oder 100x-Entwicklern. Personen, die im Stande sind 10fach, 100fach oder mehr Leistung als vergleichbare Entwickler abzuliefern. Was genau bedeutet das? Niemand kann dauerhaft mehr als 8-10 Stunden pro Tag arbeiten, eine stupide Skalierung über einen höheren Arbeitseinsatz bringt hier also maximal eine kurzfristige Steigerung und endet zwangsläufig in einem Burn-Out oder sozialer Isolation.

Weiterhin kann ein Entwickler auch nur so viel Leistung bringen, wie das Unternehmen, für das er tätig ist, zulässt: Ist das Management irrational, die Projektplanung amateurhaft oder schlicht unfähig, ist das Arbeitsumfeld unterdurchschnittlich (lautes Großraumbüro, schlechte Hardware) dann kann man auch keine hohe Leistung erwarten.

Aber wie kann man jetzt als Entwickler so viel produktiver sein, als vergleichbare Kollegen? Intelligenz? Ausbildung? Motivation? Von allem etwas:

1. Intelligenz

Ich gehe fest davon aus, dass man in 99% der üblichen geschäftlichen IT-Jobs nicht über eine gravierend überdurchschnittliche Intelligenz verfügen muss um sehr gute Leistung zu erbringen. Hier geht es nicht um Mathegenies oder einem Club voller IQ 150-Menschen. Schliesslich geht es um die erfolgreiche Produktentwicklung, also um eine marktreife Lösung. Das sieht anders aus für Unternehmen die wirkliche Innovation betreiben, also beispielsweise Chipdesign, Verschlüsselungsalgorhythmen oder massiv-skalierende Systeme.

2. Ausbildung

Gefühlt ist die Ausbildung in Deutschland schlecht: Sowohl schulischer/dualer Ausbildungsweg als auch der Weg über Hochschulen vermittelt sicher viele Grundlagen von IT-Systemen und der Entwicklung. Aus meiner Erfahrung und Recherche kann ich jedoch behaupten, dass die allermeisten Absolventen schon weit vor ihrer Ausbildung programmiert haben und dementsprechend nicht erst in der Schule dies gelernt haben. Demgegenüber sind Personen, die erst an der Uni Programmiererfahrung sammeln konnte durchweg sehr limitiert und beschränkt auf dort gelehrte Dinge. Dies betrifft nicht nur Programmiersprachen und Architekturen sondern auch Vorgehensweise zur Planung und Projektumsetzung.

3. Motivation

Was motiviert Menschen dazu, etwas zu tun? Geld. Spass. Neugier. Der finanzielle Aspekt wird leider tabuisiert, aber genau hier fängt das Problem an: Wenn ich schlecht entlohnt werde, warum soll ich dann noch motiviert sein? Entweder ich betreibe Jobhopping und verlasse alsbald das Unternehmen oder ich finde mich damit ab und “skaliere nach unten”. Dienst nach Vorschrift, innerliche Kündigung etc.

 

Aber selbst ein hochintelligenter, top-ausgebildeter und hochmotivierter Absolvent wird nicht ein 10x oder 100x Entwickler sein. Trotzdem arbeiten sich gerade Frischlinge, unbezahlt, 60-70 Stunden die Woche ab. Hängen am Telefon, sind “geschäftig”, wollen die bestmögliche Lösung für alle zukünftigen Probleme schaffen…

Und genau hier liegt das Problem!

Die schnellste Umsetzung, die höchste Zukunftsfähigkeit und die geringste Fehlerzahl erreiche ich nur durch eines: Bewusste Unterlassung! Dinge nicht umsetzen, die nicht gefordert sind. Dinge nicht zu tun, die man glaubt, anstatt zu wissen.

Mit Risiken und potentiellen Änderungen und Anforderungsänderungen zu planen, ist Pflicht — aber nicht bereits der Bau diverse Infrastrukturen “auf Verdacht”. Gerade Entwicklern geht sehr oft “der Gaul durch”, also man glaubt das Problem in seiner Gänze verstanden zu haben und setzt in dieser Allmachtsphantasie zum größtmöglichen Wurf an: Neueste Frameworks, neueste Sprachen, je mehr Risiko, desto besser. Man will es sich beweisen — und allen anderen Leuten auch.

“Programmierer wollen programmieren” heisst es oft. Auch weil die Wertschätzung daran gemessen wird. Viele Unternehmen strafen Entwickler ab, wenn sie “zu oft nachfragen” und “nicht das tun was beschlossen wurde”. Trotz über zehn Jahren des “Agile”-Hypes ist dies noch allgegenwärtig. Programmierer sollen programmieren. Punkt.

Ein 10x oder 100x-Entwickler hat meiner Meinung nach folgende Fähigkeiten:

  • hinterfragt jede Anforderung, prüft von sich aus alternative Lösungswege
  • benutzt die chancenreichste aber gleichzeitig auch risikoärmste Technologie
  • ist hochkommunikativ und brainstormed/bespricht länger mit dem Kunden als er programmiert. Technologie kann man automatisieren, Mensch-zu-Mensch-Planung nicht.

 

 

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.