Olemme tänäkin vuonna saaneet lukea useita lehtijuttuja liittyen kohtalaisen epäonnistuneisiin ohjelmistoprojekteihin. Vaikka asialla on vankat toimijat ja piinkovat ammattilaiset, voi projekti siitä huolimatta niin sanotusti kosahtaa. Kasasimme muutamia mietteitä asioista, joihin tulee kiinnittää huomiota aina ohjelmistoprojektiin ryhtyessä.
Valitse kumppani, joka ymmärtää aidosti liiketoimintaanne
Ohjelmistokumppanin valinnassa painotetaan perinteisesti teknisiä asioita, kuten ratkaisussa käytettävää koodikieltä. Huomattavasti tärkeämpää on kuitenkin suunniteltavan ohjelmiston määritteleminen, projektin toimintamalli sekä etenkin sen johtaminen. Nykyaikaisissa ohjelmistoprojekteissa tulee myös keskittyä ohjelmien käytettävyyteen sekä visuaaliseen puoleen.
Valitse kumppani, joka tietää mitä tarvitsette, ymmärtää sen merkityksen liiketoiminnalle sekä osaa toteuttaa projektin alusta loppuun sujuvasti. Varmista referenssit sekä pyydä tarvittaessa projektitiimin CV. Palveluntarjoajalta voi parhaimmillaan tulla kultaakin kalliimpia ajatuksia ja vinkkejä ohjelmiston kehittämiseen sekä sen toiminnallisuuksiin.
Projektin elinkaari
Lähes kaikkien ohjelmistoprojektien aloitus ja toteutus kulkevat saman prosessin mukaisesti. Asiakas on tunnistanut tarpeen, kuten asiakaskokemuksen kehittämisen tai toiminnan tehostamisen. Useimmiten tarve on vielä vahvasti ajatus- ja ideatasolla, sillä asiakkaalla ei ole riittävää osaamista jäsennellä sitä toteutettavaksi projektiksi. Tässä astuvat kuvaan meidän asiantuntijamme, joiden kanssa ideaa ruvetaan yhdessä työstämään.
Projektin alussa on erittäin tärkeää, että asiantuntijat, projektin vetäjä sekä myös mahdolliset toteuttajat, eli koodarit, tutustuvat huolellisesti asiakkaan liiketoimintaan. Jäsentelemme yhdessä asiakkaan kanssa alustavan idean projektiksi, jonka avulla rakennetta ja kustannuksia aletaan hahmottamaan. Mielestämme kaikkia ideoita ei aina ole kannattavaa toteuttaa räätälöitävillä ohjelmistoilla, jonka vuoksi suunnitteleva työvaihe on merkittävässä roolissa onnistumisen kannalta.
Ohjelmistoprojekteissa kuitenkin usein unohtuu suunnitteluvaihe ja tarkat määritelmät, jolloin kustannusarvio lyödään pöytään liian nopeasti ja hatarin tiedoin. Tämän jälkeen aloitetaan aktiivinen koodaaminen ja unohdetaan kertoa asiakkaalle projektin etenemisestä. Tällä tavoin saadaan kyllä ohjelma aikaiseksi, mutta se harvoin ratkaisee asiakkaan alkuperäisen ongelman. Projektissa unohtuu usein se fakta, että suurin osa ohjelmistoprojektin kustannuksista saattaa tulla siitä, kun jo tehtyjä valmiita ominaisuuksia määritellään ja toteutetaan uudelleen.
Projektimallin valinta jämerästä ketterään
Suosimme ohjelmistoprojekteissa niin sanottuja ketteriä menetelmiä (kuten Scrum, Scrumban ja KanBan). Ketterät menetelmät tarkoittavat yksinkertaisesti sitä, että projektin aikana käydään jatkuvaa kommunikaatiota asiakkaan ja projektitiimin välillä. Projektin toteutus palastellaan osiin, joita asiakas pääsee testaamaan ja kommentoimaan tasasin väliajoin. Projektin aikana on täysin luvallista ja suotavaa muuttaa mieltään, ja määritellä asioita uudelleen, kuitenkin pitäen alkuperäisen liiketoimintatarpeen tiukasti mielessä.
Ketterän kehityksen vastakohtana on niin sanottu vesiputousmalli. Tässä mallissa tehdään tarkat määrittelyt, jotka luovutetaan eteenpäin koodareille. Tämän jälkeen koodarit toteuttavat ohjelman juuri kuten määrittelyissä lukee, riippumatta siitä onko se järkevin tapa vai ei. Tämä malli synnyttää lähes poikkeuksetta toimivan ohjelmiston, mutta se ei vastaa lainkaan alkuperäistä tarvetta. Tilanne ei suinkaan johdu koodarien osaamattomuudesta, vaan tarkkojen määrittelyiden tekemisen mahdottomuudesta.
Tarve ketterille menetelmille on syntynyt juuri tästä syystä. Lähes poikkeuksetta, kun valmiin ohjelmiston näkee visuaalisesti, syntyy huomattava määrä uusia ideoita ja/tai huomataan, että alkuperäisen idean kaikki osat eivät käytännössä toimi yhteen. Mikäli ohjelmisto on tässä vaiheessa valmis, on selvää, että menetetyn ajan ja kustannusten määrä on huomattava.
Raakaversiosta lopulliseen toteutukseen
Suosittelemme toteuttamaan ideasta ns. raakaversion, jota voidaan helposti testata. Tämän jälkeen mietitään yhdessä, ratkaiseeko ohjelma alkuperäisen ongelman sekä mitä mahdollisia muutoksia siihen vielä tarvitaan. Vasta tämän jälkeen ohjelma tai sen osa viimeistellään lopulliseen muotoonsa.
Näitä ns. iteraatiokierroksia voi olla projektissa tarvittaessa useita ja tapaa kutsutaankin nimenomaan ketteräksi kehitykseksi. Ketterän kehityksen työtavat vaativat vahvaa projektin vetämistä paitsi toimittajan myös asiakkaan puolesta.
Olemme Integralilla viime aikoina nimenomaan keskittyneet projektijohtamisen kehittämiseen ja vaadimme myös asiakkailtamme vahvaa osallistumista kehitysprojekteihin. Tämä saattaa kuulostaa oudolta, mutta kokemustemme mukaan ketterät menetelmät säästävät selvää rahaa ja aikaa. Ennen kaikkea haluamme varmistaa sen, että lopputulos on juuri sellainen mitä on tarvittu ja toivottu.
Käyttäjäkokemus ja visuaalisuus
Viime vuosina asiakkaat ovat alkaneet vaatimaan niin valmiilta, kuin räätälöidyiltäkin ohjelmistoilta helppoa käytettävyyttä, yksinkertaisuutta ja visuaalisuutta. Enää ei riitä, että ohjelmisto toimii teknisesti.
Olemme vastanneet asiakkaidemme tarpeisiin vahvistamalla tiimiämme entisestään niin visuaalisen suunnittelun osaamisella kuin käytettävyyssuunnittelun taidoillakin. Kaikki tämä osaaminen on luonnollisesti mukana jokaisessa ohjelmistoprojektissa.
Otathan yhteyttä, mikäli mielessäsi on idea, joka voisi parantaa asiakaskokemusta tai tehostaa liiketoimintaanne. Lähdetään työstämään projektia yhdessä eteenpäin.