Tekniikkakatalogi: Ketterä dokumentointi ja työkalut
Ketterän työkaluohjelmiston valitseminen
Ongelma: Joko kehitysjonon ylläpito ja työtehtävien seuranta on haastavaa yksinkertaisia apukeinoja käyttäen tai nykyinen projektinhallintatyökalu ei mukaudu ketterään kehitysmenetelmään
Ratkaisu: Valitaan ketterään sulautettujen järjestelmien kehitykseen soveltuva työkaluohjelmisto.
Tavoite: Mahdollistetaan sujuva kehitysjonon hallinta mukautetussa kehitysprosessissa, jossa laitteiston ja ohjelmiston työtehtävien välillä on monenlaisia riippuvuuksia.
Sopivan työkalun valitseminen tiimille ei ole triviaali tehtävä. Vaikka työkalun käyttötarpeet olisivatkin selvillä yleisesti, niin varsinaisia työkaluja tarkastellessa ei ole aina selvää, mitkä ominaisuudet työkalu oikeasti toteuttaa.
Ketterän kehitysprosessin hallitsemiseen on tarjolla useita erilaisia työkaluvaihtoehtoja , joiden avulla ketteryyttä voidaan tukea. Useimmat näistä ratkaisuista ovat kuitenkin suunniteltuja ketterään ohjelmistokehitykseen, jonka vuoksi laitteiston ja ohjelmiston toisistaan riippuvien työtehtävien hallitseminen saattaa vaatia joko luovuutta tai muokkauksia työkaluun. Se, miten työtehtävien riippuvuuksia tulisi lopulta hoitaa, on tiimin ja organisaation itse ratkaistava. Esimerkiksi useimmissa virheidenhallintajärjestelmissä voidaan tikettiin eli virheenkorjaustehtävään liittää linkkejä toisiin, kyseisen tiketin edistymiseen vaikuttaviin tiketteihin. Tämä ominaisuus on tuettuna myös monissa laajemmissa ketterissä työkalusovelluksissa.
Laitteiston ja ohjelmiston toisistaan riippuvien työtehtävien hallinnoimisessa vieläkin tärkeämmäksi osaksi voi muodostua visualisointi. Voi olla esimerkiksi suuri apu nähdä yhdellä silmäyksellä tilannekatsaus siitä, miten jokin vaatimus on edennyt ohjelmiston suhteen laitteistokehitykseen verrattuna. Ongelmana on se, ettei tällaisia ominaisuuksia ole valmiina työkaluissa. Taulukkolaskentaohjelmistoa tai itse tehtyjä liitännäisiä käyttäen halutunlaisen visualisoinnin muodostaminen on kuitenkin mahdollista.
Sopiva työkaluohjelmisto on niin riippuvainen sitä käyttävästä tiimistä ja kehitysprosessin luonteesta, että tarkkoja valintaohjeita on mahdoton muodostaa. Tärkein periaate onkin, että kehitystiimillä itsellään on merkittävin rooli työkalun valinnassa: ketteryyden periaatteiden mukaisesti itseorganisoituvalla tiimillä tulisi olla tieto siitä, mitkä ominaisuudet ovat välttämättömiä kehityksen kulun kannalta.
Kun päätös uuden työkalun tarpeesta on tehty, tulisi järjestelmällisesti selvittää kriittisimmät työkalulta vaaditut ominaisuudet sekä tiimin että organisaation näkökulmasta. Erilaisista lähteistä kerättyjen potentiaalisten työkaluehdokkaiden listaa voi olla huomattavasti helpompi karsia muiden ihmisten kokemusten perusteella kuin työkaluvalmistajien markkinointimateriaalin avulla. Kapealla listalla myös testattavien työkalujen määrä pysyy kurissa. Tätä listaa kannattaa myöhemmin parannella työkalujen testaamisesta saatujen kokemusten perusteella ja tarvittaessa laajentaa alkuperäisten työkalukandidaattien kokoelmaa.
Mikäli jokin testatuista työkaluista vaikuttaa pätevältä, se kannattaa ottaa oikeaan projektiin testikäyttöön varhaisessa vaiheessa. Aina sopivaa työkalua ei löydy, jolloin joudutaan palaamaan aikaisempiin vaiheisiin. Joissakin tilanteissa työkalutarpeet ovat niin omalaatuisia, että vaihtoehdoiksi jää valita jokin työkalu, joka täyttää suurimman osan vaatimuksista ja mahdollistaa laaja-alaisen muokkaamisen joko omilla tai kolmannen osapuolen liitännäisillä.
Kehitysjonon hallinnan sujuvuus on erittäin tärkeää muun ketteryyden toteutumisen kannalta. Jatkuvat työkalun käyttöön liittyvät ongelmat vievät aikaa paitsi yksittäiseltä työntekijältä, myös muulta tiimiltä, kun esimerkiksi suunnittelupalavereissa aikaa käytetään työtehtävien suunnittelun sijaan työkaluongelmien puimiseen. Samasta syystä kynnys työkalun käyttämiseen tulee olla mahdollisimman matala: mikäli ihmiset kokevat työkalun vaivalloiseksi tai turhaksi, suunnittelu- ja katselmointipalaverien hyöty vähenee merkittävästi.
Keskeiset periaatteet
1. Kehitystiimin tulee ohjata valintaprosessia.
2. Ketteryyden pilottivaiheessa kannattaa olla avoin uusille työkalukäytännöille, vaikka yleisesti työkalun tulisikin soveltua tuotekehitysprosessiin eikä toisinpäin.
3. Kehitysjonon sulava hallinta on merkittävä edellytys ketterän kehityksen sujuvuudelle.
4. Työkalun käytöstä pitää pyrkiä tekemään mahdollisimman esteetöntä.
5. Työkalut auttavat estimoinnin hallitsemisessa mutta eivät yksinään paranna estimaatteja – eivätkä ikinä tee niistä täydellisiä.
Käytännössä koettua
Yrityksessä oli tarve hallita toteutettavien ominaisuuksien edistymistä piirin eri lohkoissa. Koska työkalun valintaan ei ollut käytettävissä valtavasti resursseja, päädyttiin hallitsemaan kehitysjonoa itse tehdyllä taulukkolaskentapohjalla. Tämä mahdollisti kehityksen visualisoinnin ilman isoa panostusta valmiiden työkaluvaihtoehtojen kartoitukseen.
Lisää aiheesta
Suomi S.: Project Management Tools in Agile Embedded Systems Development.