Ves razvoj programske opreme zahteva vodenje projektov in upravljanje življenjskega cikla razvoja sistema (SDLC). To so tehnike in procesi, ki se uporabljajo za učinkovito upravljanje procesa razvoja programske aplikacije. Funkcijski usmerjen razvoj je tehnika, ki temelji na hitrih razvojnih ciklih. Podjetjem zagotavlja funkcionalnost hitreje kot tipične standardne tehnike SLDC.
Na današnjem konkurenčnem trgu je pomembno, da se organizacije hitro odzovejo na spreminjajoče se trende in tržno podnebje. Informacijska tehnologija je poskušala razvoj programske opreme razviti v bolj agilen proces, ki lahko predvideva konkurenčne potrebe organizacije. Funkcijski usmerjen razvoj je tehnika razvoja programske opreme, ki poskuša implementirati funkcije aplikacije na iterativen način, ki temelji na prednostnih nalogah podjetja.
Razvoj, ki temelji na funkcijah, se šteje za iterativni razvojni proces. To je zato, ker je koda razvita in uvedena v iteracijah funkcionalnosti in ne kot popolna aplikacija. Ustvaril ga je Jeff De Luca leta 1997 kot hitro tehniko za dostavo programskih aplikacij. Ta agilen proces poskuša stranki hitreje dostaviti prednostne funkcije.
Razvojni proces, ki temelji na funkcijah, temelji na modelih in kratkih razvojnih ciklih. To je podobno razvojnim tehnikam, ki se uporabljajo v ekstremnem programiranju (XP). Vsak projekt je razdeljen na majhne funkcije, ki jih je mogoče kodirati, preizkusiti in uvesti v manj kot dveh tednih. Ta dvotedenski cikel podjetju omogoča hitrejši sistem, bogat s funkcijami, ker se nenehno razvija.
Obstajajo štiri glavna področja razvoja na podlagi funkcij. To so model domene, seznam funkcij, načrt za funkcijo in končno izgradnja in uvajanje glede na funkcijo. Ta štiri področja imajo posebne zahteve in tehnike, zaradi katerih so uspešna.
Model domene je pregled in zasnova celotne aplikacije na visoki ravni. To je okvirni načrt tega, kar bo zgrajeno med postopkom ponovitve. To je prvi korak postopka, ki ga poganja funkcije, in naj bi razvojni skupini dal načrt celotne aplikacije.
Ko je model domene dokončan, je treba ustvariti seznam funkcij. Seznam funkcij bo vključeval vse zahtevane funkcionalnosti aplikacije. Vsako funkcijo je treba natančno oblikovati, da bo delovala. Primer funkcije za bančno aplikacijo bi lahko bil »izračun skupnega razpoložljivega bančnega stanja«.
Določanje prednostnih nalog je naslednji korak v razvoju, ki ga vodijo funkcije. Ko je celoten seznam funkcij ustvarjen, ga morajo poslovni uporabniki dati prednost. Ta prednostna obravnava mora temeljiti na pomembnosti funkcionalnosti za organizacijo.
Zadnja faza razvoja na podlagi funkcij temelji na izdelavi in uvajanju funkcij na podlagi prednostnega seznama funkcij. Vsaka funkcija bo kodirana, preizkušena in uvedena v korakih po dva tedna. Ta hiter iterativni pristop daje podjetju priložnost, da uporabi aplikacijo, preden je popolnoma končana.