(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.
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.
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):
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.
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.
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.
Kuva 3. Tuotekehitysprosessin kuvaaminen - rytmin näkökulma.
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: