In Italien ist jeder ein Experte für Espresso – alle wissen: „Per un buon caffè, ci vogliono cinque ‚M‘: miscela, macinatura, macchina, mano e mente.“ (Für einen guten Espresso braucht man die fünf ‚M‘: Mischung, Mahlung, Maschine, Hand und Geist).
Ist das in der Software-Entwicklung genauso? Die OOP hat sich ja in diesem Jahr auch so ein Motto auf die Fahne geschrieben: people, process, technology. Prüfen wir doch mal: people = mano e mente, process = macinatura, technology = macchina – nanu, wo bleibt miscela, die Mischung, der Rohstoff, aus dem die Software entstehen kann?
Alistair Cockburn hat diese Frage 2006 in einem Artikel beantwortet: „Software engineering … is remarkably like manufacturing, once we shift to view the unvalidated decision as the unit of internal inventory.“ Die Mischung besteht also aus den bisher unvalidierten Entscheidungen, die in der Mühle und der Maschine immer weiter verarbeitet werden, bis der Benutzer seine neue Software in Händen hält.
Beispiele für solche unvalidierten Entscheidungen sind:
- Jede Anforderung ist eine Entscheidung, die auf einem bestimmten Geschäftsklima basiert. Wenn sich das Klima ändert, könnte die Entscheidung falsch werden.
- Eine Architektur ist eine Entscheidung, die auf Technologie und Business basiert. Wenn sich die Technologie verändert bevor die Software genügend Wert für das Business eingespielt hat, ist die Entscheidung verschwendet.
- Jede Zeile Code ist eine Entscheidung, basierend auf Anforderungen, Technologie und Ästhetik. Sollte eines davon obsolet werden bevor die Software genügend Geld für die Firma verdient hat, dann war auch das Verschwendung.
Halten wir also am besten die Zyklen kurz und schlank und erzeugen nur so wenig unvalidierte Entscheidungen wie möglich. Über Anforderungen rasch entscheiden, Entwurf und Programmierung zeitnah durchführen, dem Benutzer lauffähige Systeme in die Hand geben, die er sofort validieren kann. So bleibt der Kaffee frisch, weil die Bohnen nicht lange liegen.
Ich lade Sie ein, mit mir auf der OOP einen Kaffee zu trinken!