8.10.2013

Ketterät IT-sopimukset

Viime vuosina on tietojärjestelmäprojektien yhteydessä enenevässä määrin keskusteltu ns. ketterästä ohjelmistokehityksestä ― englanniksi käytetään usein termiä ”agile”. Tässä tuotantomenetelmässä ei välttämättä ole mitään erityisen uutta, mutta sopimusteknisesti ketterät mallit edellyttävät totutusta poikkeavia sopimusmekanismeja. Esimerkiksi IT2010-ehtojen soveltaminen sellaisenaan voi johtaa ristiriitaisuuksiin.

Perinteinen malli
Tietojärjestelmäprojektin perusmallia kutsutaan yleisesti vesiputousmalliksi. Lähtökohta tällöin on sama kuin tavaroiden tuottamisessa ja rakentamisessa eli ensin suunnitellaan tuote valmiiksi ja toteutus pyritään tekemään suunnitelman mukaisesti mahdollisimman vähin muutoksin. Vesiputousmallille on tyypillistä kehityksen eteneminen vaiheittain siten, että peräkkäin seuraavat vaatimusten määrittely, suunnittelu, toteutus eli implementointi, testaus, integrointi ja ylläpito.

Ketterä kehitys
Ketterässä ohjelmakehityksessä ohjelmistoa valmistetaan lyhyempinä toistuvina vaiheina siten, että ohjelmistokehitys etenee iteratiivisesti jaksoissa. Jokainen jakso tuottaa toimivaa ohjelmistoa. Tuotteen vaatimukset asetetaan ja priorisoidaan ennen kunkin jakson alkamista. Asiakas voi toteutusvaiheen aikana lisätä uusia vaatimuksia. Toimittajan tuotos hyväksytään aina erikseen kunkin jakson osalta. Parhaiten ketterät menetelmät soveltuvat sellaisiin tietojärjestelmäprojekteihin, joissa vaatimuksia ei ole mahdollista tai tarkoituksenmukaista määritellä tarkasti etukäteen.

Sopimusmekanismi
Alalla käytettävät IT-toimituksia koskevat yleiset IT2010-sopimusehdot on laadittu silmällä pitäen vesiputousmallin mukaisia toimitusprojekteja. Tämän johdosta ne eivät sellaisenaan sovellu käytettäviksi ketterässä ohjelmistokehityksessä. Sopijapuolten on erikseen sovittava paitsi käytettävästä tuotantomenetelmästä, myös asiakkaan tehtävistä, projektiorganisaatiosta, hyväksymismenettelyistä ja mahdollisista sanktioista sekä asiakkaan mahdollisesta oikeudesta lopettaa projekti ennenaikaisesti.

Monivaiheisessa projektissa on yleensä syytä tehdä puitesopimus, jossa määritellään kaikkiin projektin osasopimuksiin liittyvät sopimusasiat. Puitesopimuksen lisäksi tehdään osaprojektikohtaiset alasopimukset, joissa sovitaan ko. toimituksen hinnoittelusta, tarpeellisista määrittelyistä, aikataulusta ym. seikoista.

Erot IT2010-ehtoihin
Seuraavassa on otettu esille muutamia esimerkkejä niistä seikoista, jotka vaativat huomiota ketterästä toimituksesta sovittaessa erityisesti, jos halutaan taustalla hyödyntää IT2010-ehtoja. Niissä lähtökohta on, että asiakas määrittelee ohjelmiston vaatimukset ja sen jälkeen pyytää eri toimittajilta kiinteähintaisia tarjouksia tietojärjestelmän toimittamisesta. Kiinteän hinnan hyvä puoli asiakkaalle on varmuus (sikäli kuin sitä järjestelmätoimituksissa voi olla) siitä, kuinka paljon tietojärjestelmäprojekti tulee ilman muutoksia maksamaan. Ketterässä kehityksessä saman laajuista etukäteistä vaatimusmäärittelyä ei tehdä ja siten myös kustannusten määrittely ja sopiminen tulee tehdä eri pohjalta. Ketterän ohjelmistokehityksen periaatteiden mukaisesti erillistä muutoksenhallintaprosessia ei ole, vaan muutoksenhallinta on osa varsinaista kehitysprosessia. Ennen kutakin iteraatiota sovitaan, mikä tai mitkä toiminnallisuudet toteutetaan seuraavaksi.

Erovaisuuksia on myös siinä, miten IT2010-ehtojen mukaisen projektin organisaatio soveltuu ketterän toimituksen käsitteisiin ja rooleihin. IT2010-ehdoissa määritellyn projektiorganisaation roolit eivät sellaisenaan ole yhteensopivat kaikkiin ketterien menetelmien organisaatioihin.

Samaten merkittävä ero on myös hyväksymismenettelyissä. IT2010-ehtojen mukaan tietojärjestelmän hyväksyminen asiakkaan puolesta tapahtuu projektin viimeisenä vaiheena. IT2010-ehdot lähtevät siitä olettamasta, että koko ohjelmisto toimitetaan kerralla ja hyväksymistesti kohdistuu kokonaisuuteen. Ketterän projektin kuluessa kukin iteraatio eli jakso hyväksytään erikseen. Ketterää toimitusta koskevan sopimuksen laatimisessa joudutaankin näin ollen ottamaan kantaa siihen, minkälainen oikeusvaikutus annetaan iteraatioiden hyväksymisille ja miten koko toimitus mahdollisesti hyväksytään.

IT2010-ehtojen mukaan takuuaika alkaa pääsääntöisesti tietojärjestelmän tai erikseen sovittujen osatoimitusten hyväksymisestä. Osasuorituskäsitteen käyttäminen iteraatiokohtaisesti johtaisi siihen, että tietojärjestelmän osat sisältäisivät useita takuuaikoja, joilla olisi eri alkamis- ja päättymisajankohdat.

Kokoavasti voidaan todeta, että ketterät ohjelmistokehitysmenetelmät edellyttävät uudentyyppistä ajattelutapaa myös sopimusmekanismien osalta. Perinteiset projektinhallintamekanismit, hyväksymis-, muutos- ym. menettelyineen tulee määritellä uudelleen. Sopimuksen laatimisessa onkin hyvä käyttää asiantuntevaa apua.

Tatu Kulmala