• Pro gradu -tutkielma

    Koodikatselmoinnit pienessä ohjelmistoyrityksessä

    Nikita Zhuk
    Pro gradu -tutkielma
    Helsingin Yliopisto
    Tietojenkäsittelytieteen laitos

    Johdanto

    Yksi ohjelmistotuotannon tärkeimmistä osa-alueista on toteutettavan ohjelmiston laadunvarmistus, jolla pyritään varmistamaan, että ohjelmisto täyttää sille asetetut vaatimukset. Ohjelmiston virheiden löytäminen mahdollisimman aikaisessa vaiheessa pienentää ohjelmistojen tuotantokustannuksia, sillä mitä aikaisemmin virheet havaitaan, sitä vähemmän resursseja kuluu niiden korjaamiseen.

    Testaus ja katselmoinnit ovat kaksi tärkeintä menetelmää ohjelmistojen laadunvarmistuksessa. Testauksessa valmista ohjelmistoa tai sen osaa suoritetaan antamalle sille testisyötteitä ja varmistetaan ohjelmiston tai sen osan tuottamien tulosteiden oikeellisuus. Katselmoinneissa ohjelmiston dokumentteja tai koodia tarkistetaan manuaalisesti, joten katselmoitavan ohjelmiston tai dokumentin ei tarvitse olla katselmointivaiheessa vielä valmis. Tämä mahdollistaa virheiden löytämisen aikaisemmassa vaiheessa kuin testausta käytettäessä. Katselmointien avulla voidaan löytää myös muita kuin toiminnallisia virheitä, kuten ohjelmiston ylläpidettävyyteen, laajennettavuuteen tai suorituskykyyn liittyviä ongelmia.

    Katselmoinnit ovat esiintyneet tieteellisessä kirjallisuudessa 70–luvulta lähtien. Niiden avulla on pystytty löytämään ja korjaamaan 50% – 90% katselmoitavien dokumenttien ja lähdekoodin virheistä. Grady ja Van Slack raportoivat erään katselmointimenetelmän — tarkastusten — käyttöönoton HewlettPackardilla säästäneen 28.5% kustannuksista määrittelyvaiheessa, 33.8% suunnitteluvaiheessa, 37.3% toteutusvaiheessa ja 16.1% testausvaiheessa. Russell arvioi kunkin tarkastustunnin ehkäisevän keskimäärin 33 tuntia ylläpitotyötä Bell-Northern Researchin suuressa, yli 15 miljoonan koodirivin projektissa. Vaikka empiiristen tutkimusten raportoimat tarkastusten ja muiden katselmointimenetelmien hyödyt vaihtelevat merkittävästi, katselmointien käyttöönotto on vaikuttanut lähes jokaisessa tapauksessa positiivisesti.

    Katselmointeja arvioivat tutkimukset ovat perinteisesti keskittyneet vakiintuneita prosesseja käyttäviin keskisuuriin ja suuriin yrityksiin. Katselmoinnit ovat kuitenkin käytössä myös pienissä ohjelmistoyrityksissä. Pienet yritykset eivät kerää katselmointiin liittyviä mittoja yhtä laajasti kuin suuremmat yritykset, joten näiden yritysten katselmoinneista ei ole saatavilla yhtä laajaa kvantitatiivista tietoa.

    Ohjelmistojen laadunvarmistuksen haasteet koskevat myös pieniä, alle 10 hengen yrityksiä, joissa yhden projektin parissa saattaa työskennellä 2 – 3 ihmistä.
    Virheiden löytäminen ajoissa pienten yritysten ohjelmistoprojekteissa on tärkeää, sillä muussa tapauksessa projektin edetessä aikaa käytetään yhä enemmän
    virheiden paikallistamiseen ja korjaamiseen. Tämä vähentää uusien ominaisuuksien kehittämiseen käytettävää aikaa. Tällaisen trendin jatkuessa kaikki ajalliset resurssit käytetään virheiden paikallistamiseen ja korjaamiseen, eikä asiakkaalle saada tuotettua lisäarvoa uusien ominaisuuksien muodossa.

    Tässä pro gradu -tutkielmassa tarkastellaan erilaisia katselmointimenetelmiä sekä esitellään viimeaikaista katselmointitutkimusta. Tutkielma keskittyy lähdekoodin katselmointiin. Tutkielman osana suunnitellaan ja toteutetaan tapaustutkimus eräässä pienessä ohjelmistoyrityksessä. Tavoitteena on selvittää, parantaako koodikatselmointi ohjelmistotuotteen laatua. Tutkielma dokumentoi tapaustutkimuksen suunnittelun, valmistelun, toteutuksen, analyysin ja johtopäätökset.

    Tutkielman rakenne on seuraava. Luvussa 2 esitellään tarkastus, joka on eniten tieteellistä kiinnostusta herättänyt katselmointimenetelmä. Luvussa 3 tarkastellaan muita yleisessä käytössä olevia katselmointimenetelmiä. Luvussa 4 käsitellään viimeaikaisen katselmointitutkimuksen suuntauksia sekä esitellään alan keskeiset tutkimustulokset. Luvussa 5 esitellään tapaustutkimukseen osallistuva ohjelmistoprojekti, esimerkkiyritys sekä yrityksen nykyinen laadunvarmistusprosessi. Luvussa 6 esitetään tutkimuskysymys ja tutkimuksessa käytetyt tutkimusmenetelmät sekä arvioidaan tutkimuksen riskejä. Luvussa 7 esitellään ta paustutkimuksen suunnittelu, toteutus ja tulokset. Luvussa 8 esitellään tutkimuksen johtopäätökset. Lopuksi koostetaan yhteenveto tutkielmassa käsitellyistä aiheista ja tutkimuksen tuloksista sekä arvioidaan tutkimuksen merkittävyyttä esimerkkiyritykselle luvussa 9.

    Yhteenveto

    Katselmointeja on tutkittu tieteellisessä kirjallisuudessa 70–luvulta lähtien. Kirjallisuudessa esitettyjen tulosten perusteella katselmoinnit ovat tehokas ohjelmistojen laadunvarmistusmenetelmä, sillä se mahdollistaa ohjelmiston virheiden löytymisen mahdollisimman aikaisessa vaiheessa. Katselmointeja arvioivat tutkimukset ovat kuitenkin keskittyneet joko yliopistoissa suoritettuihin projekteihin tai vakiintuneita prosesseja käyttäviin keskisuuriin ja suuriin yrityksiin. Pienet ohjelmistoyritykset kohtaavat ohjelmiston laadunvarmistuksen haasteita, joihin katselmoinnit voisivat vastata. Katselmointien soveltamista pienissä ohjelmistoyrityksissä on käsitelty kirjallisuudessa vain vähän, ja kvantitatiivista tietoa katselmointien tehokkuudesta pienissä ohjelmistoyrityksissä ei ole juuri saatavilla.

    Tutkimuksen tavoitteena oli selvittää, ovatko katselmoinnit tehokas keino parantaa ohjelmistotuotteen laatua pienessä ohjelmistoyrityksessä. Kirjallisuuskatsauksessa esiteltiin katselmointien historiaa, keskeisiä käsitteitä, kirjallisuudessa kuvattuja katselmointimenetelmiä sekä viimeaikaisen katselmointitutkimuksen pääsuuntauksia. Michael Faganin 70–luvulla kuvaama tarkastus on katselmointimenetelmistä tutkituin ja muodollisin. Tarkastuksissa painotetaan osallistujien roolijaon ja kokousten tärkeyttä tarkastusten tehokkuuden takaamiseksi. Tarkastusten lisäksi on olemassa myös epämuodollisempia katselmointimenetelmiä, joissa roolijaon ja kokousten merkitys on pienempi kuin tarkastuksissa.
    Katselmointitutkimuksessa katselmointien teknisen näkökulman tarkastelu on jakautunut neljään teemaan: lukutekniikoihin, katselmointien tehokkuustekijöihin, katselmointiprosesseihin sekä sisältöön liittyviin erityiskysymyksiin. Katselmointitutkimuksessa on erityisesti kyseenalaistettu kokousten asemaa katselmointien tehokkuuden takaajina.

    Tutkimusosassa suunniteltiin kirjallisuuskatsauksen tietojen perusteella katselmointiprosessi, josta jätettiin pois pakolliset katselmointikokoukset ja mahdollistettiin seurantakokousten järjestäminen tarpeen mukaan. Katselmointiprosessi
    otettiin käyttöön pääkaupunkiseudulla sijaitsevassa alle kymmenen hengen ohjelmistoyrityksessä. Tutkimuskysymystä tutkittiin tapaustutkimuksella, jossa selvitettiin, ovatko katselmoinnit tehokas keino parantaa esimerkkiyrityksen ohjelmistotuotteen laatua.

    Tutkimus osoitti, että katselmoinnit olivat tehokkaita ja ne vaikuttivat positiivisesti ohjelmistotuotteen laatuun. Yrityksen työntekijät ja johto pitivät katselmointeja hyödyllisinä. Katselmoinnit osoittautuivat tehokkaaksi keinoksi levittää tietoa ohjelmistotuotteesta ja ohjelmointikonventioista kehittäjien välillä. Tutkimukseen osallistunut yritys päätti laajentaa katselmointien käyttöä muihin ohjelmistoprojekteihin.

    Tapaustutkimuksen aikana suoritettiin viisi katselmointia. Katselmointikertojen pieni määrä rajaa tutkimustuloksista johdettavia johtopäätöksiä. Yksittäisessä pienessä ohjelmistoyrityksessä havaittua katselmointien vaikutusta ei voida yleistää kaikkiin pieniin ohjelmistoyrityksiin. Mahdollinen aihe jatkotutkimukselle on katselmointikertojen määrän lisääminen ja tutkimuksen toistaminen muissa pienissä ohjelmistoyrityksissä. Tapaustutkimuksessa käytössä ollutta katselmointiprosessia voi myös kehittää edelleen ja tutkia muutosten vaikutuksia ohjelmiston laatuun sekä työntekijöiden asenteisiin katselmointeja kohtaan.

    Tallenna tutkielma PDF-muodossa (312 KB).

    Update: December 14th, 2008
Comments are closed.
TOP