Theorie und Praxis
Ausgehend von unseren Überlegungen zum Thema Design sollte es eigentlich kein Problem darstellen,
auch ein komplexes Entwicklungsprojekt erfolgreich und zukunftssicher abzuwickeln:
Auf der Basis von Prototypen klärt
man zuerst alle offenen Punkte und kann anschließend modular konstruieren. Fragwürdige
Strukturen
vermeidet man am besten von vorn herein - Bedarf dafür entsteht schon deswegen nicht,
weil man unter "agilem Projektmanagement"
entwickelt und so bei jeder anstehenden Entscheidung alle Optionen offen hat.
In der alltäglichen Praxis besteht jedoch meist die Anforderung, wichtige Projektziele
schon früher und vor allem mit geringeren
Kosten zu erreichen als das beim geschilderten soliden Vorgehen der Fall wäre. Aus
dem verständlichen, gleichzeitig
aber auch riskanten Wunsch heraus, möglichst viele Schritte im Entwicklungsprozess
einzusparen, ergeben sich unter
anderem Fragen der folgenden Art:
Man muss sich dabei vor Augen halten, dass auch ein "agiles Projektmanagement" in
diesen Situationen nicht wirklich
weiterhilft, denn eigentlich sucht man Abkürzungen gegenüber einem soliden Vorgehen.
Nicht selten produziert man erheblichen
Aufwand an unerwarteter Stelle aber erst durch einen missglückten Versuch, woanders
Aufwand einzusparen. Dieses Dilemma scheint
in der menschlichen Kulturgeschichte wohlbekannt zu sein, zumindest ist dazu aus der
Zen-Philosophie das Sprichwort überliefert:
"Wenn du es eilig hast, so gehe einen Umweg". Trotzdem wird man als Entwickler in
der Praxis häufig mit folgenden
Situationen konfrontiert:
- Die Faktenlage, auf deren Basis wichtige Design-Entscheidungen gefällt werden müssen,
ist manchmal ziemlich dünn.
- Aufgrund eines sehr engen Zeitplans für das Projekt können später als falsch erkannte
Design-Entscheidungen nicht
mehr korrigiert werden.
-
In früheren Projekten hat man vielleicht schon die Erfahrung gemacht, dass es trotz
des engen Zeitplans besser gewesen wäre,
ein als falsch erkanntes Design so bald wie möglich zu ändern. In der Praxis wird
sich jedoch niemand trauen, für ein
radikales Redesign die Verantwortung zu übernehmen, weil die eigentlich richtige Entscheidung
im Fall des Scheiterns
sofort angreifbar wäre. Deswegen gilt die vorherige Aussage generell: Eine schlechte
Design-Entscheidung ganz zu Beginn
kann nachträglich nicht mehr korrigiert werden.
Suche nach Wasser
Die Herausforderung besteht somit darin, die Projektziele auch dann zu erreichen,
wenn die verfügbare Zeit
sowie die vorhandenen Informationen eigentlich keine solide Basis für langfristige
Design-Entscheidungen bieten. Das
unmittelbar handwerkliche Können reicht unter diesen Bedingungen jedenfalls nicht
aus. Stattdessen stellt sich die
Frage, für welchen der möglichen Lösungswege man sich entscheidet. In den nachfolgenden
Abschnitten haben
wir das abstrakte Problem dieser Suche durch drei exemplarische Szenarien bei einer
fiktiven "Suche nach Wasser"
illustriert und wollen auf Basis von Analogien zeigen, was nach unserer Auffassung
besonders zu beachten ist.
Alles Mögliche versucht
Die vorliegende Illustration soll Folgendes ausdrücken:
Aus einem Standpunkt vollständiger Information heraus lässt sich das Scheitern wie
folgt bewerten:
- Man hat die Begrenztheit des gewählten Vorgehens (geringe Bohrtiefe) offensichtlich
unterschätzt.
- Die fortlaufenden Misserfolge hätten in jedem Fall Zweifel am Vorgehen nach sich ziehen
sollen.
-
Gerade dann, wenn man mit bestimmten Technologien und Vorgehensweisen früher einmal
schon erfolgreich war, steigt die
Bereitschaft, die ehemals bewährten Rezepte ohne erneute Prüfung der Anwendbarkeit
zu übernehmen.
Gründlich gearbeitet
Mit dieser Illustration soll Folgendes dargestellt werden:
Aus einem Standpunkt vollständiger Information heraus lässt sich das Scheitern wie
folgt bewerten:
Großer Einsatz
Das letzte Beispiel soll einen erfolgreichen und trotzdem problematischen Fall der
Suche nach Wasser illustrieren:
Aus einem Standpunkt vollständiger Information heraus lässt sich zu diesem Szenario
Folgendes sagen:
- Schon der erste Ansatz mit einer vertikalen Bohrung war eigentlich falsch, denn offensichtlich
hätte es viel
weniger Aufwand bedeutet, horizontal ganz oben durch den Fuß des Berges zu bohren.
- Selbst nach Erreichen des horizontalen Endpunktes unterhalb des Sees wäre es vermutlich
immer noch günstiger gewesen,
die gesamte bisherige Bohrung aufzugeben und stattdessen am Fuß des Berges in horizontaler
Richtung neu anzusetzen.
- Es wurde offensichtlich unterschätzt, wieviel Aufwand die scheinbar "letzten 5 Prozent"
eines Lösungsweges verursachen können.
-
Verglichen mit den einfachen Alternativen, die möglich gewesen wären, ist die tatsächlich
entstandene
Gesamtkonstruktion technisch unnötig komplex und wird in der Zukunft deshalb noch
hohen Wartungsaufwand nach sich ziehen.
Fazit zur "Suche nach Wasser"
Die Kommentare zu den gezeigten Beispielszenarien basieren auf einem
"Standpunkt vollständiger Information", der in der Realität nie erreichbar sein wird:
- Wenn man wie in den Szenarien dargestellt scheitert, weiß man typischerweise nicht,
wie nahe man einer möglichen
Lösung gekommen ist bzw. in welcher Richtung diese gelegen wäre.
-
Selbst beim letzten Beispiel, in dem das Ziel doch noch erreicht wurde, wird man in
der Praxis kaum ein Projektteam
finden, das den eigenen Erfolg nachträglich relativiert und sich beispielsweise eingesteht:
"Das hätten wir ja viel
einfacher haben können!" Eher wird man auf die außergewöhnliche technische Leistung
verweisen, die es ermöglicht hat,
trotz aller Schwierigkeiten noch die letzte vertikale Bohrung zu realisieren.
Verzerrte Perspektive auf Lösungsansätze
Wenn man in einer realen Projektsituation vorab die Gangbarkeit möglicher Lösungswege
bzw. nachträglich die erzielten
Ergebnisse bewerten möchte, wird man in aller Regel einem breiten Spektrum an unterschiedlichen
Auffassungen begegnen:
Somit entwickelt sich bei der Suche nach Lösungen abhängig von der konkreten Projektsituation
eine starke Eigendynamik,
aus der heraus vorab kaum zu entscheiden ist, ob ein verfolgter Lösungsansatz der
beste ist oder ob er
überhaupt erfolgreich sein wird. Selbst nachträglich lässt sich meist nicht mehr feststellen,
ob ein anderer Weg
bessere Ergebnisse erbracht hätte oder welche anderen Lösungsansätze nicht gescheitert
wären. Unter diesen Umständen
kann sich auch kein Lerneffekt einstellen, der wenigstens in späteren Projektsituationen
zu besseren Ergebnissen führt.
Ausgleich fehlender Informationen
Am besten lässt sich diesem Dilemma nach unserer Auffassung begegnen, indem man diejenigen
Folgen neutralisiert, die
sich aus den zahlreichen fehlenden Informationen zu Projektbeginn ergeben:
- Messen ist generell besser als schätzen. Keine technische Entscheidung, die wesentlichen
Aufwand nach sich zieht,
sollte ohne ausreichende Informationsgrundlage erfolgen. Bezogen auf unsere Beispiele
bedeutet das, die
Probebohrungen so durchdacht wie nötig anzusetzen.
-
Abhängig von der Problemstellung sollte man offen sein für ein breites Spektrum an
Technologien, auf deren Basis man
sich der Lösung nähert. Bezogen auf unser Beispiel des zu teuer erkauften Erfolgs
könnte das beispielsweise heißen, die
erwähnte horizontale Bohrung tatsächlich durchzuführen, oder aber, auf eine Bohrung
ganz zu verzichten und
stattdessen eine Rohrleitung über den Berg zu legen.
Konsequenzen für die Entwicklung
Naturgemäß hat jede gewonnene Gewissheit ihren Preis in Form von Zusatzaufwand, der
zu Beginn anfällt. Dieser
relativiert sich jedoch deutlich aus den folgenden Gründen:
- Den oben verwendeten Begriff "Messung" kann man für die Software-Entwicklung als Serie
von Prototypen verstehen.
Gerade in einer teilweise unbekannten Umgebung sollten aussagefähige Prototypen ein
selbstverständlicher erster Schritt
sein, um späteren Aufwand zu vermeiden, der sich aus unerwarteten Hindernissen ergibt.
-
Wenn man sich auf das Wesentliche einer Fragestellung beschränkt, dann ist es meist
erstaunlich einfach, zu
verlässlichen prototypischen Ergebnissen zu kommen. Insofern stellt es kein wirkliches
Aufwandsproblem dar, mehrere
unterschiedliche Ansätze real zu erproben. Last not least lässt sich aus einem Prototyp
der wesentliche Kern für eine
endgültige modulare Konstruktion übernehmen, und sei es nur in der Form des exakten
Wissens darüber, welche
Anforderungen konkret bestehen.
Aus Sicht der Entwickler besteht somit die Chance, die Ungewissheit bei der Suche
nach Lösungen auf
konstruktiv-handwerklicher Ebene auszugleichen. Um dabei den Zusatzaufwand gering
zu halten, sind folgende
handwerklichen Fertigkeiten besonders relevant: