Projector Software GmbH

Illustration Lösungswege

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:

  • Wo kann man sofort mit einer modularen Konstruktion beginnen, wofür hingegen erstellt man erst einmal besser nur einen Prototyp, um wichtige Erkenntnisse zu gewinnen?
  • Für welche Teilbereiche kann man direkt monolithisch konstruieren, ohne dass die Gefahr besteht, später wieder von vorn anfangen zu müssen?
  • Wie geht man generell mit denjenigen Anforderungen um, die noch nicht ausreichend geklärt sind, einfach weil zu Projektbeginn noch nicht alle wichtigen Informationen verfügbar waren?

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

Illustration 'Alles mögliche versucht' Die vorliegende Illustration soll Folgendes ausdrücken:

  • Um bei der Suche Aufwand zu sparen, hat man ein standardisiertes Verfahren angewendet, das sich leicht an beliebigen Stellen wiederholen lässt.
  • Obwohl man an allen Stellen, wo es sinnvoll schien, Probebohrungen durchgeführt hat, ist man nie auf Wasser gestoßen.
  • Schlussendlich hat man den Standort aufgegeben, weil es als erwiesen schien, dass es dort kein Wasser gibt – immerhin hat man ja "alles versucht".

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

Illustration 'Gründlich gearbeitet' Mit dieser Illustration soll Folgendes dargestellt werden:

  • Der vorhandene Baum wurde als untrügliches Zeichen dafür gewertet, dass es hier auch Wasser geben muss. Dementsprechend hat man sich nicht mit Probebohrungen aufgehalten, sondern sofort einen endgültigen Bohrturm aufgestellt und konsequent in die Tiefe gebohrt.
  • Nachdem alle verfügbaren Ressourcen verbraucht waren, musste man den Standort aufgeben, weil man trotz größtmöglicher Bohrtiefe nicht auf Wasser gestoßen ist.

Aus einem Standpunkt vollständiger Information heraus lässt sich das Scheitern wie folgt bewerten:

  • Auf die Überprüfung wichtiger Grundannahmen sollte nie verzichtet werden.
  • Im Vorgehen sollten Notfallszenarien eingeplant sein, damit man selbst dann noch reagieren kann, wenn eine eigentlich als sicher eingeschätzte Strategie unerwartet scheitert.

Großer Einsatz

Illustration 'Großer Einsatz' Das letzte Beispiel soll einen erfolgreichen und trotzdem problematischen Fall der Suche nach Wasser illustrieren:

  • Ausgegangen ist man von einem erprobten Verfahren (vertikale Bohrung), ohne zu überprüfen, ob sich dieses für die aktuellen Bedingungen am besten eignet.
  • Als man bemerkt hat, dass das Ziel so nicht zu erreichen ist, hat man die Richtung geändert, um die erste Bohrung noch zu retten. Dabei hat man übersehen, dass man schon zu tief lag.
  • Schließlich befand man sich ganz nah am Ziel und es fehlte nur noch eine kurze vertikale Bohrung nach oben. Obwohl genau dieses letzte Stück extreme technische Schwierigkeiten bereitete, wurde es schließlich realisiert.

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:

  • Entscheidungen über das Vorgehen bei der Suche nach Lösungen basieren meist auf unvollständiger Information und lassen daher viel Raum für persönliche Interpretationen.
  • Sobald man in einem Projekt zumindest für einen Teilbereich Neuland betreten muss, wird man typischerweise versuchen, Lösungswege in Anlehnung an schon gemachte positive Erfahrungen zu wählen. Die verfügbare Auswahl ist hierbei naturgemäß davon abhängig, welche Erfahrungen im Projektteam bereits vorhanden sind.
  • Last not least übt das organisatorische Umfeld des Projekts direkt oder indirekt erheblichen Einfluss darauf aus, welche Lösungswege überhaupt in die engere Auswahl kommen.

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:

  • die Fähigkeit, sinnvoll reduzierte Prototypen schnell zu realisieren, auch für komplexe Problemstellungen;
  • hohe Qualität der prototypischen Implementation, damit später wesentliche Elemente mit wenig Aufwand in die endgültige Konstruktion überführt werden können;
  • gutes Gespür für den Umgang mit unterschiedlichen Technologien, damit passend zum Projektumfeld und Anwendungsfall die jeweils am besten geeignete ausgewählt wird.