Artikkelit
Ketterät eli Agile-menetelmät
Ketterillä menetelmillä parempia tuloksia
Ketteryydestä puhuttaessa on hyvä erottaa yritystason ja liiketoiminnan ketteryys sekä ohjelmistokehityksessä käytetyt Agile- eli ketterät menetelmät. Yritystason ja liiketoiminnan ketteryydellä tarkoitetaan kykyä reagoida nopeasti ja tehokkaasti muutoksiin markkinoilla sekä yrityksen kykyä uudistua ja oppia. Aihepiiriä sivuaa Hermanni Hyytiälä Vanguard ja systeemiajattelu –kirjoituksessaan.
Ohjelmistokehityksessä ketterät menetelmät on vakiintunut termi kuvaamaan joukkoa kehitysprojekteissa käytettäviä menetelmiä. Tämä artikkeli keskittyy näihin.
Ketterissä menetelmissä parhaita tiimityöskentely- ja johtamiskäytäntöjä on koottu helposti käyttöönotettavaan pakettiin. Menetelmät ovat laajalti käytössä sekä Suomessa että maailmalla. Muun muassa Google, Microsoft ja Facebook käyttävät ketteriä menetelmiä omassa ohjelmistokehityksessään.
Palaute ja lisääntynyt ymmärrys parantavat ohjattavuutta
Ohjelmistoprojektissa on aina käytössä rajalliset resurssit. Ketterillä menetelmillä resurssit pyritään suuntaamaan sinne, missä niistä saadaan paras hyöty. Se tarkoittaa panostamista liiketoiminnan kannalta tärkeimpiin ominaisuuksiin, ja toisaalta kaiken turhan tekemisen välttämistä.
Ohjelmistoprojektin edetessä ymmärrys lisääntyy ja vaatimukset tarkentuvat. Kaikkea ei voi etukäteen tietää. Uusi järjestelmä voi esimerkiksi muuttaa loppukäyttäjien työnkuvaa tavalla, jota on mahdoton ennustaa. Teknologiat ja markkinat voivat muuttua projektin aikana. Ketterät menetelmät on suunniteltu tukemaan ohjelmistokehitystä nimenomaan muuttuvassa ympäristössä, ja ne mahdollistavat nopean reagoimisen parempaan tietoon ja ymmärrykseen vaatimuksista.
Ketteriä menetelmiä käytettäessä ohjelmistoprojektin riskejä pystytään hallitsemaan paremmin kuin perinteisiä menetelmiä käytettäessä. Esimerkiksi liiketoiminnallisesti tärkeimmät ja riskipitoisimmat toiminnallisuudet toteutetaan ensin. Näin saadaan jo aikaisessa vaiheessa ymmärrys riskien vaikutuksista ja halutun toiminnallisuuden toteutusmahdollisuuksista.
Menetelmien tehokkuus perustuu projektin aikana saatavaan välittömään palautteeseen sekä jatkuvaan ohjaukseen ja oppimiseen. Uuteen tietoon ja muutoksiin voidaan reagoida välittömästi, jolloin projekti pysyy oikeilla raiteilla. Toimintatapojen jatkuva kehittäminen on ketteryyden ydin.
Ketterissä menetelmissä käytännön työ tapahtuu asiantuntevissa ja itseorganisoituvissa tiimeissä. Tiimi pyrkii löytämään kehitystyötä haittaavat pullonkaulat ja tehottomuudet ja parantamaan toimintaansa. Johdon tehtävänä on tukea organisaatiota ja tiimejä luomalla puitteet tehokkaalle toiminnalle.
Johdon ja liiketoiminnan edustajien vastuulla on tuoda liiketoiminnallinen näkemys, kirkastaa tuotevisio ja varmistaa säännöllisesti, että kaikilla on yhteinen päämäärä.
Ketterät menetelmät eivät ole valmis resepti, jota voi sellaisenaan noudattaa, vaan ne vaativat aina sovittamista ympäröivään organisaatioon. On tärkeää optimoida koko arvoketjua ja tuotteen elinkaarta, ei pelkkää ohjelmistokehitystä.
Toimiva tuote on edistymisen mittari
Toteutustyön aikana syntyy jatkuvasti valmista, toimivaa ja testattua toiminnallisuutta. Uusi toiminnallisuus esitellään säännöllisesti esimerkiksi tuotteen omistajille, käyttäjille ja muille sidosryhmille. Uusi toiminnallisuus viedään parhaimmillaan tuotantoon välittömästi. Näin saadaan jatkuvasti palautetta, joka perustuu toimivaan ohjelmistoon, ja toimintaa voidaan suunnitella parhaan mahdollisen tiedon pohjalta.
Ketteriä menetelmiä käytettäessä projektin ennustettavuus ja läpinäkyvyys paranevat, koska kaikilla projektin osapuolilla on aina todelliseen faktaan perustuva tieto projektin tilasta. Työntekijöiden sitoutuminen oman työnsä tuloksiin ja laatuun kasvaa: he voivat vaikuttaa siihen, miten asioita tehdään ja näkevät, miten heidän työnsä vaikuttaa kokonaisuuteen.
Reaktor ja ketterät menetelmät
Olemme käyttäneet ketteriä menetelmiä pian kymmenen vuoden ajan. Matkan varrella olemme oppineet paljon.
Pelkän ohjelmistokehityksen optimoinnin sijasta onnistuminen vaatii koko arvoketjun tarkastelua ja optimointia. Ohjelmistosuunnittelun lisäksi yhtä lailla tärkeässä osassa ovat niin konseptointi, määrittely, käyttöliittymäsuunnittelu kuin laadunvarmistuskin. Liiketoiminnan edustajien on oltava kehitystyössä tiiviisti mukana. Kehitystyötä pitää ohjata liiketoiminnan ja käyttäjien tarpeiden pohjalta. Tuotevision on oltava jatkuvasti kirkas, ja kaikkea toimintaa pitää tarkastella ja suunnitella riittävän pitkällä aikavälillä. Kaikkien osa-alueiden saumaton yhteispeli on onnistumisen ydin.
Reaktorille ketteryys on toimintamalli, joka mahdollistaa toiminnan jatkuvan kehittämisen. Tästä Agilessa on loppujen lopuksi kyse – halusta tehdä asiat paremmin.
