Vorgehensweisen
Klassische vs. Agile Vorgehensweise
Last updated
Klassische vs. Agile Vorgehensweise
Last updated
In klassischen Prozessmodellen, wie dem Wasserfallmodell wurde oft zu Beginn eines Projektes ein sogenanntes Pflichtenheft erstellt, wo alle mΓΆglichen Anforderungen aufgeschrieben wurden. Dieses musste dann von Auftraggeber und Auftragnehmer unterschrieben werden und galt als Vereinbarung fΓΌr das Produkt, welches aus dem Projekt entstehen sollte.
Das Problem: Oft, oder gar fast immer, haben Programmierer und Kunden nicht die gleiche Vorstellung von einer LΓΆsung.
Daher kam es oft vor, dass zu Beginn eines Projektes mit dem Kunden dieses Pflichtenheft angeschaut wurde und unterschrieben, und dann nach Monaten der Entwicklung das Programm "fertig" war und dem Kunden ΓΌbergeben wurde. Darauf folgte dann auch immer die ErnΓΌchterung. "Das habe ich so nicht bestellt".
Eine der schwersten Aufgaben in der Softwareentwicklung ist es, die BedΓΌrfnisse des Kunden zu verstehen. In der Regel sind Kunden technisch nicht versiert und wissen nicht, was technisch mΓΆglich ist.
Der Kunde kennt nur, was er hat. Wenn er sagt, "ich mΓΆchte ein schnelleres Pferd", muss man zuerst das BedΓΌrfnis verstehen. Das schnellere Pferd ist nΓ€mlich nicht wirklich das BedΓΌrfnis, sondern bereits ein LΓΆsungsvorschlag basierend auf den Kenntnissen des Kunden. TatsΓ€chlich will er schneller von A nach B kommen.
Wenn man die WΓΌnsche des Kunden zu wΓΆrtlich nimmt, kann das die LΓΆsungsfindung wesentlich einschrΓ€nken.
Unzureichende Kommunikation
Zeitdruck / Zeitmanagement
Ressourcen-Planung
Ziele falsch gesetzt
UnprΓ€zise, stetig Γ€ndernde Anforderungen
UngenΓΌgendes Testen
Projektstatus ungenΓΌgend verfolgt
Im klassischen Wasserfallmodell haben die AktivitΓ€ten eine klare Reihenfolge.
Analyse: Projektplan, Offerte, Kalkulation, Pflichtenheft
Design: Technische Dokumentation, GUI-Styleguide
Codierung: Umsetzung der Software
Test: Testdokumentation (Testszenarien), Testumgebung/-einrichtung
Integration: Benutzerhandbuch , fertiges System
Die Welt, die Leute und damit auch die Anforderungen Γ€ndern sich laufend. In einem klassischen Projektvorgehen hat man aber nicht die MΓΆglichkeit, sich an neue Gegebenheiten, Erkenntnisse oder WΓΌnsche anzupassen.
Fehler werden spΓ€t erkannt. (spΓ€te Entdeckung von Anforderungs-, Analyse- und Designfehlern, oft erst wΓ€hrend Integrationstest)
Risiken werden lange mitgeschleppt (Β«weil jetzt noch nicht codiert/getestet werden darfΒ»)
NachtrΓ€gliche Anforderungen kΓΆnnen nicht berΓΌcksichtigt werden.
Projektfortschritt ist ΓΌber lange Zeit nicht messbar.
Mit einer agilen Vorgehensweise kann man diese Probleme grΓΆsstenteils umgehen.
Das Team von Softwareentwicklern arbeitet in kleinen Iterationen von 2 bis 4 Wochen. Nach jeder Iteration (auch Sprint genant), findet ein Release der funktionsfΓ€higen Software statt, welcher getestet und dem Kunden zur VerfΓΌgung gestellt werden oder sogar bereits verΓΆffentlicht werden kann.
Dadurch kann der Kunde von Beginn an der Entwicklung des Produktes teilnehmen und aktiv einschreiten. So werden MissverstΓ€ndnisse sehr schnell erkannt und kΓΆnnen korrigiert werden.
Wenn wir das Bild oben nochmal betrachten, kann man auf der Fahrradtour mit einer agilen Vorgehensweise jede Etappe separat planen und sich den neuen Gegebenheiten anpassen.
Die Entwicklung findet in Iterationen / Sprints statt. Die AktivitΓ€ten des Entwicklungszyklus werden in jeder Iteration von neuem durchlaufen. Analyse, Design, Implementierung, Test, Validation, (Release).
Durch die iterative Vorgehensweise entsteht am Ende jeder Iteration ein Produkt. Die FunktionalitΓ€t der Software nimmt somit inkrementell zu.
Wird eine neue Software entwickelt, kann nach jeder Iteration geprΓΌft werden, ob die Software bereits verΓΆffentlicht und kommerziell genutzt werden kann. So kann ein Produkt potentiell viel frΓΌher finanzielle Einnahmen generieren und mit den Einnahmen weiterentwickelt werden.
Potentiell hat man in einer agilen Vorgehensweise also schon frΓΌher etwas brauchbares und am Ende durch die stΓ€ndige Reflexion und Γberarbeitung vielleicht sogar ein besseres Resultat.
Weitere Vorteile sind:
Fortlaufendes Kundenfeedback -> verbesserte Kommunikation
Probleme / Risiken werden frΓΌher erkannt
Greatest Risk first: Reduktion von Projektrisiken: wenn das Projekt scheitert, dann wenigstens frΓΌh (bevor viel Geld ausgegeben wurde)
Im Sommer 2016 verΓΆffentlichte Nintendo gemeinsam mit Niantic das Smartphone Game "Pokemon Go", wobei die Entwickler agil vorgingen.
Die erste Version, die im FrΓΌhsommer 2016 erschien, war alles andere als "fertig". Viele Features, die beworben wurden, waren gar nicht vorhanden und kamen spΓ€ter mit regelmΓ€ssigen Software-Updates nach.
Erst am Ende kommt das Resultat zum Kunden. Es liegt auf der Hand, dass das Resultat meist nicht den Erwartungen des Kunden entsprach ().
Trotzdem hat das Spiel bereits 30 Tage nach VerΓΆffentlichung 100 Millionen Downloads im Google Play Store verzeichnet und den Entwicklern durch In-App-KΓ€ufe rund $160 Millionen eingebracht (Quelle: ).