Sovelluskehityshanke, on sitten kyse uuden sovelluksen kehittämisestä tai olemassaolevan jatkokehitysestä, on hyvin haastava projekti. Toisinaan tulee vastaan alan ulkopuolella toimivia henkilöitä, jotka näkevät asian näin, että mikäs siinä, siitä vaan koodaamaan. Mutta ei. Sovelluskehitys on prosessi, jolla voi hyvin tehokkaasti kohtuullisella investoinnilla saada huippuluokan ohjelmistotuotteen tai sitten suurillakaan investoinneilla ei saa kuin huonolaatuisen ja käyttäjille sopimattoman tuotteen. Hyvänä esimerkkinä tästä Sampo-pankin verkkopankkikehitysprojekti.
Viime vuosina entistä enemmän sovelluskehitysprojektien onnistuneisuutta on lähdetty tarkastelemaan kaupallisella termillä sijoitetun pääoman tuotto eli ROI. Tämä lähtökohta on huomattavasti selkeämpi indikaattori projektin onnistumiselle tai epäonnistumiselle kuin vaikkapa ominaisuuslistojen läpikäynti, virheraporttien tilastointi ym. tekniset tilastot. Lopultahan sovelluskehitysprojektissa on kyse miltei aina yritykselle sijoituksesta, jonka kautta tulee tulla selkeästi enemmän tuottoa, kuin mitä tulisi, jos sijoitusta ei tehtäisi.
Sijoitetun pääoman tuoton laskenta ei ole aina yksinkertaista, sillä esim. yrityksen tulokseen vaikuttaa moni muukin asia, kuin uuden ohjelmiston käyttöönotto. Olennaista onkin se, että ohjelmiston eri ominaisuuksille voidaan määrittää odotusarvo, kuinka paljon mikäkin ominaisuus oletettavasti saa aikaan tuottoa, jolloin tapahtuu vahvasti ominaisuuksien priorisointia. Tämän vastaavasti tulisi näkyä ohjelmiston kehityksessä siten, että ne ominaisuudet, joista tuottoa on eniten odotettavissa, toteutetaan ensimmäisenä. Näin tuottoa investoinnille saadaan mahdollisimman paljon jo ensimmäisen version käyttöön oton yhteydessä.
Perinteisissä sovelluskehitysmalleissa on edetty selkeiden vaiheiden kautta: tarvekartoitus, määritys, suunnittelu, toteutus, testaus, pilot-käyttö ja käyttöönotto. Tällä ns. vesiputousmallilla on mahdollista toteuttaa projekteja hyvin ja huonosti. Ongelmana vesiputousmallissa on sen rakenteen jähmeys. Kun kerran on vaikkapa määritys tehty, katselmoitu ja allekirjoitettu, ei siihen enään toteutusvaiheessa voida tehdä muutoksia tai sitten pienenkin muutoksen mukaansaanti on suuri prosessi. Pienissä projekteissä tämä ei ole ongelma, sillä uuden kierroksen voi aloittaa, kun edellinen versio on otettu käyttöön ja tätä kautta saadaan tarvittavat muutokset mukaan tuotteeseen. Keskisuurissa ja suurissa projekteissa tämä on ongelma, usein iso ongelma, sijoitetun pääoman tuoton kannalta. Miksikö?
Se mikä yritysmaailmassa on varmaa, on muutos. Kun sovelluskehitysprojekti käynnistyy ja mitä pidempi sovelluskehitysprosessi ajallisesti on, osa näistä alla kuvatuista muutoksista tulee tapahtumaan:
- Tarpeet muuttuvat. Tarvekartoitus- ja määritysvaiheessa ei osata havaita kaikkia tarpeita, osa on tulkittu väärin ja prosessiin osallistujilla voi olla rajallinen käsitys kokonaisuudesta.
- Tuotteet muuttuvat. Yritykselle tulee uusia tuotteita ja palveluja, niitä poistuu ja osa muuttuu.
- Organisaatio muuttuu. Yritykseen tulee organisaatiomuutoksia, fuusioita, yhtiöittämisiä ym.
- Kilpailutilanne muuttuu. Kilpailijoiden toimenpiteet vaikuttavat siihen, mitä ohjelmistolta vaaditaan.
- Suhdanteet muuttuvat. Suhdanteet vaikuttavat yhtiön toimintaan, budjetointiin, priorisointiin, organisaatioon, kilpailutilanteeseen ym.
- Lainsäädäntö muuttuu. Joissain tapauksissa viranomaisten muuttuvat määräykset vaikuttavat ohjelmiston vaatimuksiin.
Nämä muutokset tulisi huomioida välittömästi kehitettävässä tuotteessa, jotta se on valmistuttuaan juuri se, mitä organisaatio tarvitsee, eikä ole sitä vain osittain ja käyttäjät joutuvat odottamaan seuraavia päivityksiä saadakseen olennaiset muutokset huomioituna tuotteessa.
Tätä kautta sijoitetun pääoman tuotto on suurin mahdollinen eikä sovelluskehitysprojektin aikana ole turhaan kehitetty ominaisuuksia, joita ei muuttuneessa tilanteessa enää tarvita.
Prosessi
Ketterät menetelmät ovat nykyaikainen prosessi, joka lähtee siitä, että muutokset sovelluskehitysprojektin aikana eivät ole ongelma vaan hyvä asia. Muutokset vievät lopputulosta juuri siihen suuntaan, että ohjelmisto on valmistuttuaan juuri se, mitä yhtiön liiketoiminta tarvitsee. Ohjelmiston käyttöönottoa ei jouduta odottamaan pitkään, vaan ensimmäinen versio julkaistaan jo muutaman kuukauden kuluttua käynnistyksestä, joka sisältää sijoitetun pääoman tuoton pohjalta priorisoidut eli organisaation kannalta tuottavimmat ominaisuudet. Käyttäjien ei siis tarvitse odottaa koko projektin päättymistä, jotta tuottoa sijoitusesta alkaa tulemaan.
Usein puhutaan 20%/80%-säännöstä, joka on myös käytännössä todettu hyvin paikkansa pitäväksi. Usein kun 20% ominaisuuksista on toteutettuna, on jo 80% sijoitetun pääoman tuotosta saavutettu. Jossain tilanteissa voidaan jopa todeta, että on tiettyjä ominaisuuksia, jotka sopivat ohjelmistoon, mutta niiden sijoitetun pääoman tuotto on niin pieni, että niitä ei kannata toteuttaa.
Elinkaari
Erityisesti uuden ohjelmiston kehityksen alkaessa kannattaa valita uusin vakaaksi valittu sovelluskehitysympäristö ja tuotteiden toimittaja, jota voi pitää pitkäaikaisena kumppanina. Tällä hetkellä esimerkiksi Visual Studio 2008, C# ja SQL Server 2008 on hyvä yhdistelmä. Mikäli ns. pelataan varman päälle ja tuotekehitys tehdään samoilla välineillä kuin viimeiset viisi vuotta on tehty, on riskinä, että tuotteen elinkaari selkeästi lyhenee. Elinkaari on harvoin kuitenkaan yli kymmentä vuotta ja jos jo alussa siitä otetaan pois viisi vuotta, sijoitetun pääoman tuotto pitkällä aikavälillä heikkenee merkittävästi. Kannattaa kuitenkin varoa beta-vaiheessa olevien tuotteiden ongelmista johtuvaa hidastumista projektissa sekä pienten shareware toimittajien tuotteita, vaikkakin niillä voisi lyhyellä aikavälillä säästää ja saada nopeasti näyttävää ulkonäköä aikaiseksi.
Sovelluskehitys
Me lähdemme siitä, että asiakkaille tarjotaan parasta laatua, mitä markkinoilta saa. Haluamme tehdä sovelluskehitystä ketterien prosessien mukaisesti ja kerromme mielellään näistä lisää. Pyrimme tarjoamaan ja käyttämään uusimpia, suurimpien alan toimijoiden teknologioita ja standardeja.
Haluamme, että sovelluskehitys on tehokasta ja positiivista yhteistyötä, jolla on jatkuvuutta ja asiakkaamme saa juuri sellaisen tuotteen, mistä sijoitetun pääoman tuotto on korkein mahdollinen ja elinkaari on pitkä. Teemme parhaamme, että pystymme jopa ylittämään odotukset.