Agile Softwareentwicklung

Feature Driven Development

25.08.2010

Das Prozessmodell

Das Prozessmodell umfasst fünf Prozesse:

  • Entwicklung Gesamtmodell

  • Erstellung Feature-Liste

  • Planung je Feature

  • Entwurf je Feature

  • Konstruktion je Feature

FDD-Prozessablauf (Wikipedia)
FDD-Prozessablauf (Wikipedia)
Foto: BQI

Die drei ersten Prozesse werden dabei in der Regel nur einmal durchlaufen. Die beiden letzten Prozesse hingegen bilden die Realisierung der Features ab und laufen zyklisch.

Entwicklung Gesamtmodell:

Ziel dieses ersten Prozesses ist es, Konsens über Inhalt und Umfang des zu entwickelnden Systems zu erhalten, sowie das fachliche Kernmodell zu entwickeln. Dazu definieren Fachexperten und Entwickler unter Leitung des Chefarchitekten Inhalt und Umfang des zu entwickelnden Systems. In Kleingruppen werden Fachmodelle für die einzelnen Bereiche des Systems erstellt, die in der Gruppe vorgestellt, ggf. überarbeitet und schließlich integriert werden.

Erstellung Feature-Liste:

Im zweiten Prozess werden die im ersten Prozess festgelegten Systembereiche, die Features, definiert. Dabei wird das eingangs erwähnte dreistufige Schema (Major Feature Sets, Feature Sets und Features) verwendet. Ein Feature darf maximal zwei Wochen für die Realisierung benötigen. Das Ergebnis dieses zweiten Prozesses ist eine kategorisierte Feature-Liste, deren Kategorien auf oberster Ebene von den Fachexperten aus Prozess 1 stammen.

Planung je Feature:

Im dritten Prozess planen der Projektleiter, der Entwicklungsleiter und die Chefprogrammierer die Reihenfolge, in der Features realisiert werden sollen. Dabei richten sie sich nach den Abhängigkeiten zwischen den Features, der Auslastung der Programmierteams sowie der Komplexität der Features. Auf Basis des Plans werden die Fertigstellungstermine je Geschäftsaktivität festgelegt. Jede Geschäftsaktivität bekommt einen Chefprogrammierer als Besitzer zugeordnet. Außerdem werden für die bekannten Kernklassen Entwickler als Besitzer festgelegt (Class Owner List).

Entwurf je Feature:

Der Chef-Programmierer analysiert das ihm zugeordnete Feature und stellt, auf der Basis der involvierten Klassen, das Feature-Team zusammen. Ein Domain Walkthrough wird durchlaufen, das Objektmodell verfeinert, das Design des Features festgelegt und schließlich im Rahmen einer Inspektion überprüft.

Konstruktion je Feature:

Im fünften Prozess programmieren die Entwickler die im vierten Prozess vorbereiteten Features. Bei der Programmierung werden Komponententests und Code-Inspektionen zur Qualitätssicherung eingesetzt. Über die inkrementelle Entwicklung pro Feature hinaus legt FDD keine Iterationen fest. Bei größeren Projekten ist es jedoch sinnvoll, formelle Meilensteine zu definieren, an denen Teile des endgültigen Produktes vorgeführt werden können. Somit kann der Fortschritt auch in tatsächlich lauffähigem Code dokumentiert werden.