Agile Softwareentwicklung

Agile Softwarentwicklung

Copyright ┬ę Shutterstock / Alexander Supertramp

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:

Kunden sind zufriedener, wenn sie in regelm├Ą├čigen Abst├Ąnden funktionierende Software erhalten, anstatt auf lange Release-Zyklen zu warten.
W├Ąhrend des gesamten Entwicklungsprozesses kann es zu Anpassungen durch ge├Ąnderte Anforderungen kommen. Hier gilt es besonders, Verz├Âgerungen zu vermeiden.
Sogenannte Sprints sollen die regelm├Ą├čige Lieferung von funktionierender Software sicherstellen.
W├Ąhrend des gesamten Projekts arbeiten Auftraggeber und Entwickler zusammen. Durch diese Ma├čnahme werden bessere Entscheidungen getroffen.
Motivierte Teams liefern bessere Ergebnisse ab als unmotivierte Entwickler.
Die zwischenmenschliche Kommunikation ist erfolgreicher, wenn die Mitglieder eines Teams sich direkt gegen├╝ber sitzen.
Geeignete Arbeitssoftware. Das richtige Framework ist ein wichtiges Kriterium f├╝r den Arbeitsfortschritt.
Zur Unterst├╝tzung eines konsistenten Entwicklungstempos legen die Teams die einzelnen Arbeitsschritte und Wiederholungen fest.
Agilit├Ąt und gutes Design stellen sicher, dass die Teams das Tempo halten und das Produkt st├Ąndig verbessert wird und Ver├Ąnderungen aufgenommen werden.
Die Teams entwickeln Software, die nur die erforderlichen Aufgaben erf├╝llt. Weitergehende Funktionen sind nicht notwendig.
Selbstorganisierende Teams liefern bessere Ergebnisse bez├╝glich der Architektur und des Designs. Erfahrene und motivierte Teammitglieder haben Entscheidungsbefugnisse und arbeiten mit dem Auftraggeber zusammen. Alle Teammitglieder kommunizieren miteinander und tauschen Ideen aus.
Regelm├Ą├čige ├ťberlegungen zur Effektivit├Ąt k├Ânnen zur Verbesserung der Prozesse f├╝hren oder bei der Weiterentwicklung der F├Ąhigkeiten und Techniken einzelner Mitglieder f├╝hren.

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:

Entwicklungsteams sind von ihrer Aufgabenstellung her bef├Ąhigt, die eigene Arbeit zu organisieren und zu verwalten. Die daraus resultierende Synergie optimiert die Effizienz und Effektivit├Ąt des Teams.
Der Product Owner ist innerhalb des Entwicklungsteams f├╝r die Kl├Ąrung des Produktzieles zust├Ąndig. Er sorgt f├╝r Transparenz in den anstehenden Arbeiten und ├╝berpr├╝ft das erreichte Ergebnis. Au├čerdem trifft er Entscheidungen hinsichtlich der Priorit├Ąt von Entwicklungsr├╝ckst├Ąnden.
Der Scrum Master ist Mitglied des Entwicklungsteams. Zu seiner Rolle geh├Ârt die Organisation der Arbeit. Er stellt zudem sicher, dass Hindernisse aus dem Weg ger├Ąumt werden. Au├čerdem sch├╝tzt er das Team vor St├Ârungen und Ablenkungen.

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?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte