Ohjelmistotuotantoprosessin parantaminen

Yleistä

Tietotekniikka kehittyy yhä erittäin nopeasti ja ohjelmistotalot kehittävät yhä monimutkaisempia järjestelmiä eri sovellusalueille. Järjestelmät ovat usein huonolaatuisia ja niiden ylläpito on erittäin kallista. Kustannustavoitteiden ja aikarajojen ylitykset ovat ohjelmistotalojen jokapäiväinen ongelma. Vaikka ohjelmistotuotannon teknologiat kehittyvät nopeasti koko ajan, kehitys ei ole merkittävästi vaikuttanut ohjelmistotuotannossa käytettyihin menetelmiin. Motivaatio tuotantoprosessin parantamiselle löytyykin tavallisesti yrityksen tarpeista saavuttaa korkeampaa ohjelmiston laatua, pienemmät kehityskustannukset, nopeampi kehitysaika tai parempi ohjelmistotuotteiden ja -prosessien ennustettavuus ja kontrolloitavuus.

Ohjelmistotuotantoprosessi koostuu joukosta toimintoja, joiden onnistuneen toteutuksen tuloksena syntyy haluttu lopputulos. Tehokas tuotantoprosessi ottaa huomioon näiden toimintojen, käytettyjen työkalujen, käytettyjen tuotantomenetelmien sekä prosessiin osallistuvien ihmisten väliset suhteet ja ominaispiirteet.

Ohjelmistotuotantoprosessia voidaan parantaa monilla eri tavoilla, parannuskohteita voivat olla esimerkiksi prosessin hallintatapa, käytetyt menetelmät, käytetyt työkalut tai jopa organisaatiorakenne. Muutosten toteutus täytyy suunnitella huolellisesti, sillä huonosti toteutetut muutokset aiheuttavat helposti muutosvastarintaa.

Prosessin parantamisen perusvaatimukset

Kuusi prosessinparantamisen perusvaatimusta ovat:

Kolme tehokkaan muutoksen avainelementtiä ovat suunnittelu, toteutus ja kommunikointi. Suunnitteluvaiheesen pitäisi osallistua edustajia kaikista ryhmistä, joihin muutokset vaikuttavat. Tällä varmistetaan suunnitelman toimivuus ja hyväksyttävyys. Toteutus on hyvä aloittaa aluksi pienessä mittakaavassa kokeenomaisesti ja näin varmistaa suunnitelman toimivuus.

Prosessin parantamisen vaiheet

Tuotantoprosessin parantamisesta voidaan erottaa seuraavat kuusi vaihetta:

SEI jakaa prosessin parantamisen kuvan 1 mukaisesti viiteen päävaiheeseen:

Prosessin parantamisen
vaiheet

Kuva 1. SEIn IDEAL malli prosessin parantamisen vaiheista

Aloittamisvaiheessa määritellään liiketoimintatavoitteista peräisin olevat syyt prosessin parantamisen toteuttamiseen. Prosessinparantamisen liittäminen liiketoiminnan tavoitteisiin on tarpeen ylimmän johdon tuen varmistamiseksi prosessinparannushankkeelle jo sen alkuvaiheessa.

Diagnosointivaiheessa selvitetään yrityksessä tällä hetkellä olevien prosessien tila, erityisesti prosessien vahvuudet ja heikkoudet. Selvityksen perusteella voidaan prosessinparannushankkeet priorisoida.

Suunnitteluvaiheessa määritellään lopullisesti strategia prosessinparannushankkeen toteuttamiseksi. Vaihe määrittelee parannushankkeen suunnan ja ohjeet seuraaviksi 3-5 vuodeksi.

Toteutusvaiheessa parannustoimenpiteet toteutetaan käytännössä siten, että tehdyt muutokset ovat tulevaisuudessa helposti ylläpidettäviä. Vaihe sisältää prosessien määrittelyä ja mittaamista, pilottitestejä ja uusien prosessien käyttöönottoa koko organisaatiossa.

Viimeisessä vaiheessa arvioidaan saavutetut tulokset. Pilottiprojekteista ja parannusyrityksistä saadut kokemukset dokumentoidaan ja analysoidaan jolloin saatuja kokemuksia voidaan hyödyntää seuraavissa parannusohjelmissa. Alkuvaiheessa asetettujen liiketoiminnallisten tavoitteiden toteutuminen tarkastetaan ja esitellään saavutetut tulokset ylimmälle johdolle.

Prosessinparantamisen aikana on suoritettava jollakin tavalla mittauksia, joilla voidaan todeta prosessin parantamisen onnistuminen. Että prosessin tasoa voidaan mitata, täytyy olla

Prosessin kypsyystasot

SEI (Software Engineering Institute) esittää tietotekniikkaorganisaatioiden kypsyystasolle seuraavan asteikon:

Tasolla 1 olevissa yrityksissä ei käytetä standardeja eikä yhdenmukaisia työtapoja. He eivät myöskään tee projektisuunnitelmia eivätkä projektien kustannusarvioita. Jokainen projektipäällikkö toimii omalla tavallaan, ja tämä toimintatapa on muodostunut pelkästään hänen omien kokemuksiensa perusteella. Tulosten saavuttamiseksi tarvittavat toiminnot toteutetaan ilman etukäteissuunnittelua:

Toiminnot ja tulokset

Kuva 2. Tasolla 1 oleva tuotantoprosessi

Tasolla kaksi olevissa yrityksissä prosessit ovat toistettavia ja yrityksen sisällä vallitsee tietty yhteisymmärrys toimintatavoista. Prosessien toistettavuus perustuu kuitenkin vain yrityksen sisäisiin toimintatapoihin ja mikä tahansa muutos voi aiheuttaa toistettavuudesta saatavien hyötyjen menetyksen. Edelliseen tasoon verrattuna tarvittavia toimintoja kuitenkin suunnitellaan ja tuloksia arvioidaan ja näitä arviointituloksia käytetään tulosten parantamiseen:

Toiminnot, tulokset, valmistelu ja
arviointi

Kuva 3. Tasolla 2 oleva tuotantoprosessi

Tasolla kolme ohjelmistotuotannon menetelmät on selkeästi määritelty ja yritykselle sopiva ohjelmistotuotantoprosessin elinkaari on vakiintunut. Käytössä on johdonmukainen joukko suunnittelumenetelmiä ja -tekniikoita, jotka tukevat prosessin elinkaarta. Projektiryhmät hyödyntävät organisaatiossa olemassa olevaa tietoa standardiprosesseista tehtävien suunnittelussa ja tulosten arvioinnissa soveltaen sitä kyseiseen projektiin:

Toiminnot, tulokset, valmistelu,
arviointi ja standardit

Kuva 4. Tasolla 3 oleva tuotantoprosessi

Neljännellä tasolla olevissa yrityksissä on lisäksi käytössä ohjelmistotyön ja sen tulosten mittaaminen. Tuotantoprosessi on niin yhdenmukainen, että organisaatiossa olemassa olevien tietojen perusteella voidaan tehdä johtopäätöksiä tuotantoprosessin lopputuloksista jo toimintojen valmisteluvaiheessa:

Toiminnot, tulokset, valmistelu,
arviointi, standardit ja ennustettavuus

Kuva 5. Tasolla 4 oleva tuotantoprosessi

Viidennellä tasolla mittaustuloksia käytetään hyväksi ohjelmistotuotantoprosessin jatkuvassa parantamisessa. Tasolla 5 olevissa organisaatioissa toteutetaan prosessi, joka aikaansaa tulokset joita puolestaan käytetään olemassa olevan prosessin parantamiseen. Prosessista on tullut itsekorjaava ja jatkuvasti uudistuva ja parantuva:

Toiminnot, tulokset, valmistelu,
arviointi, standardit, ennustettavuus ja jatkuva kehitys

Kuva 6. Tasolla 5 oleva tuotantoprosessi

SPICE:n viitemallissa on prosessille puolestaan määritelty kuusi kyvykkyystasoa:

Tasolla 0 prosessin tavoitteen saavuttamisessa epäonnistutaan. Prosessilla on vain muutamia tai ei yhtään helposti tunnistettavaa lopputulosta. Seuraavalla tasolla (taso 1) prosessin tarkoitus yleisti saavutetaan, mutta sen suoritus ei ole tiukasti suunniteltu tai jäljitettävissä. Organisaation jäsenet tiedostavat, että toiminto tulee suorittaa ja on olemasssa yleinen sopimus siitä, että toiminto suoritetaan niin vaadittaessa. Prosessin tulokset on tunnistettu ja ne todistavat prosessin tarkoituksen saavuttamisen.

Tasolla 2 oleva prosessi tuottaa tuotteensa määriteltyjen toimintatapojen avulla ja on suunnniteltu sekä jäljitettävissä. Tuotteiden on tarkoitus vastata määriteltyjä standardeja ja vaatimuksia. Suurin ero edelliseen tasoon on, että prosessin tuotteiden oletetaan täyttävän määritellyt laatuvaatimukset annettujen aikataulujen ja resurssien rajoissa.

Tasolla 3 oleva prosessi suoritetaan ja hallitaan käyttämällä määriteltyjä hyvän ohjelmistotuotantotavan mukaisia periaatteita. Prosessin yksittäiset toteutukset suoritetaan hyväksytyn ja räätälöidyn standardin sekä dokumentoidun prosessin mukaisesti, jotta asetetut tulokset saavutettaisiin. Prosessin toteuttamisessa tarvittavat voimavarat on määritelty. Suurin ero edelliseen tasoon on se, että vakiintuneella tasolla pitää käyttää määriteltyjä prosesseja, joiden avulla prosessin tulos on tarkoitus saavuttaa.

Tasolla 4 prosessi tulee suorittaa jatkuvasti kontrolloidun käytännön mukaan määriteltyjen tavoitteiden saavuttamiseksi. Prosessin suorituskyvystä tulee kerätä yksityiskohtaista tietoa ja se pitää analysoida. Tämän on tarkoitus johtaa prosessin kyvykkyyden määrälliseen ymmärtämiseen ja kasvaneeseen kykyyn ennustaa ja hallita prosessin suorituskykyä. Prosessin suorituskyvyn on tarkoitus olla määrällisesti hallittu sekä prossessin tulosten laatu tulisi olla määrällisesti tiedossa. Suurin ero edelliseen tasoon on se, että prosessi on tarkoitus suorittaa jatkuvasti kontrolloidusti prosessin tulosten saavuttamiseksi.

Tasolla 5 prosessin suorittaminen optimoidaan ottamalla huomioon liiketoiminnan nykyiset ja tulevat tarpeet. Prosessin tulisi onnistua toistuvasti täyttämään liiketoiminnan tavoitteet. Prosessin suorituskyvyn määrällisten tehokkuus- ja pätevyystavoitteiden tulisi olla vakiintuneita organisaation liiketoiminnan tavoitteiden mukaisiksi. Prosessin jatkuva valvonta näiden tavoitteiden pohjalta mahdollistetaan määrällisen palautteen avulla ja prosessin parantaminen on tarkoitus saavuttaa tulosten analysoinnilla. Prosessin optimointi vaatii innovatiivisia ideoita, teknologiaa sekä tehottomien prosessien muuttamista siten, että ne vastaavat määritettyjä tavoitteita ja päämääriä. Ensisijainen ero edelliseen tasoon on se, että määritetyt ja standardoidut prosessit dynaamisesti muuttuvat ja mukautuvat tehokkaasti vastaamaan liiketoiminnan nykyisiä sekä tulevia tavoitteita.

Prosessin arviointi

Prosessia arvioidessa on syytä muistaa, että jokainen projekti on erilainen. Kaiken arvioinnin tulisi perustua kokemushistoriaan, mutta arvioinnin tulee kuitenkin ottaa huomioon myös arvioitavan projektin erityispiirteet.

Ohjelmistotuotantoprosessin parantamisella on tärkeä rooli parannettaessa tuotteiden laatua ja projektien kykyä pysyä budjeteissa ja aikatauluissa. Tuotantoprosessin arvioinnilla on puolestaan tärkeä rooli etsittäessä ja määritettäessä prosessin parannuskohteita ja siten ohjelmistoprosessien arvioinnilla on tärkeä osa paitsi prosessien kehittämisessä myös tuotteiden laadun kehittämisessä:

Ohjelmistoprosessin
arviointi

Kuva 7. Ohjelmistoprosessin arviointi SPICE standardin mukaan

Ohjelmistoprosessin arvioinnilla tarkoitetaan organisaation ohjelmistoprosessin kurinalaista arviointia, joka tehdään tavallisesti vertaamalla organisaation prosesseja jotakin arviointimallia vastaan. Prosessin kyvykkyydellä tarkoitetaan prosessin kykyä saavuttaa sille asetetut päämäärät. Ohjelmistoprosessin arviointi suoritetaan tavallisesti jotakin arviointikehystä tai standardia vastaan. Nämä tuottavat vertailukriteerit yrityksen toimintatavoille.

Prosessin kyvykkyyden arviointi tarkoittaa sen arviointia, miten paljon kullakin tasolla on saavutettu haluttuja ominaisuuksia. Arviointi perustuu tosiasioihin, todisteisiin ja tulkintoihin. Koska organisaatioiden kypsyyteen tai prosessien kyvykkyyteen liittyvät arviot annetaan arvioinnin aikana tai sen seurauksena niin arviointia voidaan pitää mittausmenetelmänä. Kuitenkin koska arviointitulokset riippuvat arvioijasta niin mittausmenetelmä ei ole täysin objektiivinen.

Liiketoiminnan tavoitteista johdetut ohjelmistotuotannon parantamiskohteet ohjaavat arvioitavien prosessien valintaa, parantamistavoitteiden tunnistamista ja viimekädessä tehokkaimpien parantamiskeinojen tunnistamista. Jokaista parantamiskohdetta tulisi kohdella omana projektinaan. Projektit tulisi suunnitella huolellisesti, hallita riskit ja tiedottaa projektin etenemisestä asianomaisille.

Prosessin arviointi aloitetaan valmistelemalla arvioinnin syötteet:

Arviointiryhmän suorittaman arvioinnin tuloksena saadaan:

Esimerkiksi SPICE-arvioinnin aikana tarkastellaan prosessiin liittyviä käytäntöjä ja niiden suorittamiseen liittyviä työtuloksia ja annetaan prosessille arvosana soveltaen seuraavaa asteikkoa:

Arviointitulosten analysointi tuottaa tietoa prosessin nykyisistä vahvuuksista ja heikkouksista sekä osoittaa parantamismahdollisuudet. Analysoinnin pohjalta

Prosessin parannusalueita tunnistettaessa ne asetetaan myös tärkeysjärjestykseen, joka perustuu seuraaviin tekijöihin:

Johdon tulee hyväksyä parannusalueet, kohteet ja tavoitteet ja päivittää prosessin parantamissuunnitelmaa ja siten sitouttaa organisaatio suorittamaan suunnitellut parannukset. Päätökset tulee viestiä selvästi kaikelle henkilökunnalle johon se vaikuttaa.

Prosessin parantamisen toteuttaminen

Prosessin parantaminen voidaan yksinkertaistaa seuraaviin vaiheisiin:

Toimenpiteiden dokumentoimisessa huomioitavia asioita:

Toteutusvaiheessa on olennaista riittävän ja selvän palautteen antaminen toimenpiteiden käyttöönoton onnistumisesta.

Pyrittäessä kaoottisesta prosessista toistuvaan prosessiin parantamisen tärkeimmät osa-alueet ovat:

Siirryttäessä käyttämään uudenlaista tuotantoprosessia, on olennaista säilyttää myöskin vanha prosessinhallintamenetelmä siihen saakka, kunnes organisaatio on osoittanut kykynsä toimia uuden suunnitelman mukaisesti.

Kypsyystason ollessa toistuva tuotantoprosessin hallintajärjestelmä itsessään motivoi organisaatiota parantamaan tuotantoprosessin kypsyystasoa edelleen. Organisaatio on tällöin kohtuullisen kehittynyt ja sillä on käytössään monia hyviä käytäntöjä. Edellä kuvattujen kehityskohteiden lisäksi tulisi kiinnittää huomiota seuraaviin kohtiin:

Prosessin kypsyystason ollessa määritelty tai sitä parempi organisaatio hallitsee tehokkaasti tuotantoprosessiaan. Tällöin on korostettava prosessin jatkuvaa kehittämistä, ja tärkeimmät kehitysalueet ovat:

Tuotelaadun kehittäminen

Yksi parhaista menetelmistä tietotekniikkaorganisaatioiden arvioinnissa on niiden tuottamien tuotteiden laadun arviointi. Tuotteiden laatu kuvaa usein myös tuotantoprosessin laatua.

Tuotteen laadun mittaamisessa tulee mahdollisuuksien mukaan käyttää mahdollisimman objektiivisia ja yksiselitteisiä, numeerisia mittareita. Niiden tulee vaatia mahdollisimman vähän inhimillistä arviointia. Tyypillisiä mittareita ovat esimerkiksi virheiden löytymistiheys prosessin eri vaiheissa tai testauksen kattavuus.

Mittareita tulee olla enemmän kuin yksi, mutta ei kuitenkaan liian monta. Mikäli laatua mitataan vain yhdellä mittarilla, tähän kyseiseen ominaisuuteen saatetaan kiinnittää liikaa huomiota tuotteen muiden ominaisuuksien kustannuksella. Liian moni mittari puolestaan saattaa sekoittaa.

Tuotteen laadun tarkkailussa noudatettavat pääperiaatteet ovat:

Yrityksen laatutavoitteiden tarkoitus on parannuskohteiden etsiminen eikä työntekijöiden arviointi. Tavoitteiden tulee olla haasteellisia: mikäli tavoitteet saavutetaan aina, prosessinparantamiselle ei löydy motivaatiota. Yrityksen johdon asettamien laatutavoitteiden lähtökohta voisi olla:

Mikäli asetetut laatutavoitteet ylitetään, laatutavoitteet asetetaan korkeammalle. Mikäli asetetut laatutavoitteet alitetaan, käytettyjen mittareiden pitäisi osoittaa parannuskohdat joita muuttamalla laatutavoitteet saavutetaan.

Projektikohtaisen laatusuunnitelman laatimisessa noudatetaan seuraavia periaatteita:

Yrityksen laatujärjestelmää ja sen ylläpitoa on selvitetty tarkemmin sivulla Laadunhallinta.


Vain jäsenille: