Hyvä koodari pitää projektin budjetin kunnossa

Usein ajatellaan, että ohjelmoijan tehtävä on ohjelmoida ja asiakkaan vastuulle jää projektin suitsiminen siten, että projektin budjetti ei karkaa käsistä. Hyvä nörtti kuitenkin pitää huolta myös kustannusten pysymisestä aisoissa ja varmistaa, että ohjelmiston hankinta on asiakkaalle kannattava investointi tulevaisuuteen.

Tietojärjestelmäprojektien tarpeilla ja vaatimuksilla on tapana muuttua ja kehittyä projektin edetessä. Kun tietämys ja kokemus lisääntyy sekä tilaajalla että ohjelmoijalla, voidaan projektin kuluessa todeta, että alkuperäinen suunnitelma ei olekaan täydellinen. Tarve, jota uudella järjestelmällä lähdettiin täyttämään voi ollakin toissijainen, jonkin muun tarpeen ollessa merkittävästi tärkeämpi. Tiheät keskustelut tilaajan ja toimittajan kesken auttavat tekemään muutoksia suunnitelmiin ketterästi  kun tilanne niin vaatii.

Ohjelmoijan ja tilaajan välisen tiiviin yhteistyön merkitys näkyy myös budjetissa. Ohjelmoijan tehtävänä on pitää tilaaja jatkuvasti tietoisena eri ratkaisuvaihtoehtojen kustannusvaikutuksista. Hyvä ohjelmistotoimittaja uskaltaa kyseenalaistaa tilaajan toiveita. Tämä ei tarkoita sitä, etteikö asiakas olisi oikeassa. Koodarin tehtävänä on kuitenkin varmistaa, että hän on ratkaisemassa asiakkaan kannalta tärkeintä mahdollista ongelmaa.

14084-175

Olen ansainnut elantoni lähemmäs kahdenkymmenen vuoden ajan ohjelmistoprojektien parissa. Joskus projekti päällikkönä ja joskus ohjelmakoodia tuottavana koodarina. Kun muistelen vuosia taaksepäin, ei muistu mieleeni ainoatakaan projektia, missä järjestelmälle asetettavat vaatimukset eivät olisi muuttuneet tuotekehityksen aikana. Hyvin usein syy muutokselle on kaupan este. Asiakas (eli tietojärjestelmän tilaaja ja tuleva ylpeä omistaja) esittelee tulevaa järjestelmää omille asiakkuuksilleen (eli loppukäyttäjille)  jo tuotekehitysprojektin aikana ja pyrkii saamaan kaupaksi järjestelmään perustuvia palveluita.

Ostaisin teiltä tämän palvelun muuten, mutta sehän ei vielä tee asiaa X

Myyntitilanteissa loppukäyttäjät monesti huomauttavat järjestelmissä olevista puutteista, joita ei alunperin ole osattu ajatellakaan. Yleensä kommentit ovat muotoa: “Ostaisin teiltä tämän palvelun muuten, mutta sehän ei vielä tee asiaa X”. Koska ketterä kehitys mahdollistaa suunnitelmien muuttamisen kesken projektin voivat järjestelmän kehittäjä ja tilaaja sopia, että tällainen kaupan este poistetaan hetimiten, jotta projekti alkaa tuottamaan rahavirtoja tilaajalle mahdollisimman nopeasti.

Ohjelmistoratkaisuilla on käytännössä mahdollista tehdä lähes mitä tahansa, jolloin toiveita esitettäessä mopo karkaa joskus käsistä. Siksi on mahdollista, että epähuomiossa keskitytään tekemään toimenpiteitä, joiden takaisinmaksuaika on huomattavasti muita seikkoja pidempi. Kun tärkeimmät asiat hoidetaan ensin, varmistetaan, että järjestelmän toteuttaminen maksaa itsensä takaisin mahdollisimman nopeasti. Keskitytään niihin asioihin jotka tuovat tilaajalle rahaa pankkitilille mahdollisimman nopeasti.

Hyvä ohjelmistotoimittaja ajattelee aina asiakkaan etua ja sitä, mitä asiakas palvelusta saa. Yritystoiminnassa yleensä tärkeintä on se, mitä jää viivan alle. Kun ohjelmistotoimittaja ja tilaava rakentavat järjestelmää yhdessä, he myös menestyvät yhdessä. Asiakkaan etu on myös ohjelmistotoimittajan etu.