Nein, nicht gleichzeitig. ;-)
Ich habe mich gefragt, warum mir beides so viel Spaß macht. Vielleicht weil beide Aktivitäten so ähnlich sind? Beim Programmieren, wie auch beim Autofahren, kommt es auf schnelles, ehrliches Feedback an. Nur so wird man besser.
Auch Kent Beck hat das Programmieren ja immer mal wieder gern mit dem Autofahren verglichen. Da stellt sich die Frage: Was können Programmierer von Rennfahrern lernen?
Steuerung
Egal ob der Chef in einem Meeting oder der Fahrer in einem Sportwagen, wenn er das Steuer zu schnell herumreißt, führt das zum Verlust der Bodenhaftung. Und mit großer Wahrscheinlichkeit hat das einen teuren Knall zur Folge. Wie gut die Haftung noch ist, spüren erfahrene Chefs / Fahrer beim Lenken. Deshalb: Keine abrupten Änderungen und möglichst ungefiltertes, ehrliches Feedback (kein indirektes Management bzw. keine Servolenkung).
Traktion
Räder haben einen Reibwert und der ist (neben der Gummi-Mischung und dem Profil) auch von Druck und Temperatur abhängig. Er ist aber nicht davon abhängig, ob das Auto gerade beschleunigt/verzögert oder eine Kurve fährt. Wenn man also eine Richtungsänderung macht, muss man den Reibwert auf Längs- und Querbeschleunigung verteilen. Man kann die Geschwindigkeit in einer Kurve nicht mehr so heftig ändern, wie auf einer Gerade. Irgendwie habe ich das Gefühl, das gilt auch für Autos ;-).
Wenn die Reifen / Entwickler in einer Kurve nicht zu hören sind, ist man zu langsam. Wenn sie gleichmäßig vor sich hin schreien, dann ist man schnell. Sobald das Schreien zum Brüllen wird, und auch noch ungleichmäßig, dann ist es zu spät. Man dreht sich schwungvoll ins Aus.
Zero Tolerance
Toyota hat durch Zero-Tolerance die Zuverlässigkeit seiner Fahrzeuge sehr stark erhöht. Das war ein langwieriger Prozess, denn das Wesentliche war, das Qualitätsbewusstsein in den Mitarbeitern zu verankern. In der IT machen wir Vergleichbares: Continuous Build, Unit-Tests, Metriken, ... und Coaching. ;-)
Coaching
Fahrlehrer für Sportwagenfahrer (Instruktoren, Coaches) gibt es natürlich auch. Sie bieten dem ambitionierten Fahrer persönliches Feedback, was sich aus Ihrer langjährigen Erfahrung speist. Der Fahrer lernt, die Ideallinie zu finden, die richtigen Bremspunkte zu setzen, etc. Gute Instuktoren gehen aber weiter: So sind z.B. die Konzentration aufs Wesentliche und natürlich das Erkennen des Wesentlichen wichtige Aspekte. Wer die Tipps der "alten Hasen" befolgt, wird besser. Wichtig ist dabei sowohl die Ambition zur Verbesserung, als auch die Bereitschaft, Feedback anzunehmen. Noch eine Analogie zum Programmieren!
Brute Force vs. Agility
Ford GT (500 PS auf 1,5 Tonnen) vs. Lotus Elise (192 PS auf 835 kg)
Während auf den Geraden die 500 PS des GT einen satten Vortrieb schaffen, verlangen seine 1,5 Tonnen ein früheres Bremsen und der Wagen zeigt ein ganz anderes Kurvenfahren, als der kleine, wendige, leichte Lotus. Nennen wir es Agilität. ;-) Und dass Softwareentwicklung selten eine Autobahn ist, aber häufig eine sehr kurvige, enge Bergstrasse, sollte sich herumgesprochen haben.
...
Wer findet noch mehr dieser Analogien?