Agile Softwareentwicklung

 

Agile Entwicklungsmethoden sind die perfekte Lösung für ein häufig bei der Entwicklung von (Software-)Projekten auftretendes Problem: Die Tatsache, dass sich die Anforderungen zukünftiger Nutzer an eine neue Software nur sehr schwer im Voraus detailliert erfassen lassen und sich deren Wünsche und Prioritäten demzufolge oftmals während des Projekts stark ändern.


Klassische Entwicklungsmethoden, bei denen alle Details zu Beginn verbindlich festgelegt werden, stoßen angesichts dieser Dynamik schnell an ihre Grenzen. Das Ergebnis: Projektmanager versuchen häufig, die Realität an ihre Planung anzupassen; eine nicht ganz triviale Aufgabe ...


Bei agilen Entwicklungsmethoden hingegen steht die ständige Abgleichung der Entwicklung mit den Kundenwünschen im Mittelpunkt. Beim sogenannten "Inspect and adapt" wird in kurzen Abständen überprüft, ob Optimierungsmöglichkeiten im Vorgehen, bei der Priorisierung oder Ausgestaltung von Features bestehen (inspect) und bei Bedarf wird das Vorgehen angepasst (adapt).


Die starke Integration automatisierter Tests und eine gleichbleibend hohe innere Code-Qualität sind dabei Voraussetzung und Garant für die flexible Anpassung des Codes an sich ändernde Anforderungen.


Scrum

 

consistec setzt zur agilen Entwicklung die Scrum-Methode ein. Sie gibt Entwicklern und Kunden einen flexiblen Rahmen zur Umsetzung der agilen Ideen an die Hand.

 

Es existieren drei Rollen:

  • Das Entwicklungs-Team: in der Regel etwa fünf bis sieben Entwickler, die sich selbst organisieren. Durch die Selbstorganisation entsteht im Team ein hohes Verantwortungsbewusstsein für die Qualität der entwickelten Software.
  • Product Owner: ein Vertreter des Kunden, der dem Entwicklungsteam gegenüber Fragen zu den gewünschten Features beantwortet und diese priorisiert.
  • Scrum Master: Der Scrum Master moderiert die Abläufe im Scrum-Prozess und entlastet das Entwicklungsteam von entwicklungsfremden Aufgaben (Beschaffung von Infrastruktur, ...)

Die Entwicklung erfolgt in sogenannten Sprints. Dabei handelt es sich um feste, relativ kurze Zeitintervalle (in der Regel zwei bis drei Wochen). Zu Beginn des Sprints plant das Team, wie viele Features es im nächsten Sprint umsetzen kann (die Priorisierung gibt der Product Owner vor) und verpflichtet sich dann zur vollständigen Lieferung dieser Features in einer vorgegebenen Qualität pünktlich zum Sprintende. Qualität ist bei Scrum nicht verhandelbar und wird in der sogenannten Definition of Done festgelegt.


Der fixe zeitliche Rahmen bietet dem Entwicklungsteam eine stabile Basis für die Entwicklung der abgesprochenen Features, ohne ständige Richtungswechsel, und erlaubt gleichzeitig nach jedem Sprint eine flexible Anpassung des weiteren Vorgehens.


Einer der großen Vorteile für den Kunden besteht darin, dass die Software nach jedem Sprint in einem auslieferbaren Zustand ist.


Dadurch können die wichtigsten Features - diese werden ja nach ihrer Priorisierung zuerst umgesetzt - bereits in einem sehr frühen Stadium des Projekts produktiv eingesetzt werden. Ein extrem früher Return on Investment ist damit garantiert. Zusätzlich kann die Software im realen Einsatz evaluiert und so die wirklich wichtigen Features frühzeitig identifiziert werden.


Intern realisieren wir alle Software-Entwicklungsprojekte mit testgestützten agilen Methoden, unabhängig davon, ob Sie uns auf Festpreisbasis oder auf Basis eines agilen Ansatzes beauftragen wollen.


Lassen auch Sie sich von den Vorteilen agiler Software-Entwicklung überzeugen.