Tick-the-Code - tekniselle johtajalle (CTO)
Tick-the-Code on käytännöllinen tapa parantaa ohjelmiston laatua. Sitä on tutkittu laajasti. 350 ohjelmistosuunnittelijaa yhteensä 15 yrityksestä neljästä maasta osallistui tutkimukseen seuraavanlaisin tuloksin:
Kehittäjien löytötehokkuus moninkertaistuu
Koe suoritettiin seuraavasti: kehittäjät etsivät ongelmia koodistaan viidentoista minuutin ajan. Merkintöjen määrä kirjattiin ylös ja kerrottiin neljällä. Näin saatiin arvio tunnin tarkistamisen tuloksesta. Sitten heille opetettiin Tick-the-Code -menetelmä ja heitä pyydettiin tarkistamaan sama lähdekoodi uudestaan, tällä kertaa koko tunnin ajan.
Tulokset näkyvät kuvassa 1. Kullakin tarkistajalla on kaksi datapistettä, yksi 'ennen'-käyrässä, joka näyttää kuinka monta huomautusta hän olisi löytänyt omin neuvoin tunnissa (luultavasti arvio on yläkanttiin) ja yksi 'jälkeen'-käyrässä, joka näyttää todellisten löydösten määrän Tick-the-Code -menetelmällä.
Keskimääräinen parannus oli viisinkertainen!
Koehenkilöiden tarkistama koodi oli oikeaa tuotantokoodia, joka oli käynyt läpi normaalit laadunvarmistustoimenpiteet. Löydösmäärän kasvu osoittaa kuinka paljon käyttämätöntä potentiaalia ohjelmistosuunnittelijoissa on.
Tick-the-Code -menetelmällä löytää nopeasti
307 ohjelmistosuunnittelijaa osallistui Tick-the-Code -koulutustilaisuuksiin ympäri maailman vuosina 2006-2007. Tilaisuuksissa tehtiin kolme hieman toisistaan poikkeavaa koetta ja niiden tulokset on koottu kolmeen erilliseen taulukkoon (Taulukko 1.). Kussakin taulukossa on osallistujien lukumäärä, tarkistukseen käytetty kokonaisaika (osallistujien aikojen summa), tarkistettujen koodirivien kokonaismäärä (osallistujien rivimäärien summa), löydettyjen tikkien kokonaismäärä (osallistujien tikkimäärien summa) ja kaikkien osallistujien tikkien löytämisen keskitiheys.
Taulukoiden tulisi tehdä selväksi se, että on täysin mahdollista käydä läpi paljon koodia melko lyhyessä ajassa. Kullakin osallistujalla oli noin tuhat koodiriviä tikattavana yhdessä tunnissa. Tick-the-Code hyödyntää ajan todella tehokkaasti.
Toinen tärkeä asia on löydettyjen tikkien lukumäärä. Osallistujat eivät olleet koskaan aiemmin tikanneet koodia, ja kuitenkin he onnistuivat löytämään tusinoittain parannnusmahdollisuuksia koodista, joka oli jo läpikäynyt "normaalit" laadunvarmistustoimenpiteet. Tick-the-Code tuottaa tuloksia. Tehokkuus perustuu järjestelmällisyyteen ja keskittymiseen. Kyseessä ovat aloittelijat, jotka kokeilevat uudenlaista tarkistusmenetelmää ensimmäistä kertaa elämässään oikealla tuotantokoodilla, ja jotka löytävät enemmän kuin yhden parannuksen minuutissa kokonaisen tunnin ajan! Tiedätkö toista yhtä tehokasta menetelmää? Voidaan tietenkin väittää, että staattiset analyysityökalut pystyvät samansuuruisiin tuloksiin, mutta niistŠ puuttuu tyystin oppiminen. Tässä puhutaan suunnittelijoista, jotka lukevat koodia itse ja saavat siten yksityiskohtaisen kuvan sen sisällöstä.
Se, että suunnittelijat löysivät näin monia tikkejä niin lyhyessä ajassa, voisi tietenkin tarkoittaa sitä, että koodi on erityisen huonoa. Valitettavasti koodi lienee melko tavallista ohjelmistoteollisuudessa tuotettua koodia. Näiden kolmen kokeen osallistujat tulivat nimittäin useista erilaisista yrityksistä, eri maista ja työskentelivät hyvinkin erilaisilla sovellusalueilla. Heillä ei ollut muuta yhteistä kuin taipumus luoda tarpeettoman monimutkaista koodia ja kykenemättömyys poistaa monimutkaisuutta jälkikäteen.
Tick-the-Code monimutkaisuuden mittarina
Thomas McCabe loi monimutkaisuudelle mittarin artikkelillaan 1976. Hän kuvasi ohjelman vuokaavion graafina. Graafin syklomaattisen numeron laskemiseksi hän sovelsi matemaattista kaavaa. Lyhyesti sanottuna mitä suurempi syklomaattinen numero, sitä monimutkaisempaa lähdekoodi on. Yksityiskohtaisempi selvitys Wikipediasta.
Kuva 2. kertoo avoimella lähdekoodilla tehdystä kokeesta. Testwell Oy:n työkaluja käytettiin syklomaattisen numeron laskemiseen. Koodimodulit tikattiin kaikilla 24 Tick-the-Code -säännöllä. Kuvassa näkyy syklomaattisen numeron ja tikkimäärien välinen vahva korrelaatio (0.7).
24 sääntöä voidaan jakaa neljään kategoriaan:
- Vaaralliset olettamukset
- Kaaoksen aiheuttajat
- Puuttuva tieto
- Turha tieto
Kaikkien kategorioiden tikkimäärät korreloivat vahvasti syklomaattisen numeron kanssa. Tämä voi tarkoittaa sitä, että sääntökategoriat mittaavat monimutkaisuutta aivan kuten syklomaattinen numerokin. Minkä tahansa säännön rikkomus lisää turhaa monimutkaisuutta koodiin. Tikkimäärillä voidaan siis järjestää koodimodulit monimutkaisuuden mukaan. Täten laadunparannustoimenpiteet voidaan suunnata niitä eniten tarvitseviin kohteisiin.
Johtopäätös
Kuten huomaat, todisteet ovat Tick-the-Code -menetelmän puolella. Jos ohjelmistokehityksen tuottavuus kaipaa tehostamista, Tick-the-Code on erinomainen vaihtoehto. Kehittäjät saavat aikaan enemmän parannusmahdollisuuksia, eikä heidän tarvitse käyttää paljoa aikaa tikkaamiseen voidakseen hyötyä siitä. Parantuva koodin laatu näkyy monimutkaisuuden vähenemisenä.
Kun koodi yksinkertaistuu ja tulee ymmärrettävämmäksi, korjausten vähenevä määrä alkaa näkyä säästöinä. Tuottavuus kasvaa samalla kun korjaustarve vähenee. Mikä tehdään, pysyy tehtynä (eikä palaa kummittelemaan.)
Valitse varman päälle, esittele Tick-the-Code -menetelmä ohjelmistokehittäjillenne. Välttäkää virheitä, nauttikaa tuloksista ja tehokkaasta ajankäytöstä.