Agile Entwicklung im historischen Verlauf

(c) Torsten Gfesser
SCRUM ist eine der aktuell am weitesten verbreiteten Methoden agilen Arbeitens. Im Rahmen seiner Masterarbeit an der Technischen Universität Berlin hat Torsten Gfesser den historischen Verlauf der agilen Software-Entwicklung analysiert. Wie es dazu kam, dass agiles Arbeiten und speziell SCRUM heutzutage eine so große Rolle spielt, wird in diesem Blogbeitrag zusammengefasst.

Für die Software-Entwicklung können verschiedene Hauptstränge unterschieden werden, die in der obigen Abbildung in ihrem historischen Verlauf dargestellt sind. Was verbirgt sich jeweils hinter den Begrifflichkeiten und wie hängt dies mit agiler Entwicklung zusammen?

Bekanntester Vertreter für ein sequenzielles Vorgehensmodell ist das Wasserfallmodell. Die sequenziellen Ansätze nutzen die Vorhersehbarkeit von einfachen IT-Projekten, sodass eine detaillierte Planung der Software-Entwicklung ermöglicht wird. Dadurch können einfache und vorhersehbare IT-Projekte umgesetzt werden, bei denen die Anforderungen bekannt und klar definiert sind. Änderungen oder Anpassungen in der laufenden Entwicklung sind nicht vorgesehen.

Mit der inkrementellen Entwicklung wird ab 1957 paralleles Arbeiten systematisch eingeführt. Voraussetzung ist eine flexible Softwarearchitektur, sodass Teilergebnisse modular integrierbar sind. Um ein Projekt erfolgreich abzuschließen, müssen Anforderungen weitgehend bekannt sein, wobei kleine Anforderungsänderungen auch noch im Prozess berücksichtigt werden können.

Als Software-Krise wird um 1965 die Phase bezeichnet, in der der Erfolg von IT-Projekte aufgrund stark steigender Komplexität und unbekannter Anforderungen massiv einknickte. Traditionelle Ansätze erwiesen sich als zu unflexibel, sodass als Antwort die iterative Entwicklung Einzug hielt.

Die iterative Entwicklung meint eine schrittweise Entwicklung in mehreren kurzen aufeinanderfolgenden Entwicklungszyklen. Dabei ist es wichtig, dass in jedem Zyklus eine lauffähige Software entwickelt wird. Nach jeder Iteration (Wiederholung) ist es möglich, den aktuellen Zwischenstand zu verifizieren, Feedback einzuholen und im weiteren Verlauf zu berücksichtigen. Diese erste Vorstufe von agiler Entwicklung ermöglichte erstmals die erfolgreiche Bearbeitung von komplexen IT-Projekten.

Später wurden iterative mit inkrementellen Ansätzen kombiniert. Dies ermöglicht die parallele Entwicklung mehrerer funktionaler Teile (Inkremente) einer komplexeren, modular aufgeteilten Software, die in späteren Schleifen zur Gesamtlösung integriert werden.

Nach 1976 setzte sich der Trend zur stärkeren Einbindung von Kunden sowie zur Analyse und bewussten Optimierung des Entwicklungsprozesses fort. So fokussiert die evolutionäre Entwicklung darauf, die Frequenz von Software Releases mit den Kunden gleichmäßig zu takten. Ziel ist eine verbesserte, enge Kommunikation mit dem Kunden, was in den Folgejahren nochmals erheblich zum erfolgreichen Abschluss vieler IT-Projekte beitrug.

Wie die obige Abbildung aufzeigt, existiert agile Softwareentwicklung also bereits sehr lange. Bekannte Institutionen, wie NASA und IBM, haben nach heutigem Verständnis bereits zwischen 1950 und 1970 agil gearbeitet. SCRUM, wie wir es heutzutage kennen, vereint die Vorteile von der iterativen und inkrementellen Entwicklung. Außerdem werden Menschen, sowohl Kunden und Endnutzer, aber auch Mitarbeitende und Beteiligte, in den Mittelpunkt der Entwicklung gesetzt. Wichtiges Kennzeichen agiler Entwicklung sind nicht zwangsläufig die technischen Abläufe oder die jeweiligen Elemente bzw. Tools, die eingesetzt werden, sondern die Art und Weise, wie Agilität in Unternehmen gelebt wird: “What is new about agile methods is not  the  practices  they  use,  but  their  recognition  of  people  as  the primary   drivers   of   project   success,   coupled   with   an   intense   focus   on effectiveness and maneuverability" (Highsmith und Cockburn, 2001, S. 122).


29.01.19

 

Antonia Föhl
Sezen Akman
Dr. Michael Minge
Katharina Jungnickel