Katselmoinnin määritelmä Katselmoinnit osa 1 Sami Kollanus 1.12.2006, katselmus (review) IEEE Std 1028-1988 Ohjelmiston osien tai projektin tilan arviointi (evaluation), jonka tarkoitus on tunnistaa tuotosten eroavuudet suunnitelmiin nähden sekä tuottaa kehitysehdotuksia. Tämä arviointi noudattaa formaalia prosessia (esimerkiksi johdon katselmointiprosessia, ohjelmiston tarkastusprosessia tai läpikäyntiprosessia). 2 ja vielä ajatuksia katselmoinneista Tekninen katselmointi Läpikäynti Tarkastus Ihmisvoimin tehtävää työtä (vrt. testaus) Ne suorittaa joku muu kuin tuotoksen tekijä Päämäärä etsiä virheitä dokumentista Usein puhutaan vertaiskatselmoinneista Katselmoijat muita kehittäjiä Kehitysprosessiin kuuluvaa toimintaa Ei erillisen latuyksikön toimintaa 3 4
Testauksen V-malli Tarkastus (inspection) Päävaatimusten määrittely Järjestelmän spesifikaatio Päävaatimusten speksit Järjestelmän speksit Komponenttien koodaus / testaus Komponenttien testaus Arkkitehtuurin speksit Arkkitehtuurisuunnittelu Moduulien speksit Komponenttisuunnittelu Integrointitestaus Hyväksymistestaus Järjestelmän testaus Tarkasti määritelty kokouskäytäntö katselmoinnin toteuttamiseen Michael Fagan 1976, IBM Myöhemmin menetelmää määritellyt tarkemmin mm. Gilb & Graham (1993) Koskinen, Sakkinen ja Paakki, 2001. Ohjelmistotekniikka, kurssimoniste 5 6 Tarkastusprosessi (1/8) Tuotoksen tekijä esittää vaatimuksen tarkastuksen järjestämisestä, kun hänen mielestään esiehdot on täytetty Tarkastuksen tulisi olla vapaaehtoista?!? Valitaan tarkastuksen johtaja Tuotos tarkastuksen johtajalle 7 8
Tarkastusprosessi (2/8) Tarkastuksen johtaja käy läpi aloituskriteerit Jos aloituskriteerejä ei ole täytetty, on turha tuhlata tarkastajien aikaa kriteerit yleisiä nopeasti tarkastettavia, esim. Dokumentiontiohjeita noudatettu Kaikki vaadittu tehty Voidaanko käytännössä peruuttaa? > aloitukriteerit käytännössä ehkä tekijää varten 9 10 Tarkastusprosessi (3/8) Tarkastuksen johtaja suunnittelee tarkastuksen läpiviennin Useampi kierros? Tarkastajien valinta ja roolitus Aikataulu, tilavaraukset Materiaalin jakelu tarkastajille 11 12
Tarkastusprosessi (4/8) Ei välttämättä järjestetä voidaan ohjeistaa tarkastajat muulla tavalla Tarkastajien koulutusta ja motivointia varten Varmistetaan, että jokainen tietä roolinsa Tuotoksen tekijä voi esitellä tuotosta, jotta tarkastajat pääsevät siihen helpommin sisälle 13 14 Tarkastusprosessi (5/8) Tarkastajat etsivät itsenäisesti tuotoksista virheitä Ilman tätä vaihetta on mahdollista, että löydetään vain 10% virheistä verrattuna hyvin toteutettuun tarkastukseen. (Gilb & Graham 1993) Tarkastaja käy dokumentin läpi tarkistuslistan avulla ja kirjaa löytämänsä virheet ylös 15 16
Tarkastusprosessi (6/8) Kolme tarkoitusta Kirjataan ylös kaikki mahdolliset virheet, jotka on havaittu itsenäisessä tutustumisessa Suoritetaan tarkastus ryhmässä, jotta voidaan löytää ja kirjata ylös vielä uusia virheitä Kirjataan ylös tarkastettavaan tuotokseen liittyviä kehitysehdotuksia ja kysymyksiä tuotoksen tekijälle Lisäksi voidaan kerätä erikseen prosessinkehitysehdotuksia 17 18 n huoneentaulu (Haikala & Märijärvi 2001) Aivoriihimäinen, suositaan vapaata ajatuksenjuoksua Rajoitetaan keskustelua, ettei kaikki aika kulu siihen Parannusehdotuksia ja kysymyksiä saa esittää, mutta ne ainoastan kirjataan ylös Ratkaisujen pohdinta jätetään korjaajalle Maksimiaika 2 tuntia -> tarkastuksen johtajalla tärkeä rooli ohjata ajankäyttöä oleellisiin asioihin Tuloksena lista virheistä, prannusehdotuksista ja kysymyksistä Puheenjohtaja: Hillitse selittelyä Huolehdi aikataulussa pysymisestä Estä rönsyily ja liika ideointi Tekijä Älä selittele Alä tuo keskeneräistä tuotetta Kaikki osallistujat Valmistaudu huolellisesti Ole ystävällinen, varo loukkaamasta tekijää Pysyttele teknisissä asioissa arvioi tuotosta, älä tekijää Anna myös positiivisia kommentteja Osoita ongelmat, älä esitä korjausehdotuksia Anna korjaukset pikkuvirheisiin kirjallisesti Tee kysymyksiä 19 20
Tarkastusprosessi (7/8) Korjaaja (tuotoksen tekijä?) käy kirjauspalaverissa luodun listan läpi Virheiden luokittelu ja lopullinen kirjaus Virheiden korjaus Tarvittaessa korjauspyyntö lähdedokumenttiin Kolme tapaa edetä: Uusi tarkastus Tarkastuksen johtaja hyväksyy korjaukset Korjaaja vahvistaa itse korjaukset tehdyksi 21 22 Tarkastusprosessi (8/8) Tarkastuksen johtaja tarkistaa lopetuskriteerit Kriteerejä esim. Kaikki vaaditut dokumentit tehty Vaaditut korjaukset tehty Yleinen hyväksyttävä virhetaso saavutettu 23 24
Käytännön ohjeita Miksi katselmointeja? Tarkastuksella on johtaja, joka organisoi tilaisuuden Ei tuotoksen tekijä eikä esimies Ryhmän kokosuositus 3-6 henkilöä Eri roolit tärkeitä: Eri osaamisalueet Sama dokumentti näkökulmista Jaetaan dokumentti osiin Tarkastus on luonnollinen osa tuotantoprosessia, ei minkään erillisen laatuyksikön asia Vie 5-15 % työajasta Testaus voidaan toteuttaa vasta toimivalle ohjelmalle, jolloin korjaaminen on kallista Testaus ei kata läheskään kaikkea validointi puutteet dokumentaatio ylläpidettävyys Katselmoinnit saattavat olla halvempia jopa samojen virheiden löytämiseen kuin testaus 25 26 Virheen suhteellinen kustannus Tutkimustuloksia katselmointien vaikutuksesta Virheen korjaamisen suhteellinen kustannus 1 Vaatimusmäärittely 3-6X 10X 15-40X Koodaus Kehitys- Testaus 30-70X Hyväksymis- Testaus 40-1000X Käyttöönotto, Ylläpito (82X IBM keskiarvo) Fagan (1976), IBM: 23% tehokkuuden nousun ensimmäisissä kokeiluissa Bush (1990), JPL: Virheen korjaaminen maksaa 1700 $ Katselmoinnissa löytyy 12 virhettä Säästö 25 000 $ / katselmointi Russel 1991, Bell-Northern Researh: Jokainen katselmointitunti säästi 33 tuntia ylläpitotyötä Boehm (1981) 27 28
Tutkimustuloksen jatkuu Doolan (1992), Shell Research: Jokainen tarkastus maksoi itsensä takaisin 30- kertaisesti Grady & Slack (1994), HP: HP on säästänyt 25 M$ Basili ja Selby (1987), opiskelija+csc+nasa: totesivat koodin lukemisen olevan tehokkaampi tapa löytää jopa samoja virheitä kuin testaus. Russel (1991) esitti tämän tueksi yrityscasen. So ym. (2002) Tehokkuudessa ei eroa, mutta eri testausmenetelmät löytävät erilaisia virheitä Tarkastuksen merkitys organisaatiolle 1/3 1. Prosessin läpimenoajan lyhentäminen 2. Dokumentin laadun mittaaminen 3. Dokumentteja tuottavan prosessin laadun mittaaminen 4. Jäljellä olevien virheiden määrän arvioinnin mahdollistaminen 5. Virheiden tunnistaminen (ennaltaehkäisy) 6. Virheiden poistaminen 7. Ylimääräisten prosessin loppuvaiheen virheiden ennaltaehkäisy poistamalla olemassa olevat virheet 29 Gilb (2000) 30 Tarkastuksen merkitys organisaatiolle 2/3 8. Dokumentteja tuottavan prosessin kehittäminen 9. Tarkastusprosessin kehittäminen 10.Katselmoijien työn kautta oppiminen 11.Tiimin johtajan koulutus 12.Tiimin johtajan sertifiointi 13.Työntekijöiden motivointi 14.Johtajien motivointi 15.Tuotoksen tekijän auttaminen Tarkastuksen merkitys organisaatiolle 2/3 16.Standardoitumisen vahvistuminen 17.Asiantuntijatiedon kerääminen ja uudelleenkäyttö 18.Kustannuksien pienentyminen 19.Tiimin rakennus 20.Se on hauskaa sosiaalinen tapahtuma Gilb (2000) 31 Gilb (2000) 32
Lähteet Tarkat lähdeviitteet löytyvät lisensiaatintyöstä Kollanus (2006): http://ebooks.jyu.fi/1795_9713/9513923983.pdf 33