Die agile Methodik orientiert sich an den Werten und Prinzipien, die im Agilen Manifest für Softwareentwicklung beschrieben sind. Nach diesem Prinzip werden von Softwareentwicklern wie P&T Software Anforderungen, Pläne und Ergebnisse kontinuierlich bewertet. Die Teams haben einen integrierten Prozess, um schnell auf Veränderungen reagieren zu können.
Prinzipien der agilen Softwareentwicklung
Agile Methoden kamen in den frühen 1990er Jahren auf, als die Softwareindustrie explodierte. Traditionelle Softwareentwicklungsansätze erschienen vielen Softwareentwicklern als zu starr und führten zu Überbudgetierung und Verzögerungen. Die führenden Entwickler gaben ein symbolisches Manifest für die agile Softwareentwicklung heraus, das aus diesen Hauptprinzipien bestand:
1. Die Interaktion zwischen Individuum und Team hat Vorrang vor Prozessen und Tools
Softwareentwicklung ist eine menschliche Aktivität und die Qualität der Interaktion zwischen Menschen ist entscheidend. Tools sind ein wichtiger Bestandteil der Softwareentwicklung, aber die Entwicklung großartiger Software hängt viel mehr von der Teamarbeit ab, unabhängig von den Tools, die das Team verwendet.
2. Funktionierende Software geht vor umfassender Dokumentation
Die Dokumentation kann eine großartige Ressource für Benutzer und Mitarbeiter sein. Das Hauptziel der Softwareentwicklung ist jedoch die Entwicklung von Software, die geschäftliche Vorteile bietet, und nicht eine umfangreiche Dokumentation.
3. Zusammenarbeit mit dem Kunden statt Verhandlungen über Verträge
Entwicklungsteams arbeiten eng zusammen und kommunizieren häufig mit den Kunden. Nur wenn die Teams zuhören und Feedback erhalten, werden sie verstehen, was die Interessengruppen wollen.
4. Reagieren auf Veränderungen statt Befolgen eines Plans
Änderungen sind eine Realität in der Softwareentwicklung, eine Realität, die Ihr Softwareprozess widerspiegeln sollte. Ein Projektplan muss flexibel genug sein, um sich zu ändern, wenn die verschiedenen Fälle es erfordern.
Nach diesen Grundsätzen der agilen Softwareentwicklung arbeiten die Entwickler in kurzen, regelmäßigen und kontrollierbaren Iterationen, die Sprints genannt werden. In einem kurzen Sprint (2-4 Wochen) wird ein vollständiger Entwicklungszyklus durchgeführt. Er umfasst Analyse, Design, Kodierung, Tests und Produktfreigabe. Außerdem geben die Entwickler am Ende eines jeden Sprints eine funktionierende Softwarelösung frei. Schließlich ist jeder nächste Sprint eine Erweiterung der bereits funktionierenden Softwarelösung, die die Entwickler näher an eine endgültige Version bringt.
Seitdem sind viele agile Frameworks entstanden, wie Scrum, Kanban und Lean. Viele agile Teams kombinieren Praktiken aus mehreren verschiedenen Frameworks, gewürzt mit Praktiken, die dem Team eigen sind. Agile Methoden werden nicht nur in der Softwarebranche eingesetzt.
VORTEILE VON AGILE
Die agile Methodik eignet sich perfekt für Unternehmen, die die Art und Weise, wie Projekte verwaltet werden, und die Art und Weise, wie sie insgesamt arbeiten, verändern wollen. Zu den Vorteilen der agilen Softwareentwicklung gehören:
Fokus auf die Benutzer
Agile verwendet User Stories mit geschäftsorientierten Akzeptanzkriterien, um die Produktfunktionen zu bestimmen, von denen jede einzelne einen Mehrwert bietet. Außerdem bietet dies die Möglichkeit, die Software nach jedem Sprint zu testen und bei Bedarf Änderungen vorzunehmen.
Schwerpunkt auf dem Geschäftswert
Das Team kann Funktionen bereitstellen, die den größten geschäftlichen Nutzen bringen, wenn es versteht, was für das Geschäft des Kunden am wichtigsten ist.
Verbesserte Qualität
Das Team konzentriert sich auf qualitativ hochwertige Entwicklung, Tests und Zusammenarbeit, indem es das Projekt in überschaubare Einheiten unterteilt. Durch die Erstellung häufiger Builds und die Durchführung von Tests und Überprüfungen während jeder Iteration wird die Qualität verbessert, indem Fehler schnell gefunden und behoben und Abweichungen von den Erwartungen bereits in den frühen Entwicklungsphasen erkannt werden.
Transparenz
Eine einmalige Gelegenheit für Kunden, während des gesamten Projektprozesses beteiligt zu sein und zu überwachen, dass die Entwicklung in jeder Phase des Prozesses übernommen wird: von der Priorisierung der Funktionen bis zur Iterationsplanung; von den Überprüfungssitzungen bis zu häufigen Software-Builds innerhalb neuer Funktionen. Auf der anderen Seite müssen die Kunden verstehen, dass sie im Gegenzug für diesen zusätzlichen Vorteil der Transparenz ein laufendes Projekt sehen.
Frühe und vorhersehbare Lieferung
Ein Service, ein Produkt oder neue Funktionen werden in kürzeren Abständen und mit einem hohen Maß an Vorhersehbarkeit geliefert, indem Sprints mit Timeboxen und festen Zeitplänen verwendet werden. Dies bietet die Möglichkeit, die Software früher als geplant zu testen, wenn ein ausreichender geschäftlicher Nutzen gegeben ist.
Vorhersehbare Kosten und Zeitplan
Die Kosten sind im Hinblick auf den Arbeitsaufwand, den das Team in der Zeit mit festem Zeitplan leistet, begrenzt, da jeder Sprint eine feste Dauer hat. Außerdem kann der Kunde die ungefähren Kosten der einzelnen Funktionen besser nachvollziehen, was wiederum die Entscheidungsfindung über die Priorität der Funktionen und die Bedeutung zusätzlicher Iterationen verbessert.
Erlaubt Veränderungen
Eine Möglichkeit zur kontinuierlichen Verbesserung und Neupriorisierung des gesamten Product Backlogs. Teams nehmen Änderungen vor, um die Effektivität und Effizienz der Arbeit zu verbessern. Neue oder geänderte Elemente des Backlogs können für die nächste Iteration im Rahmen der Änderungsmöglichkeit geplant werden.
Einbeziehung von Stakeholdern
Stakeholder und Entwickler arbeiten jeden Tag eng zusammen. Alle Stakeholder und Teammitglieder müssen motiviert bleiben, um optimale Projektergebnisse zu erzielen. Für die Einbindung der Stakeholder und des Teams bietet Agile vor, während und nach jedem Sprint mehrere Möglichkeiten. Aus diesem Grund gibt es ein hohes Maß an Zusammenarbeit zwischen dem Kunden und dem gesamten Projektteam, was dem Team mehr Möglichkeiten bietet, die Vision des Kunden vollständig zu verstehen.