
Software Development
Eine der ersten Entscheidungen, vor denen wir bei jedem unserer Entwicklungsprojekte stehen, lautet: „Welche Entwicklungsmethodik sollen wir anwenden?
Dies ist ein Thema, das viele Diskussionen (und oft hitzige Debatten) auslöst.
Wenn Sie noch nicht mit Software-Entwicklungspartnern gearbeitet haben, ist eine Definition der Entwicklungsmethodik angebracht; sehr einfach ausgedrückt, es ist eine Möglichkeit, die Arbeit der Software-Entwicklung zu organisieren.
Hier geht es NICHT um einen Stil des Projektmanagements oder einen bestimmten technischen Ansatz, obwohl Sie diese Begriffe oft alle zusammengewürfelt oder austauschbar verwendet hören werden.
Wasserfall Methodik
Wasserfall ist ein linearer Ansatz zur Software-Entwicklung. Bei dieser Methodik ist die Abfolge der Ereignisse in etwas so
- Anforderungen sammeln und dokumentieren
- Design und Konzeption der Anwendung
- Code- und Einheitentest
- Durchführen von Systemtests
- Durchführen von Benutzerakzeptanztests (UAT)
- Beheben aller identifizierten Mängel und Probleme
- Lieferung und Einsatz des fertigen Produkts
In einem echten Wasserfall-Entwicklungsprojekt stellt jede dieser Phasen eine bestimmte Stufe der Softwareentwicklung dar, und jede Stufe wird im Allgemeinen beendet, bevor die nächste beginnen kann. In der Regel gibt es auch ein Stage-Gate zwischen den einzelnen Phasen; beispielsweise müssen die Anforderungen vom Kunden geprüft und genehmigt werden, bevor mit dem Design begonnen werden kann.
Der Wasserfall-Ansatz hat gute und schlechte Seiten.

Mögliche Probleme und Einschränkungen:
Vorteilhaft ist:

Agile Methoden
Agil ist ein iterativer, teambasierter Entwicklungsansatz. Es gibt verschiedene Varianten der agilen Entwicklung, die alle einige grundlegende Gemeinsamkeiten aufweisen. Dazu gehören u.a.:
- Extreme Programming (XP)
- Scrum
- Kanban
- Lean Software Development
- Agile Unified Process
Agile Methoden legen den Schwerpunkt auf die schnelle Bereitstellung einer Anwendung in vollständigen funktionalen Komponenten.
Anstatt Aufgaben und Zeitpläne zu erstellen, wird die gesamte Zeit in Phasen, die als „Sprints“ bezeichnet werden, „zeitlich eingegrenzt“. Jeder Sprint hat eine festgelegte Dauer (normalerweise in Wochen) mit einer laufenden Liste von Deliverables, die zu Beginn des Sprints geplant werden. Die Deliverables werden nach dem vom Kunden festgelegten Geschäftswert priorisiert. Wenn nicht alle für den Sprint geplanten Arbeiten abgeschlossen werden können, werden die Arbeiten neu priorisiert, und die Informationen werden für die zukünftige Sprintplanung verwendet.
Wenn die Arbeit abgeschlossen ist, kann sie vom Projektteam und vom Kunden durch tägliche Builds und End-of-Sprint-Demos überprüft und bewertet werden. Agile verlässt sich auf ein sehr hohes Maß an Kundenbeteiligung während des gesamten Projekts, vor allem aber während dieser Überprüfungen.