FDD is een modelgedreven kort-iteratieproces dat bestaat uit vijf basisactiviteiten. Voor een nauwkeurige rapportage van de stand van zaken en het bijhouden van het softwareontwikkelingsproject worden mijlpalen gedefinieerd die de voortgang van elke functie markeren. Deze sectie geeft een overzicht van de activiteiten op hoog niveau. In de figuur hiernaast wordt het meta-procesmodel voor deze activiteiten weergegeven. Tijdens de eerste twee opeenvolgende activiteiten wordt een algemene modelvorm vastgesteld. De laatste drie activiteiten worden iteratief uitgevoerd voor elke feature.
Ontwikkel overkoepelend modelEdit
Het FDD-project begint met een high-level walkthrough van de scope van het systeem en zijn context. Vervolgens worden gedetailleerde domein modellen gemaakt voor elk modelleergebied door kleine groepen en gepresenteerd voor peer review. Een of meer van de voorgestelde modellen worden geselecteerd om het model te worden voor elk domeingebied. De modellen voor de domeingebieden worden geleidelijk samengevoegd tot een overkoepelend model.
Opstellen lijst met kenmerkenEdit
De tijdens de eerste modellering verzamelde kennis wordt gebruikt om een lijst met kenmerken te identificeren door het domein functioneel te ontleden in onderwerpgebieden. Subject areas bevatten elk bedrijfsactiviteiten, en de stappen binnen elke bedrijfsactiviteit vormen de basis voor een gecategoriseerde lijst van kenmerken. Features zijn in dit verband kleine stukjes klantgewaardeerde functies, uitgedrukt in de vorm “<actie> <resultaat> <object>”, bijvoorbeeld: “Bereken het totaal van een verkoop” of “Valideer het wachtwoord van een gebruiker”. Features mogen niet meer dan twee weken in beslag nemen, anders moeten ze in kleinere stukken worden opgedeeld.
Plan by featureEdit
Nadat de feature-lijst is voltooid, is de volgende stap het produceren van het ontwikkelplan en het toewijzen van eigendom van features (of feature-sets) als klassen aan programmeurs.
Design by featureEdit
Voor elke feature wordt een ontwerppakket gemaakt. Een hoofdprogrammeur selecteert een kleine groep features die binnen twee weken ontwikkeld moeten worden. Samen met de bijbehorende class owners werkt de hoofdprogrammeur gedetailleerde sequence diagrams uit voor elke feature en verfijnt het overkoepelende model. Vervolgens worden de klasse en methode prologen geschreven en tenslotte wordt een ontwerpinspectie gehouden.
Build by featureEdit
Nadat een succesvolle ontwerpinspectie voor elke activiteit om een feature te produceren is gepland, ontwikkelen de klasse-eigenaren code voor hun klassen. Na unit testing en succesvolle code inspectie, wordt de voltooide feature gepromoveerd naar de hoofd build.