Feature-Driven Development (FDD) ist eine agile Softwareentwicklungsmethode, die den Schwerpunkt auf die Entwicklung und Lieferung von Features legt. Ein „Feature“ in FDD bezieht sich auf eine kleine, kundenrelevante Funktion. FDD kombiniert bewährte Praktiken aus der objektorientierten Modellierung und der Softwareentwicklung in einem kohärenten Ganzen.

Kernprozesse von FDD

  1. Entwicklung eines Gesamtmodells: Ein High-Level-Modell des Systems wird erstellt, um den Umfang und den Kontext des Projekts zu verstehen.
  2. Erstellung einer Feature-Liste: Alle gewünschten Features werden aufgelistet und kategorisiert.
  3. Planung nach Feature: Features werden in logische Gruppen eingeteilt und einem Team oder einem Entwickler zugewiesen.
  4. Design nach Feature: Für jedes Feature wird ein detailliertes Design erstellt.
  5. Bau nach Feature: Das Feature wird gemäß dem Design entwickelt und getestet.

Hauptrollen in FDD

  • Chief Architect: Verantwortlich für das Gesamtmodell und die Architektur des Systems.
  • Development Manager: Verantwortlich für den gesamten Entwicklungsprozess und die Ressourcenzuweisung.
  • Chief Programmer: Führt ein kleines Team von Entwicklern und ist verantwortlich für das Design und die Entwicklung von Features.
  • Feature Teams: Kleine Teams, die für die Entwicklung bestimmter Features verantwortlich sind.

Vorteile von FDD

  • Klare Orientierung: Durch die Fokussierung auf Features wird sichergestellt, dass nur das entwickelt wird, was der Kunde wirklich will.
  • Skalierbarkeit: FDD kann leicht auf große Teams und komplexe Projekte skaliert werden.
  • Qualitätssicherung: Durch die klare Trennung von Design und Bau wird eine hohe Codequalität sichergestellt.
  • Fortschrittsüberwachung: Der Fortschritt kann leicht anhand der abgeschlossenen Features verfolgt werden.

Fazit

Feature-Driven Development bietet einen strukturierten Ansatz für die agile Softwareentwicklung, der sich besonders für größere Teams und Projekte eignet. Durch die klare Fokussierung auf kundenrelevante Features wird sichergestellt, dass das Endprodukt den Anforderungen des Kunden entspricht.