Sav razvoj softvera zahtijeva upravljanje projektima i upravljanje životnim ciklusom razvoja sustava (SDLC). To su tehnike i procesi koji se koriste za učinkovito upravljanje procesom razvoja softverske aplikacije. Razvoj vođen značajkama je tehnika koja se temelji na brzim razvojnim ciklusima. Posao pruža funkcionalnost brže od tipičnih standardnih SLDC tehnika.
Na današnjem konkurentnom tržištu važno je da organizacije brzo reagiraju na promjene trendova i tržišne klime. Informacijska tehnologija pokušala je razviti razvoj softvera u agilniji proces koji može predvidjeti konkurentske potrebe organizacije. Razvoj vođen značajkama je tehnika razvoja softvera koja pokušava implementirati značajke aplikacije na iterativni način na temelju prioriteta poslovanja.
Razvoj vođen značajkama smatra se iterativnim razvojnim procesom. To je zato što se kod razvija i implementira u iteracijama funkcionalnosti, a ne kao potpuna aplikacija. Stvorio ju je Jeff De Luca 1997. godine kao brzu tehniku za isporuku softverskih aplikacija. Ovaj agilni proces pokušava brže isporučiti prioritetne značajke klijentu.
Proces razvoja vođen značajkama temelji se na modelima i kratkim razvojnim ciklusima. Ovo je slično razvojnim tehnikama koje se koriste u ekstremnom programiranju (XP). Svaki je projekt podijeljen na male značajke koje se mogu kodirati, testirati i implementirati za manje od dva tjedna. Ovaj dvotjedni ciklus osigurava bržem poslovanju sa sustavom bogatim značajkama jer se neprestano razvija.
Postoje četiri primarna područja razvoja temeljenog na značajkama. To su model domene, popis značajki, plan po značajka i konačno izgradnja i implementacija po značajci. Ova četiri područja imaju specifične zahtjeve i tehnike koje ih čine uspješnima.
Model domene je pregled i dizajn cijele aplikacije na visokoj razini. To je okvirni nacrt onoga što će se izgraditi tijekom procesa iteracije. Ovo je prvi korak procesa vođenog značajkama i namijenjen je razvojnom timu dati mapu puta cijele aplikacije.
Nakon što je model domene gotov, potrebno je izraditi popis značajki. Popis značajki uključivat će sve potrebne funkcije aplikacije. Svaka značajka mora biti posebno dizajnirana kako bi funkcionirala. Primjer značajke za bankovnu aplikaciju mogao bi biti “izračunati ukupni raspoloživi saldo u banci”.
Određivanje prioriteta sljedeći je korak u razvoju vođenom značajkama. Nakon što se izradi cijeli popis značajki, poslovni korisnici bi ga trebali dati prioritetu. Ovo određivanje prioriteta treba se temeljiti na važnosti funkcionalnosti za organizaciju.
Završna faza razvoja temeljenog na značajkama temelji se na izgradnji i implementaciji značajki na temelju prioritetnog popisa značajki. Svaka značajka bit će kodirana, testirana i implementirana u koracima od dva tjedna. Ovaj brzi iterativni pristup daje poduzeću priliku da koristi aplikaciju prije nego što je u potpunosti gotova.