ProHAKE - kohti ohjelmistotuotannon parempaa hallintaa

Kari Känsälä, johtava konsultti, Nokia Tutkimuskeskus

Johtavat suomalaiset ohjelmistotuotantoprosessia tutkivat ja kehittävät organisaatiot ovat paraikaa TEKESin tuella viemässä läpi tutkimusohjelmaa ohjelmistoprosessiteknologian edistämiseksi ja hyödyntämiseksi Suomessa. Tässä ProHAKE-ohjelmassa keskitytään ohjelmistotuotantoprosessin arvioimiseen, mallintamiseen ja mittaamiseen sekä näiden pohjalta tapahtuvaan prosessin parantamiseen. Ohjelmaa koordinoi Nokia Tutkimuskeskus ja siinä ovat lisäksi mukana Oulun yliopisto, CCC-yhtiöt, VTT Elektroniikka, TIEKE ja TKK sekä joukko suomalaisia yrityksiä tulosten soveltajina. Kohteena on erityisesti ns. sulautettujen järjestelmien ohjelmistotuotanto, mutta myös monia ohjelmistotaloja ja yritysten atk-osastoja on soveltajayritysten joukossa.

Ohjelmistotuotannon perusongelmista kuten ohjelmistojen huonosta laatutasosta, projektien aikataulujen venymisestä ja alati kohoavista kustannuksista on pitkään yritetty päästä eroon tehostamalla ohjelmistotyötä yksittäisin menetelmin ja välinein, esimerkiksi uusin määrittely- ja suunnittelumenetelmin tai CASE-välineiden avulla. Todellisuudessa ongelmat ovat monesti olleet enemmänkin itse tuotantoprosessissa ja sen hallinnassa. Kun sulautetun ohjelmistotuotannon osuus suomalaisesta ohjelmistotyöstä on tällä vuosikymmenellä erittäin nopeasti kasvanut, on samalla kasvaneiden prosessinhallinnan ongelmien ratkaisemista ollut pakko nopeuttaa.

Ohjelmistoprosessin kehittäminen

Ohjelmistotuotantoprosessin kehittämisellä voi olla vain yksi lähtökohta: yrityksen liiketoiminnalliset tavoitteet ja niistä johdetut ohjelmistotuotannon tavoitteet. Nämä eivät suinkaan ole samoja eri yrityksissä. Jotkut yritykset voivat esimerkiksi vahvan markkina-asemansa avulla keskittyä järjestelmiensä laatuun, jolloin prosessissa painottuvat laadun tuottaminen ja sen varmistus. Toisten on taas pakko yrittää saada jokainen mahdollinen kauppa, jolloin pääasioiksi tulevat lyhyt toimitusaika ja tuotannon kaikinpuolinen tehokkuus.

Tavoitteiden pohjalta tulisi arvioida, mallintaa ja mitata ohjelmistotuotannon nykytila ja luoda askelittainen prosessin parantamisohjelma halutun tavoitetilan saavuttamiseksi. Prosessin parantaminen ja sen jatkuva tuki on myös osattava organisoida oikein. ProHAKE-ohjelma on paneutunut tämän kokonaisuuden (vrt. kuva) edistämiseen.

Ohjelmistoprosessin arviointi

Yrityksen ohjelmistotuotantoprosessin tason arvioimiseen ei ollut ennen viime vuosikymmenen loppua systemaattisia menetelmiä, vaan prosesseja kehitettiin sattumanvaraisesti omaan yritykseen kertyneen kokemuksen, muista yrityksistä saatujen vihjeiden ja konsulttien tarjoamien näkökulmien pohjalta. Näin prosessista tuli helposti vinoutunut, joitakin osaprosesseja liiaksi korostava ja toiset, tärkeätkin unohtava rakennelma.

Yhdysvaltalaisen Software Engineering Institute'n (SEI) kehittämä kypsyystasomalli (Capability Maturity Model, CMM) julkistettiin ensimmäisen kerran 1987. Siitä on vähitellen tullut Yhdysvalloissa ja muuallakin maailmassa de facto-standardi, jonka avulla voidaan ensin näyttää tiettyjen ohjelmistotuotannon perusprosessien olevan kunnossa ja sitten askelittain nostaa kaikki keskeiset osaprosessit yhä korkeammille kypsyystasoille. Euroopassa CMM-malli kuitenkin myöhästyi ratkaisevasti, kun täällä ISO 9001-standardiin perustuvasta laatujärjestelmäsertifikaatista ehti tulla tärkeä kilpailutekijä ohjelmistotuotantoyrityksille.

ISO 9001-sertifikaatin tavoitteleminen sai toki monet yritykset dokumentoimaan prosessinsa ja huomaamaan prosessin parantamisen tärkeyden. ISO 9001:n ongelmana on sen kappaletavarateollisuus- ja palvelusektoritausta, mistä seuraa ohjelmistotuotannon kannalta liian yksipuolisesti asiakkaan tarpeita palvelevan laadunvarmistuksen korostaminen. ISO 9001-sertifikaatti ei yksinään takaa ohjelmistoprosessille CMM-mallin ns. kaaostasoa parempaa kypsyyttä. Edes ohjelmistotuotantoa varten laadittu soveltamisohje ISO 9000-3 ei riitä tekemään ISO 9001-standardista riittävää kehittämispohjaa ohjelmistoprosessille.

CMM-mallikaan ei toki ole ongelmaton. Se rakentuu osaprosessikohtaisista kysymyslistoista, joissa tietty määrä kyllä-vastauksia kertoo yrityksen olevan tietyllä kypsyystasolla. Kyse on perimmältään ISO 9001:n tapaan yhteen muottiin puristamisesta, vaikkakin nyt ohjelmistotuotannon omassa maailmassa. Kaikissa yrityksissä ei yksi ja sama asioiden kehittämisjärjestys ole optimaalisin.

CMM-mallissa näyttää myös euronäkökulmasta olevan liikaa heijastumia yhdysvaltalaisten jättiohjelmistoprojektien organisointiratkaisuista. Eurooppalaisessa BOOTSTRAP-projektissa kehitettiin vuosina 1991-93 CMM-mallin pohjalta ohjelmistoprosessin arviointimalli ja parantamismenetelmä ottamalla huomioon European Space Agency'n (ESA) prosessimallin ja ISO 9001:n ominaisuudet. Tähän projektiin osallistuivat Oulun yliopisto ja CCC-yhtiöt (jäljempänä CCC).

Myös ISO on ISO 9001-kritiikin huomioon ottaen lähtenyt kehittämään standardia toisaalta ohjelmiston elinkaarelle (ISO 12207) ja toisaalta uutta mallia ohjelmistoprosessille ja sen arvioimiselle ns. SPICE-projektissa. Jotkut ennakoivat näihin pohjautuvien sertifikaattien korvaavan ISO 9001-sertifikaatin ohjelmistomaailmassa muutaman vuoden kuluessa.

Tietotekniikan kehittämiskeskuksen (TIEKE) ProKYKY-projektissa kehitetään ProPUT-nimistä ohjelmistoprosessin arviointi- ja parantamisjärjestelmää ja kokeillaan sitä noin 20 suomalaisyrityksen piirissä. Taustalla on voimakas tukeutuminen SPICE-malliin. Projektipäällikkö on Risto Nevalainen.

Oulun yliopiston ja CCC-yhtiöiden yhteinen ProJATKE-projekti on paneutunut BOOTSTRAP-mallin ja SPICE-malliprototyypin soveltamiseen sulautettujen järjestelmien maailmaan. Projektipäällikköinä toimivat Pasi Kuvaja Oulun yliopistosta ja Jouni Similä CCC-yhtiöistä. Tuloksia kokeillaan useissa suomalaisissa yrityksissä.

Ohjelmistoprosessin mallintaminen

Ns. vesiputousmalli eli peräkkäisten ohjelmistotyövaiheiden malli on 1970-luvulta näihin päiviin saakka toiminut useimpien yritysten ohjelmistotuotantoprosessin perusmallina ja sen varaan on rakennettu lukemattomia ohjelmistotyön käsikirjoja. Myös ISO 9000-3 ja sen myötä monet laatujärjestelmät perustuvat vesiputousajatteluun.

1980-luvun alkupuolella lanseerattu vaihetuotemalli oli askel vesiputousmallista käyttökelpoisempaan suuntaan. Siinä keskityttiin vaiheiden peräkkäisyyden sijasta vaiheiden tulosten eli vaihetuotteiden hyväksymiseen vaiheiden päättymisen eli etapin saavuttamisen edellytyksenä. Tämä loi mahdollisuuden synkronisoida ohjelmistoprojekti osaksi sulautetun järjestelmän kehittämisprojektia.

Tällä vuosikymmenellä ohjelmistotyön teknologiat ovat monipuolistuneet ja mm. mahdollistaneet tehokkaasti hajautetut ohjelmistoprojektit. Ohjelmistoprosessien on nyt oltava hyvin joustavasti räätälöitävissä erilaisiin teknologia- ja hajautustilanteisiin. Tästä seuraa, että ohjelmistoprojektien mallintamisen menetelmien ja välineiden on oltava aktiivisesti räätälöintiä tukevia.

Useimmat ohjelmistoprosessit on tähän saakka dokumentoitu kirjallisin kuvauksin, yksinkertaisten piirrostyökalujen avulla tai käyttäen systeeminsuunnittelutekniikoita (esim. SA/SD tai SADT). Prosessimallien informaatiosisältöä ei kuitenkaan yleensä ole analysoitu, ja malleja on käytetty pelkästään passiivisesti prosessin päävaiheiden ja riippuvuuksien esittämiseen.

Nykyiset prosessimallintamisen tekniikat antavat kuitenkin mahdollisuuksia paljon tehokkaampaan mallien hyödyntämiseen. Formaalia prosessimallia voi käyttää prosessin analysointiin, kustannusten ja riippuvuuksien arviointiin ja mallilla voidaan jopa simuloida ohjelmistoprosessia.

Nokia Tutkimuskeskuksen vetämässä ProMAM-projektissa on verrattu mallintamismenetelmiä ja tehty tämän pohjalta alustava mallintamissuositus ensisijaisesti Nokia-yhtymän tarpeisiin, jonka liiketoimintayksiköissä sitä parhaillaan kokeillaan. Projektipäällikkö on Kari Känsälä.

Ohjelmistoprosessin mittaaminen

Ohjelmistotuotantoprosessia on mitattu monista eri syistä. Yhtäältä on haluttu tarkkailla prosessin kehittymistä mitattuna joko itse prosessin tuottavuudella tai sen tulosten laadulla. Toisaalta on tarvittu mittaustietoa esimerkiksi projektien työmäärien ja aikataulujen ennakointiin ja seurantaan.

Vasta viime vuosina ohjelmistoalueen mittaamista on lähestytty kaiken mittaamisen näkökulmasta, ja on alettu puhua ohjelmistomittausohjelmista. Tunnetuin ja hyvin yleispätevänä pidetty lähestymistapa on Yhdysvalloissa Vic Basilin johdolla kehitetty Goal/Question/Metric (GQM). GQM-mallin mukaan mittausohjelmaa käynnistettäessä täytyy ensin määrittää mittaamisen tavoitteet ja johtaa yksittäiset mitattavat asiat näistä tavoitteista. Malli ei kuitenkaan sellaisenaan anna mitään konkreettista tukea järkevään lopputulokseen pääsemiseksi.

VTT Elektroniikka vetää ProMETRI-projektia, jossa keskitytään nimenomaan GQM-mallin soveltamiseen käytännössä. Näitä kokeiluja on meneillään useissa yrityksissä. Projektipäällikkö on Seija Komi-Sirviö.

Nokia Tutkimuskeskuksen ProMAM-projektin yhtenä osana on mittausmenettelyjen kehittäminen Nokia-yhtymän liiketoimintayksiköissä ja tästä saatujen menetelmällisten kokemusten raportointi.

Ohjelmistoprosessin parantaminen

Itse ohjelmistotuotantoprosessin parantamisen suunnittelu ja kehitystoimenpiteiden toteutus on tietenkin prosessin kehittämisen tärkein kohde, mutta samalla myös vähiten formalisoitu ja tuettu. Tämä on ymmärrettävää, sillä prosessin kehittäminen on aina vahvasti sidoksissa ao. yrityksen tilanteeseen. Menetelmällisen tuen puute on kuitenkin merkittävä ongelma prosessin parantamisohjelmia laadittaessa. Olennaista on pystyä liittämään prosessin parantamisen eri tekijät - arviointi, mallintaminen, mittaus sekä parantamisohjelmien määrittäminen ja toteutus - yhteiseen kehykseen, jonka avulla eri tekijöiden vuorovaikutukset voidaan hyödyntää optimaalisesti.

TKK:n Software Workmate-projektissa on tarkoitus toisaalta tuottaa prototyyppi ohjelmistoprosessitukiympäristöksi sulautettujen ohjelmistojen tuotantoon ja toisaalta paneutua pienten, paketoitavia ohjelmistotuotteita valmistavien yritysten prosessin parantamiseen. Projektipäällikkönä toimii Kari Alho TKK:n tietojenkäsittelyopin laboratoriosta.

Luonnollisesti myös kaikissa muissa ProHAKE-ohjelman projekteissa syntyy joko selkeitä yhtymäkohtia tai suoraa tukea prosessin parantamiseen.

ProHAKE-ohjelman tulosten hyödyntämisestä

ProHAKE-ohjelma käynnistyi vuoden 1993 loppupuolella ja se päättyy vuoden 1996 keväällä. Tuloksia sovelletaan jo tällä hetkellä noin 30 yrityksessä. Tulosten hyödyntämisestä kiinnostuneiden kannattaa ottaa yhteyttä edellä mainittuihin projektipäälliköihin.

- - - - -

Artikkelin kirjoittaja toimii Nokia Tutkimuskeskuksen Software Process Improvement-ryhmässä johtavana konsulttina ja ProHAKE-ohjelmassa sen koordinaattorina.

Kari Känsälä, johtava konsultti, Nokia Tutkimuskeskus, kari.kansala@research.nokia.fi


Lauri Laitinen lauri.laitinen@research.nokia.fi