SEMS - Joustavuutta ja hallittavuutta ohjelmistokehitykseen

(For an english version, see An Introduction to the SEMS Approach at the bottom of this page)

SEMS on Teknillisen Korkeakoulun Ohjelmistoliiketoiminnan ja -tuotannon laboratoriossa, SoberIT:ssa, kehitetty lähestymistapa ohjelmistotuotekehityksen johtamiseen. Mallin avulla on pystytty tehokkaasti yhdistämään liiketoiminnan ja tuotekehityksen näkökulmat sekä saamaan kaivattua kontrollia ja joustavuutta ohjelmistokehitykseen.

Taustaa - Miksi SEMS on kehitetty?

Lähes kaikki Suomen ohjelmistotuoteyritykset ovat pieniä tai keskikokoisia. Olemassa olevat prosessimallit ja menetelmät ovat suurimmaksi osin laiminlyöneet tuotekehityksen erityispiirteet ja pk-yritysten näkökulman, ja keskittyneet suurten yritysten ja massiivisten ohjelmistojen projektimuotoisen kehittämisen ja toimittamisen ongelmiin. PK-yritykset usein myös pelkäävät soveltaa näitä keinoja koska niihin koetaan liittyvän paljon byrokratiaa. Osittain tästä syystä omat resurssit eivät tunnu riittävän prosessien kehittämiseen.

Uusi suuntaus ohjelmistokehitysprosessien saralla ovat nk. ketterät prosessimallit. Käytännön kokemukset näistä malleista ovat kuitenkin vielä lähinnä anekdotaalisia. Lisäksi ketterät prosessimallit kohdistuvat lähinnä käytännön työhön ”lattiatasolla”, eivätkä yleensä ota kantaa yrityksen tuotesuunnittelu- ja strategiaprosesseihin. Tuotejulkaisujen pidemmän aikavälin ja tuoteportfoliotason suunnittelulla on kuitenkin todettu olevan merkittävä vaikutus pidemmän tähtäimen menestykseen ohjelmistotuoteliiketoiminnassa, ja olisi tärkeää ymmärtää miten yrityksen tuotesuunnittelu- ja strategiaprosessit voidaan integroida tuotekehityksen prosesseihin.

Mikä on SEMS?

SEMS on sekä perinteisten, että ketterien prosessimallien pohjalta kehitetty tapa johtaa ohjelmistokehitystä. Malli soveltuu erityisesti pk-yrityksille ja suurten ohjelmistotalojen projektiryhmille, jotka toimivat turbulentissa ja nopealiikkeisessä ympäristössä.

Kuva 1 esittelee SEMS-mallin kolme keskeistä näkökulmaa (akselit) ja niiden avainalueet (laatikot):

SEMS

Kuva 1 Näkökulmat ja avainalueet ohjelmistotuotekehityksen johtamisessa

Laatikot kuvaavat avainalueita ohjelmistotuotekehityksen johtamisessa, ja ne liittyvät kiinteästi johonkin näkökulmaan. Avainalue on joukko asioita, jotka sekä kirjallisuudessa että käytännössä mielletään kuuluvaksi yhteen. SEMS-mallissa kuhunkin avainalueeseen on määritelty erilaisia hyväksi havaittuja käytäntöjä ja lähestymistapoja. Näiden lisäksi SEMS-malliin kuuluu Ohjelmistokehityksen Ohjaussyklit (Cycles of Control) -työkalu, jonka avulla eri avainalueet ja näkökulmat voidaan nähdä toimivana kokonaisuuten.

Ohjelmistokehityksen Ohjaussyklit (Cycles of Control) - työkalu ohjelmistokehityksen rytmittämiseksi

Todellisuudessa kuvan 1 näkökulmat ja avainalueet sisältöineen ovat vain näennäisesti erillisiä. Esimerkiksi muutokset, vaatimukset tai rajoitteet yhdessä, aikaansaavat muutospaineita toisissa (vrt. systeemiajattelu: kaikki vaikuttaa kaikkeen). Ajallinen jaksottaminen (Time Pacing) - eli rytmi - yhdistää eri näkökulmat ja avainalueet käytännön tasolla ja siihen keskittymällä voidaan rakentaa hallittuja mutta samalla riittävän joustavia tuotekehitysprosesseja.

Ohjelmistokehityksen ohjaussyklit (engl. Cycles of Control) on tuotekehityksen rytmin ymmärtämiseen, kuvaamiseen ja kommunikointiin kehitetty työkalu (Katso Kuva 2). Kuvan 2 esimerkissä tuotejulkaisujen korkean tason sisällöstä, ajoituksesta, ja liiketoiminnallisista tavoitteista päätetään tuotejulkaisujen suunnittelusyklissä (strategic release management). Tuotejulkaisuihin tähtäävä kehitys on projektoitu (release project management), ja projektit koostuvat inkrementeistä, joissa tähdätään tietyn kokonaisuuden valmiiksi saamiseen (increment management). Yksittäisten kehittäjien ja tiimien työtä synkronoidaan päivittäisellä tasolla sykäyksinä (heartbeat) erilaisten käytäntöjen avulla (esim. päivittäiset tilannekatsaukset). Syntyvä rytmitys ja tarkistuspisteet mahdollistavat hallitun reagoimisen markkinoilta tuleviin muutoksiin, helpottavat priorisointia projektien aikana ja auttavat tuotekehitystä keskittymään sovittujen kokonaisuuksien valmiiksi saattamiseen.

Cycles

Kuva 2. Esimerkki neljän syklin tuotekehitysprosessista.

SEMS  on liiketoimintaohjattu, sillä se lähtee liikkeelle liiketoiminnan rytmin tunnistamisesta, ja tämän heijastamisesta tuotekehitysprosessiin mahdollisuuksien mukaan. Perinteisesti tärkeäksi koettu tuotekehitysprosessin kypsyys on tämän ajattelutavan mukaisesti tärkeää vain siltä osin, kun se tukee ja mahdollistaa tuotekehityksen liiketoiminnan rytmin vaatimusten mukaisesti. Vastaavasti, kun toimintatapoja eri avainalueilla kehitetään, tulee muutosten vaikutukset kokonaisuuteen huomioida rytmin kautta.

Kuva 3 selventää SEMS-mallin käytännön toteuttamista. Tuotejulkaisujen suunnittelusyklin pituus voi olla esimerkiksi 6 kk, eli tuotevisioita ja -roadmappia päivitetään kaksi kertaa vuodessa. Itse tuotejulkaisut tehdään kolmen kuukauden projekteissa. Projektit jakaantuvat kuukauden mittaisiin inkrementteihin. Oleellista mallissa on, että se on aikajaksotettu; aikataulu pitää, mutta julkaisun tai tuoteinkrementin laajuus joustaa. Aikataulu ei koskaan siis petä, mutta tuotteessa oleva toiminnallisuus riippuu käytössä olevista resursseista.

CoC

Kuva 3.  Tuotekehitysprosessin kuvaaminen - rytmin näkökulma.

SEMS käytännössä

SEMS-malli on toteutettu käytännössä jo useassa yrityksessä ja tulokset ovat olleet hyviä. Mallin avulla on pystytty tehokkaasti yhdistämään liiketoiminnan ja tuotekehityksen eri näkökulmat sekä saamaan kaivattua kontrollia ja joustavuutta ohjelmistokehitykseen. SEMS-kehitysprojekteihin osallistuneiden mielestä SEMS-malli on ollut menestys ja tuonut selviä hyötyjä mukana olleille yrityksille.

Jos haluat lisätietoja SEMS:n käytännön toteutuksista, voit katsoa seuraavia julkaisuja:

Case Studies

 

Lisätietoja


Päivitetty 21.9.2005 sems.com@soberit.hut.fi