Kaikki ohjelmistokehitys edellyttää projektinhallintaa ja järjestelmäkehityksen elinkaaren (SDLC) hallintaa. Näitä tekniikoita ja prosesseja käytetään tehokkaasti ohjelmistosovelluksen kehitysprosessin hallintaan. Ominaisuusvetoinen kehitys on tekniikka, joka perustuu nopeisiin kehitysvaiheisiin. Se tarjoaa yritykselle toiminnallisuutta nopeammin kuin tavalliset SLDC -tekniikat.
Nykypäivän kilpailukykyisillä markkinoilla on tärkeää, että organisaatiot reagoivat nopeasti muuttuviin suuntauksiin ja markkinailmastoon. Tietotekniikka on yrittänyt kehittää ohjelmistokehityksen ketterämmäksi prosessiksi, joka voi ennakoida organisaation kilpailutarpeita. Ominaisuusvetoinen kehitys on ohjelmistokehitystekniikka, joka yrittää toteuttaa sovellusominaisuuksia iteratiivisesti yrityksen prioriteettien perusteella.
Ominaisuusvetoista kehitystä pidetään iteratiivisena kehitysprosessina. Tämä johtuu siitä, että koodi on kehitetty ja otettu käyttöön toiminnallisuuden iteraatioissa pikemminkin kuin kokonaisena sovelluksena. Sen loi Jeff De Luca vuonna 1997 nopeana tekniikkana ohjelmistosovellusten toimittamiseen. Tämä ketterä prosessi pyrkii toimittamaan priorisoidut ominaisuudet asiakkaalle nopeammin.
Ominaisuusvetoinen kehitysprosessi perustuu malleihin ja lyhyisiin kehityssykleihin. Tämä on samanlainen kuin Extreme -ohjelmoinnissa (XP) käytetyt kehitystekniikat. Jokainen projekti on jaettu pieniin ominaisuuksiin, jotka voidaan koodata, testata ja ottaa käyttöön alle kahdessa viikossa. Tämä kahden viikon jakso tarjoaa yritykselle monipuolisen järjestelmän nopeammin, koska se kehittyy jatkuvasti.
Ominaisuusvetoisen kehittämisen ensisijaisia alueita on neljä. Nämä ovat verkkotunnusmalli, ominaisuusluettelo, suunnitelma ominaisuuden mukaan ja lopuksi rakentaa ja ottaa käyttöön ominaisuuden mukaan. Näillä neljällä alueella on erityisiä vaatimuksia ja tekniikoita, jotka tekevät niistä onnistuneita.
Verkkotunnusmalli on korkeatasoinen yleiskatsaus ja suunnittelu koko sovelluksesta. Se on luurankokaava siitä, mitä iteraatioprosessin aikana rakennetaan. Tämä on ominaisuuslähtöisen prosessin ensimmäinen vaihe, ja sen tarkoituksena on antaa kehitystiimille etenemissuunnitelma koko sovelluksesta.
Kun verkkotunnusmalli on valmis, luettelo ominaisuuksista on luotava. Ominaisuusluettelo sisältää kaikki sovelluksen vaaditut toiminnot. Jokainen ominaisuus on suunniteltava tarkasti, jotta se toimisi. Esimerkki pankkisovelluksen ominaisuudesta voisi olla ”laske käytettävissä oleva pankkisaldo”.
Priorisointi on seuraava askel suositeltuun kehitykseen. Kun koko ominaisuusluettelo on luotu, yrityskäyttäjien tulisi asettaa se etusijalle. Tämän priorisoinnin tulisi perustua toiminnallisuuden tärkeyteen organisaatiolle.
Ominaisuusvetoisen kehityksen viimeinen vaihe perustuu ominaisuuksien luomiseen ja käyttöönottoon ensisijaisten ominaisuuksien luettelon perusteella. Jokainen ominaisuus koodataan, testataan ja otetaan käyttöön kahden viikon välein. Tämä nopea iteratiivinen lähestymistapa antaa yritykselle mahdollisuuden käyttää sovellusta ennen kuin se on täysin valmis.