→ Feature Driven Development (FDD) ist ein Ansatz in der → Softwareentwicklung, um das Entwicklungsvorgehen über Features zu steuern. Ursprünglich von Peter Coad und Jeff De Luca /Coad99/ entwickelt, erfuhr das FDD in den ersten Jahren des 21ten Jahrhunderts eine gewisse Bedeutung und Verbreitung.
In der Wikipedia steht zum Feature Driven Development /#Wiki-FDD/:
“Feature Driven Development (Abk. FDD) ist eine Sammlung von Arbeitstechniken, Strukturen, Rollen und Methoden für das → Projektmanagement im Rahmen agiler Softwareentwicklung.“
Diese Beschreibung ist leider wenig aussagekräftig. Zudem wird FDD nicht unbedingt zur agilen Softwareentwicklung gezählt.
Generell geht es beim FDD darum, dass sich die Softwareentwicklung an Features (deutsch in etwas: Merkmale oder Eigenschaften) ausrichtet, die einen Wert für den / die Kunden bringen. Hierzu wird ein genereller Prozess, mehrere Rollen und eine spezifische Notation zur Beschreibung der Features eingesetzt (Abbildung 1).
Abbildung 1: Feature Driven Development: Komponenten
In diesem Beitrag wird nur der Prozess betrachtet, da dieser auch übergreifend eingesetzt werden kann.
Der Prozess beim Feature Driven Development ist unterteilt in folgende fünf Einzelschritte (Abbildung 2):
- Entwickle ein Gesamtmodell (Develop overall model): Es wird ein generelles Modell mit (allen) Features entwickelt
- Erstelle eine Feature-→ Liste (Build feature list): Aus dem Gesamtmodell werden die einzelnen Features in eine Liste überführt. Dort werden dann die einzelnen Features nach → Aufwand und → Priorität bewertet
- Plane je Feature (Plan by feature): Es werden die Features in eine zeitliche Abfolge gebracht und Entwicklern zugeordnet
- Entwirf je Feature (Design by feature): Jedes Feature wird kurz vor der Umsetzung in einen technischen Entwurf umgesetzt
- Konstruiere je Feature (Build by feature): Zum Abschluss wird das Feature konstruiert / programmiert
Abbildung 2: Feature Driven Development: Prozess
Ein Durchlauf des Prozesses sollte nicht mehr als 6 Monate betragen. Dabei werden die ersten drei Prozessschritte einmalig durchlaufen, während die letzten beiden Prozessschritte insgesamt innerhalb von 2 bis 4 Wochen durchlaufen werden sollen. Es kommt daher zu einer Wiederholung / Iteration der letzten beiden Schritte, solange bis alle Features des Gesamtmodells umgesetzt sind.
Um den iterativen Charakter der letzten beiden Prozessschritte hervorzuheben, kann eine andere Darstellung gewählt werden. In Abbildung 3 sind neben der einfachen Darstellung zwei weitere Varianten dargestellt.
Abbildung 3: Feature Driven Development: Prozess — Darstellungsvarianten
Generell kann man den FDD-Prozess in zwei Phasen unterteilen: Die initiale Startphase und die iterative Realisierungsphase (Abbildung 4).
Abbildung 4: Feature Driven Development: Prozess — Unterteilung in zwei Phasen
Generell ist die Bedeutung und der Einsatz von FDD in den letzten Jahren zurückgegangen. Dies kann damit zusammenhängen, dass wertstromorientiertes Vorgehen in der Agilität Einzug gehalten hat und daher die Features auch ohne das FDD genutzt werden.
Folgende → Schreibweisen sind zu finden:
- Deutsch: Feature Driven Development
- Englisch: Feature-driven development
Anmerkungen:
- “Buy a Feature” ist eine Priorisierungstechnik, bei der die Weiterentwicklung aufgrund von bewerteten und auswählbaren Features erfolgt
- Der Unterschied von → Funktion und Feature wird in dem Beitrag → Funktion oder Feature? erläutert
Literatur
- /Coad99/ Peter Coad, Eric LeFebvre, Jeff De Luca: Java Modeling In Color With → UML. Enterprise Components and Process, Prentice Hall International, Upper Saddle River, New Jersey 1999, ISBN 978–0‑13–011510‑2
- /Palmer02/ Stephen R. Palmer, John M. Felsing: A Practical Guide to Feature-Driven Development, Prentice Hall International, Upper Saddle River, New Jersey 2002, ISBN 978–0‑13–067615‑3
Weblinks
- /#Wiki-FDD/ Feature Driven Development in der deutschen Wikipedia
- /#Wiki-FDD‑e/ Feature-driven development in der englischen Wikipedia
Legende zu den Weblinks
/ / Verweis auf eine Website (allgemein)
/*/ Verweis auf eine Website, die als Ergänzung zu einem Buch dient
/#/ Verweis auf ein einzelnes Thema auf einer Website
/#V/ Verweis auf ein Video auf einer Website
Letzte Aktualisierung: 28.03.2024 © Peterjohann Consulting, 2005–2024