Agil und ingenieurgemäß ist kein Widerspruch
Agile Software-Entwicklung ist weithin anerkannt als besonders effektive und bürokratiearme Vorgehensweise. Erste Ergebnisse liegen schnell vor und die Weiterentwicklung erfolgt evolutionär. Indem der Anwender die Entwicklungsergebnisse häufig sieht und testet, kann zeitnah fest gestellt werden, ob das Projekt auf dem rechten Pfad ist und die richtigen Prioritäten gesetzt sind. Zugleich wird verhindert, dass in großem Stil "ins Blaue hinein" geplant wird und Ordner gefüllt werden, ehe bestimmte Annahmen überhaupt in der Realität verifiziert sind.
Bei uns ist agile Entwicklung allerdings kein Arbeiten auf Zuruf. Die Beherrschung komplexer Systeme setzt ingenieurgemäße Arbeit mit adäquaten Zwischenergebnissen aus unterschiedlichen Perspektiven voraus. Nach jedem Meilenstein (bzw. zu Beginn jedes "Sprints") werden neue Anforderungen zunächst in Spezifikation und Systementwurf integriert. Anschauliche Diagramme fassen die Diskussionsergebnisse zwischen Anwendern und Realisierern. Schon vor der Realisierung können Lösungsalternativen durch verschiedene Fachleute verglichen und konzeptionelle Unzulänglichkeiten entdeckt werden. Indem Anforderungen nicht nur "verbaut" werden, sondern explizit vorliegen, ist sicher gestellt, dass die nächste Version dem Ziel näher kommt und nicht nur anders ist. So lässt sich ingenieurgemäßes Arbeiten perfekt mit agilen Prinzipien vereinbaren.
Grundlage der Diskussion und Planung ist neben dem Produkt selber also auch die Spezifikation mit anschaulichen Darstellungen der Abläufe und des Systemaufbaus sowie der Liste der Anforderungen.