Wat is functiegedreven ontwikkeling?
Alle softwareontwikkeling vereist projectbeheer en systeemontwikkeling-levenscyclusbeheer (SDLC). Dit zijn de technieken en processen die worden gebruikt om het ontwikkelingsproces van een softwareapplicatie effectief te beheren. Functiegestuurde ontwikkeling is een techniek die is gebaseerd op snelle ontwikkelingscycli. Het biedt het bedrijf functionaliteit sneller dan typische standaard SLDC-technieken.
In de competitieve markt van vandaag is het belangrijk voor organisaties om snel te reageren op veranderende trends en marktklimaten. Informatietechnologie heeft geprobeerd de softwareontwikkeling te evolueren naar een flexibeler proces dat kan anticiperen op de competitieve behoeften van een organisatie. Functiegestuurde ontwikkeling is een software-ontwikkelingstechniek die probeert toepassingsfuncties op een iteratieve manier te implementeren op basis van de prioriteiten van een bedrijf.
Functiegestuurde ontwikkeling wordt beschouwd als een iteratief ontwikkelingsproces. Dit komt omdat code wordt ontwikkeld en geïmplementeerd in iteraties van functionaliteit in plaats van als een volledige toepassing. Het werd gecreëerd door Jeff De Luca in 1997 als snelle techniek voor het leveren van softwareapplicaties. Dit flexibele proces probeert sneller prioriteit te geven aan een klant.
Het functiegestuurde ontwikkelingsproces is gebaseerd op modellen en korte ontwikkelingscycli. Dit is vergelijkbaar met de ontwikkelingstechnieken die worden gebruikt in Extreme Programming (XP). Elk project is onderverdeeld in kleine functies die in minder dan twee weken kunnen worden gecodeerd, getest en geïmplementeerd. Deze cyclus van twee weken biedt het bedrijf sneller een functierijk systeem omdat het zich voortdurend ontwikkelt.
Er zijn vier hoofdgebieden van functiegedreven ontwikkeling. Dit zijn het domeinmodel, de functielijst, plannen per functie, en uiteindelijk bouwen en implementeren per functie. Deze vier gebieden hebben specifieke vereisten en technieken die hen succesvol maken.
Het domeinmodel is een overzicht en ontwerp op hoog niveau van de gehele applicatie. Het is de skeletblauwdruk van wat tijdens het iteratieproces zal worden gebouwd. Dit is de eerste stap van het functiegestuurde proces en is bedoeld om het ontwikkelteam een routekaart van de hele applicatie te geven.
Nadat het domeinmodel is voltooid, moet een lijst met functies worden gemaakt. De functielijst bevat alle vereiste functionaliteit van de applicatie. Elke functie moet in detail worden ontworpen om het te laten werken. Een voorbeeld van een functie voor een banktoepassing kan zijn "bereken het totale beschikbare banksaldo".
Prioritering is de volgende stap in aanbevolen ontwikkeling. Nadat de volledige functielijst is gemaakt, moet deze prioriteit krijgen van de zakelijke gebruikers. Deze prioriteit moet worden gebaseerd op het belang van functionaliteit voor de organisatie.
De laatste fase van functiegestuurde ontwikkeling is gebaseerd op het bouwen en implementeren van functies op basis van de lijst met geprioriteerde functies. Elke functie wordt gecodeerd, getest en geïmplementeerd in stappen van twee weken. Deze snelle iteratieve benadering biedt het bedrijf de mogelijkheid om de applicatie te gebruiken voordat deze volledig is voltooid.