Die ideale Gruppe von Fachleuten zur Überprüfung dieses Themas wäre eine Kombination aus Software-Architekten, Projektmanagern, Agile Coaches und CTOs (Chief Technology Officers). Diese Personen verfügen über das notwendige Fachwissen in Bezug auf Software-Entwicklungsmethoden, Projektmanagement-Herausforderungen, Organisationsstrukturen und technologische Entscheidungen, um die Inhalte kritisch zu bewerten und zu ergänzen.
Abstract
Gigi, alias Cyrovolt, erörtert auf der MRMCD-Konferenz die Bedeutung und die Realität agiler Softwareentwicklung aus zehnjähriger Praxiserfahrung. Der Vortrag skizziert die historische Entwicklung der Softwareentwicklung, beginnend in den 1950er Jahren mit iterativen Ansätzen in der Raketenwissenschaft, über die "Softwarekrise" (ab 1968) und das Scheitern des Wasserfallmodells. Anhand des Chaos Reports wird die anhaltend hohe Misserfolgsquote von Softwareprojekten aufgezeigt. Das 2001 verfasste Agile Manifest mit seinen vier Kernprinzipien (Individuen und Interaktionen, funktionierende Software, Kundenzusammenarbeit, Reagieren auf Veränderungen) wird vorgestellt. Gigi teilt persönliche Erfahrungen aus verschiedenen Unternehmen und beleuchtet die Notwendigkeit ständiger Kommunikation, Anpassungsfähigkeit und Vertrauen innerhalb der Teams, um Unsicherheiten zu managen und Missverständnisse zu überwinden, selbst in agilen Umgebungen, die oft noch mit traditionellen Denkmustern zu kämpfen haben.
Wichtigste Punkte & Zeitstempel
0:00 Einführung in Agile: Gigi (Cyrovolt) spricht über agile Softwareentwicklung, persönliche Erfahrungen als Software-Ingenieur und die wahre Bedeutung von "agil" auf der MRMCD-Konferenz.
0:41 Start der Softwareentwicklung: Die Diskussion über Software begann bereits in den 1950er Jahren, mit frühen Beispielen iterativer Prozesse in der Raketenwissenschaft.
3:21 Das Wasserfallmodell: Das Modell der Softwareentwicklung, das eine umfassende Vorabplanung vorsieht, führte oft zu Misserfolgen, da Softwareprojekte selten linear verlaufen.
3:49 Softwarekrise (1968): Die "Softwarekrise" wurde 1968 in Deutschland auf einem NATO-Treffen diskutiert und setzte sich durch die 1970er, 80er und 90er Jahre fort, da effektive Entwicklungsmethoden fehlten.
5:16 Chaos Report: Eine wiederkehrende Studie zeigt, dass auch 2015 nur etwa ein Drittel der Softwareprojekte erfolgreich war, etwa die Hälfte herausfordernd und ein Fünftel Fehlschläge waren; statistisch scheitern zwei von drei Projekten.
6:47 Agile Manifest: 2001 (vor 25 Jahren, Stand 2026) von "organisatorischen Anarchisten" in einem Skigebiet verfasst, wurde das Manifest in 68 Sprachen übersetzt.
7:50 Kernprinzipien von Agile: Die vier Hauptwerte des Manifests betonen Individuen und Interaktionen über Prozesse/Werkzeuge, funktionierende Software über umfassende Dokumentation, Kundenzusammenarbeit über Vertragsverhandlungen und Reagieren auf Veränderungen über das Befolgen eines Plans.
13:45 Kommunikationsprobleme: Die anfängliche visuelle Darstellung eines Projekts durch verschiedene Stakeholder (z.B. "Schaukel am Baum"-Analogie) zeigt, dass unterschiedliche Interpretationen und der "verlustbehaftete" Charakter von Wörtern häufig zu Missverständnissen führen.
15:26 Erfahrungen des Sprechers: Gigi arbeitete in sechs Unternehmen, die alle ihr Bestes gaben, aber oft mit Unsicherheiten konfrontiert waren, die das Lernen neuer Technologien oder die Einarbeitung in unbekannte Bereiche erforderten.
17:27 Methodenvielfalt in jungen Unternehmen: Eine frühere Anstellung ermöglichte das Ausprobieren verschiedener Methoden wie Kanban und Scrum.
18:31 Startup-Erfahrung: Eine gut organisierte Startup-Erfahrung, die Sprints und aufregende Technologien wie JavaScript nutzte, endete dennoch mit der Akquisition des Unternehmens, was die Unvorhersehbarkeit des Lebens unterstreicht.
21:55 "Schwimmen lernen" (Gantt-Diagramm): Eine frühere Firma präsentierte einen Plan in Form eines Gantt-Diagramms, das Wasserfall-Elemente mit "agiler Entwicklung" am Ende kombinierte, was bildlich das "Ertrinken" der Entwickler implizierte.
22:38 Scrum Master und Zusammenarbeit: Die Zusammenarbeit wurde durch einen dedizierten Scrum Master verbessert, der betonte, dass der Schlüssel zum Erfolg ständige Kommunikation ist, z.B. durch Daily Standups.
24:19 Unsicherheitsmanagement und Vertrauen: Manager müssen ihren Teams Raum zum Erkunden geben und ihnen vertrauen, um Unsicherheiten effektiv zu managen und die Kommunikation zu fördern.
26:27 Negative Erfahrung und Entlassung: Eine Konfrontation mit einem Vorgesetzten über "nicht agile" Praktiken führte zu einem Reputationsverlust, Projektstillstand und schließlich zur Entlassung des Sprechers im letzten Jahr.
28:09 Jobsuche und neue Rolle: Nach über einem halben Jahr Jobsuche fand Gigi im Dezember letzten Jahres eine Stelle in einem kleinen Team, das vertrauensvoll einen neuen Plan entwickelt und dabei Sprachen wie Rust verwendet.
Glossar
Agile Softwareentwicklung: Ein iterativer und inkrementeller Ansatz zur Softwareentwicklung, der sich auf Anpassungsfähigkeit an Veränderungen, Kundenzusammenarbeit und funktionsfähige Software konzentriert, anstatt sich strikt an einen starren Plan zu halten.
Agile Manifest: Ein 2001 verfasstes Dokument, das die Werte und Prinzipien der agilen Softwareentwicklung definiert. Es priorisiert Individuen und Interaktionen, funktionierende Software, Kundenzusammenarbeit und das Reagieren auf Veränderungen.
Chaos Report: Eine von der Standish Group erstellte jährliche Studie, die den Erfolg und Misserfolg von IT-Projekten weltweit analysiert und statistische Daten über Projektstatus (erfolgreich, herausfordernd, gescheitert) liefert.
Daily Standup: Ein kurzes tägliches Meeting in agilen Teams (insbesondere Scrum), bei dem jedes Teammitglied kurz berichtet, was es getan hat, was es tun wird und welche Hindernisse es gibt, um die Zusammenarbeit und den Fortschritt zu fördern.
Deno: Eine sichere JavaScript- und TypeScript-Laufzeitumgebung, die als Nachfolger von Node.js entwickelt wurde und erweiterte Sicherheits- und Entwicklererfahrungen bietet.
Eingebettete Systeme (Embedded Systems): Spezialisierte Computersysteme, die in größere Geräte oder Systeme integriert sind und oft Echtzeitfunktionen für bestimmte Aufgaben erfüllen (z.B. in IoT-Geräten, Industriesteuerungen).
Firmware: Eine spezielle Art von Software, die in Hardwaregeräten gespeichert ist und deren grundlegende Funktionen steuert. Sie ist oft für den Endbenutzer nicht direkt zugänglich oder änderbar.
Gantt-Diagramm: Ein Balkendiagramm, das zur visuellen Darstellung des Zeitplans eines Projekts verwendet wird und Aufgaben, deren Dauer und Abhängigkeiten über die Zeitachse hinweg zeigt.
Iterativer Prozess: Ein Entwicklungsprozess, bei dem ein Projekt in kleinere Zyklen unterteilt wird, wobei jeder Zyklus eine verbesserte Version des Produkts liefert, die auf Feedback und neuen Erkenntnissen basiert.
JavaScript: Eine weit verbreitete Skriptsprache, die hauptsächlich für die Entwicklung interaktiver Webseiten verwendet wird, aber auch serverseitig (mit Node.js/Deno) und in eingebetteten Systemen zum Einsatz kommt.
Kanban: Eine agile Methode, die einen visuellen Workflow (oft mit einem Board) verwendet, um Aufgaben zu verwalten und den Arbeitsfluss zu optimieren, indem die Anzahl der gleichzeitig in Bearbeitung befindlichen Aufgaben begrenzt wird.
Node.js: Eine Open-Source-JavaScript-Laufzeitumgebung, die die Ausführung von JavaScript-Code außerhalb eines Webbrowsers ermöglicht, typischerweise für serverseitige Anwendungen und Netzwerkanwendungen.
Rust (Programmiersprache): Eine moderne, speichersichere und performante Systemprogrammiersprache, die sich auf Sicherheit, Geschwindigkeit und Parallelität konzentriert und oft als Alternative zu C++ eingesetzt wird.
Scrum: Ein agiles Framework für das Management und die Durchführung komplexer Projekte. Es zeichnet sich durch die Arbeit in kurzen, festen Zyklen (Sprints), tägliche Standups und Rollen wie Scrum Master und Product Owner aus.
Scrum Master: Eine Rolle im Scrum-Framework, die dafür verantwortlich ist, dass das Scrum-Team die Scrum-Prinzipien und -Praktiken versteht und anwendet und Hindernisse für den Fortschritt des Teams beseitigt.
Softwarekrise: Ein Begriff, der in den späten 1960er Jahren geprägt wurde, um die Schwierigkeiten bei der Entwicklung und Wartung großer, komplexer Softwaresysteme zu beschreiben, die oft zu Überschreitungen von Kosten und Zeit führten.
Sprint: Ein fester Zeitrahmen (typischerweise 1-4 Wochen) innerhalb des Scrum-Frameworks, in dem ein Team eine bestimmte Menge an Arbeit erledigt, um ein potenziell lieferbares Produktinkrement zu erstellen.
Stakeholder: Alle Personen, Gruppen oder Organisationen, die von einem Projekt betroffen sind oder ein Interesse am Erfolg oder Misserfolg eines Projekts haben (z.B. Kunden, Management, Teammitglieder).
Wasserfallmodell: Ein lineares, sequenzielles Modell für das Projektmanagement in der Softwareentwicklung, bei dem jede Phase (z.B. Anforderungsanalyse, Design, Implementierung, Test) abgeschlossen sein muss, bevor die nächste beginnt.