Agile Softwareentwicklung
Inhaltsverzeichnis
Was ist Agile Softwareentwicklung?
Agile Software Development ist ein Sammelbegriff für eine Reihe von Methoden und Verfahren in der Entwicklung von Software. Das Wort Agilität (lat. agilis = flink, beweglich) bezieht sich auf einen Bereich der Softwareentwicklung, der auf den Werten und Prinzipien des Agilen Manifestes beruht. Der agile Ansatz fördert die funktionsübergreifende Zusammenarbeit, Selbstorganisation und Kreativität in der Softwareentwicklung. Dazu enthält das Agile Manifest die Leitprinzipien. Agiles Projektmanagement konzentriert sich auf die ständige Verbesserung und ermöglicht mehr Flexibilität in der Entwicklung qualitativ hochwertiger Software.
Woher stammt der Begriff Agile Softwareentwicklung?
Obwohl erste Schritte für eine agile Softwareentwicklung bereits 1974 dokumentiert wurden, begann die Popularität dieser Entwicklungsmethode erst in den 1990er-Jahren. Mitte des Jahrzehnts gab es bereits standardisierte Verfahren wie “Rapid Application Development” (RAD) und “Extreme Programming” (XP). 1995 wurde das Entwicklungs- Framework “Scrum” vorgestellt, das Agile Manifest erschien im Jahre 1999.
In der plangesteuerten Softwareentwicklung ist der Umfang normalerweise festgelegt, die Kosten und der Zeitplan sind variabel. Viele große Softwareprojekte wurden auf diese Weise implementiert. Das funktioniert jedoch nur, wenn die benötigte Software vollständig spezifizierbar und durch eine umfassende Planung erstellt werden kann. Dieses Verfahren führt allerdings nicht immer zu den gewünschten Zielen. Besonders die Änderungen während der Entwicklungsphase können eine nachteilige Wirkung haben. Im Gegensatz dazu sind bei der agilen Entwicklung Kosten und Zeitpläne festgelegt während der Umfang variabel ist. Agile Software kann von kleinen Teams entwickelt werden, wenn dabei die Prinzipien der Designverbesserung basierend auf schnelle Rückmeldung angewandt werden.
Das Manifest für Agile Softwareentwicklung
Bei ihren Treffen im Jahre 1999 stellten die Softwareentwickler eine Reihe von Ideen und Richtlinien vor die um die Jahrtausendwende als Agiles Manifest veröffentlicht wurden. Zu den Eckwerten dieses Manifestes gehören die folgenden Prinzipien:
Scrum – Ein agiles Entwicklungs-Framework
Scrum ist eines der beliebtesten Frameworks zur Implementierung Agiler Softwareentwicklung. Das Framework sorgt für die Umsetzung agiler Methoden wie schrittweise (inkrementelle) und sich wiederholende (iterative) Arbeitsschritte, die als Sprints bezeichnet werden. Obwohl Scrum sehr populär ist, gibt es auch andere Frameworks, wie zum Beispiel Kanban, die zur agilen Softwareentwicklung eingesetzt werden können. Scrum eignet sich als Framework für unterschiedliche Projekte mit strengen Fristen und komplexen Anforderungen. Durch eine Reihe von Iterationen werden die Arbeitsschritte vorangetrieben. Ein Sprint dauert normalerweise zwischen zwei und vier Wochen.
Ein Scrum-Team hat eine etwas andere Zusammensetzung als bei herkömmlichen Projekten. Die drei spezifischen Rollen Entwicklungsteam, Product Owner und Scrum Master können wie folgt beschrieben werden:
Ein Scrum Team arbeitet funktionsübergreifend. Die Mitglieder eines Entwicklungsteams bestehen aus Entwicklern, Testen, Designern etc.
Agile Softwareentwicklung beginnt mit einer Reihe von Sitzungen und Recherchen, um die Ziele, Herausforderungen und Aufgaben des Benutzers oder Kunden zu verstehen. An diesen Meetings nehmen die wichtigsten Mitglieder eines Projektteams wie beispielsweise Projektmanager, Designer, Entwickler und Produkteigentümer teil.
Erleichterung der Softwareentwicklung
Agile Methoden entstanden aus der Notwendigkeit für die Entwicklung von Software einen leichteren Weg zu finden. Besonders die ständigen Änderungen und wechselnde Anforderungen sollen durch ein erfolgreiches Projektmanagement aufgefangen werden. Die Agile Methode beschreibt dazu eine Reihe von Werten und Prinzipien welche die Selbstorganisation der Entwicklungsteams und den Erfolg der Arbeit verwirklicht. Durch das Agile Manifest und ein Framework sind funktionsübergreifende Teams durch adaptive Planung, evolutionäre Entwicklung, schnelle und flexible Reaktion in der Lage Softwareprojekte erfolgreich abzuschließen.
Sie haben noch Fragen?