ketterät metodologiat ohjelmisto start-upin näkökulmasta

36
T-76.650 Ohjelmistotuotannon seminaari Kevät 2002: Agile Software Development Ketterät metodologiat ohjelmisto start-upin näkökulmasta Samppa Turunen, 49121H [email protected]

Upload: others

Post on 15-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

T-76.650 Ohjelmistotuotannon seminaari

Kevät 2002: Agile Software Development

Ketterät metodologiat

ohjelmisto start-upin näkökulmasta

Samppa Turunen, 49121H

[email protected]

EXECUTIVE SUMMARY

Ongelma: Ovatko ketterät metodologiat sopivia start-upille?

Start-upin kuvaus

1) kypsymättömyys 2) rajalliset resurssit 3) tasaisen tulovirran puute 4) sijoittajien

aiheuttama ulkoinen paine 5) epävakaa ympäristö.

Työskentely on määrittelemätöntä ad hoc tyyppistä soveltamista. Mahdollisesti myös

asiakas puuttuu, mikä vaikeuttaa vaatimusten määrittelyä. Start-up voi myös kasvaa

nopeasti ja ihmisten roolit ja toimenkuvat muuttuvat nopeasti. Kaiken tämän lisäksi

start-upilla saattaa olla vain yksi mahdollisuus, joten epäonnistumiselle tai kokeilulle

ei ole varaa.

Start-up asettaa näin omalaatuisuudellaan monia kriteerejä metodologialle.

Yleisesti ketterien metodologioiden luonne ja lähestymistapa on hyvinkin sopiva start-

upille.

Crystal Clear – Ihmislähtöinen lähestymistapa. Ryhmä määrittelee

toimintatapansa ja kehittää metodologiaa sitä kautta. Hyvä skaalautuvuus ja

helppo omaksuttavuus.

Scrum – Minimi kaaoksen hallinta. Sopii esimerkiksi tuotekehitysprojekteihin,

joissa tulevaisuus saattaa olla hyvinkin epäselvä. Erittäin kevyt ja helposti

omaksuttavissa, joten erittäin hyvä vaihtoehto etenkin pienelle start-upille.

FDD – Toiminto kerrallaan kokonaisuuden mallin ohjaamana. Sopii esimerkiksi

räätälöityjen sovellusten kehitysprojekteihin, joissa asiakas on mukana. Se on

joustava ja tarjoaa sopivasti suunnitelmallisuutta sekä muutoksen hallintaa.

DSDM on maksullinen ja sen maastouttamisessa voi olla hankaluuksia ilman

koulutusta. Näin ollen se on melko kaukana start-upin tarpeista.

XP – Aggressiivinen, kurinalainen ja asiakasta korostava. Kokonaisuudessaan

XP on useiden start-up yritysten resurssien ja tavoitteiden ulkopuolella.

Mikään metodologia ei toimi sellaisenaan, vaan aina ne täytyy muokata tilanteen

mukaan sopiviksi. Eri metodologioiden ajatusten ja käytäntöjen yhdisteleminen tuo

tarvittavat ja sopivat osat yhteen. Metodologian valintaan vaikuttaa myös yrityksen

arvot ja ihmisten asenteet, tuotteen sovellusalue ja monet muut seikat, jotka tulee

ottaa huomioon. Ketterissä metodologioissa on selvää potentiaalia.

2

SISÄLLYSLUETTELO

1 JOHDANTO .............................................................................................4 1.1 TAUSTA .......................................................................................................................4

1.2 ONGELMA....................................................................................................................4

1.3 TAVOITTEET ................................................................................................................5

1.4 RAJAUS........................................................................................................................5

1.5 TOTEUTUS ...................................................................................................................6

2 RAPORTIN RAKENNE................................................................................8

3 START-UP YRITYS ...................................................................................9 3.1 KUVAUS JA KARAKTERISOINTI.....................................................................................9

3.2 KRITEERIT METODOLOGIALLE ...................................................................................10

3.3 VALINTAAN VAIKUTTAVAT TEKIJÄT..........................................................................12

4 METODOLOGIOIDEN LUPAUKSET JA MAHDOLLISUUDET .........................13 4.1 PÄRJÄÄKÖ ILMAN PROSESSIA?...................................................................................14

4.2 KETTERÄT METODOLOGIAT .......................................................................................15

4.3 KETTERIEN METODOLOGIOIDEN LYHYET ESITTELYT .................................................18 4.3.1 Extreme Programming (XP) ............................................................................................ 18 4.3.2 Crystal Clear .................................................................................................................... 19 4.3.3 Scrum .............................................................................................................................. 19 4.3.4 Feature Driven Developement (FDD).............................................................................. 20 4.3.5 Dynamic Systems Developement Method (DSDM) ........................................................ 21

5 LUOKITTELU JA LAJITTELU .....................................................................22 5.1 FRONT-LOADED, BALANCED JA BACK-LOADED ........................................................22

5.2 SUUNNITTELUN LÄHTÖKOHDAT.................................................................................23

5.3 SKAALAUTUVUUS......................................................................................................24

5.4 KURI JA SUVAITSEVAISUUS .......................................................................................25

5.5 START-UPIN KRITEERIT ERI METODOLOGIOITTAIN .....................................................26

5.6 YHTÄLÄISYYDET JA EROT..........................................................................................26

6 START-UPIN VALINNAT.........................................................................28 6.1 YHDISTELMÄT ...........................................................................................................30

6.2 MISTÄ LÄHTEÄ LIIKKEELLE? .....................................................................................31 6.2.1 XP:n ensimmäiset käytännöt ........................................................................................... 31

7 YHTEENVETO JA PÄÄTELMÄT.................................................................32

8 LÄHDELUETTELO...................................................................................34

3

11 JJOOHHDDAANNTTOO

11..11 TTAAUUSSTTAA

TKK:n Seminaarikurssin aiheena oli keväällä 2002 ketterät prosessit. Valitsin aiheen

henkilökohtaisen kiinnostuksen ja kokemuksen takia. Olen työskennellyt kahdessa

hyvin erilaisessa start-upissa, joissa sovellettiin ad hoc, eli sen tarkemmin

määrittelemätöntä prosessia. Havainnot ja päätelmät perustuvat siis osittain myös

omiin kokemuksiin. Toivon tästä olevan ainakin jotain hyötyä uusille

ohjelmistotuotannon yrityksille.

11..22 OONNGGEELLMMAA

Millainen on start-up yritys, mitkä ovat sen tarpeet ja tyypillisimmät ominaisuudet?

Millaisia vaatimuksia start-up yrityksen erityispiirteet asettavat prosessille? Ovatko

ketterät metodologiat sopivia start-upille? Mitä start-upin tulisi huomioida ketterää

metodologiaa valitessa? Näihin kysymyksiin vastaaminen auttaisi ehkä parantamaan

tehokkuutta ja ennakoimaan tulevaisuuden ongelmatilanteita.

Prosessien kehittämisen lähtökohtana on yleensä jokin ongelma tai vaikeus, jota

metodologian tekniikoilla yritetään korjata. Esimerkiksi kommunikaatio eri

sidosryhmien kesken. Näitä ongelmia ei välttämättä start-up yrityksessä pääse

syntymään, mutta silti joistain metodologioista saattaisi olla hyötyä niin motivaation

kuin tehokkuudenkin kannalta.

Ketterät prosessit ovat kaikkein lähimpänä pienten start-up yritysten tarpeita

joustavuutensa ansiosta, tai niin ainakin saattaisi luulla. Usein jo sana prosessi saa

työntekijät takajaloilleen peläten työmäärän ja sääntöjen lisääntyvän ja avoimen

ilmapiirin katoavan. Ketterät prosessit ovat kuitenkin kaikkea muuta kuin paperisotaa

4

ja niiden mahdollisuudet start-up yrityksissä jää usein huomaamatta. Onko niistä

kuitenkaan mitään käytännön hyötyä, kun maastouttaminenkin saattaa olla hankalaa

ja resurssit ovat rajalliset?

Yleensä pienet start-up yritykset eivät määrittele prosessejaan kovinkaan tarkasti ja

osa syynä tähän lienee eri metodologioiden vaikea vertailtavuus ja resurssien sekä

motivaation puute. Yksi metodologia ei välttämättä sellaisenaan myöskään ole paras,

vaan kaikki prosessit tulisi mukauttaa yrityksen tilanteeseen ja tarpeisiin. Start-up

yritykset eivät kuitenkaan aina voi ennakolta tietää tarpeitaan ja siten kokeileminen

voi olla turhauttavaa ja valinnan tekeminen vaikeaa.

11..33 TTAAVVOOIITTTTEEEETT

Tavoitteena on selkiyttää metodologioiden taustoja, ominaisuuksia ja eroja sekä

kartoittaa niiden soveltuvuutta start-up yritysten ominaisuuksista johdettuihin

kriteereihin. Toisaalta ketterät prosessit lupaavat paljon ja tavoitteena onkin selvittää

miten hyvin ne ovat toimineet käytännössä ja mitä start-upin tilanne tarkastelun

lähtökohtana vaikuttaa metodologioiden soveltuvuuteen.

Pyrkimyksenä olisi tuottaa heuristiikkaa start-up yrityksille prosessin valinnan ja

muokkaamisen avuksi. Metodologiat ovat kokonaisuuksia, jotka koostuvat toisiaan

tukevista toiminnoista ja tavoitteena on etsiä valintaan vaikuttavat piirteet ja esitellä

prosessit objektiivisesti pienen start-up yrityksen perspektiivistä.

11..44 RRAA JJAAUUSS

Näkökulman asettava pieni start-up yritys on kooltaan noin 4-20 henkilöä. Olen

rajannut tutkimuksen ulkopuolelle asiat, jotka kyllä vaikuttavat metodologian

sopivuuteen, mutta eivät ole juuri start-upille ominaisia. Esitän kuitenkin joitain yleisiä

5

huomioita metodologian valintaan vaikuttavista tekijöistä kokonaisuuden

hahmottamiseksi, mutta en keskity niihin tarkasti.

Laajuuden vaikutusta olisi tutkittava tarkemmin ja koska se ei ole juuri start-upin

kannalta kriittistä, vaikkakin merkityksellistä, olen sivuuttanut sen tästä tutkimuksesta.

Tutkimuksen kohteena ovat seuraavat ketterät metodologiat: Extreme Programming

(XP), Scrum, Dynamic Systems Developement Method (DSDM), Crystal Clear

(Crystal Methodologies) ja Feature Driven Developement (FDD). Ne ovat määriteltyjä

ja dokumentoituja sekä niistä on olemassa tarkasteluun sopivia kokemuksia.

Martin Fowlerin mukaan (Fowler, 2001) Jim Highsmith on ilmoittanut, että Adaptive

Software Developement (ASD) yhdistetään Crystal Methodologies -perheeseen, eikä

sitä siten tarkastella tässä erillisenä metodologiana.

RUP on Fowlerin mukaan (Fowler, 2001) raskaamman sarjan metodologia, vaikkakin

kevennettävissä, eikä siten ole otettu mukaan tähän tutkimukseen.

Mukana olevat metodologiat edustavat ketteriä prosesseja melko laajasti, joskaan

kaikista ei ole yhtä kattavaa kokemusten dokumentointia ja vertailua saatavilla.

Tarkoituksena ei ole kattaa kaikkia mahdollisia ketteriä metodologioita vaan esitellä

tyypillisimmät ja niiden avulla havainnollistaa ketterien metodologioiden soveltuvuutta

start-upille.

11..55 TTOOTTEEUUTTUUSS

Olen kerännyt kokemusraportteja sekä vertailevia artikkeleita ja tehnyt niiden pohjalta

kirjallisuustutkimuksen. Eri prosessien kokemusraportit ovat yleensä sovitettu aluksi

yhden projektin mittaisiksi tai yhdelle tiimille, jolloin ne myös soveltuvat tutkimuksen

aineistoksi. Pienten yritysten ja etenkin start-upien koko toiminta saattaa olla vain

yksi projekti tai yksi tiimi. Tällöin on kuitenkin arvioitava kokemuksia vain soveltuvin

6

osin ja huomioitava esimerkiksi projektin ulkopuolisten resurssien rajallisuus ja muut

pienen yrityksen ja start-upin väliset erot.

Osa käsiteltävistä asioista on hyvin spekulatiivista ja olen käyttänyt omaa kokemusta

ja intuitiota osaksi ratkaisujeni taustalla etenkin start-up yrityksen luonnetta

analysoitaessa. Pyrkimys on kuitenkin olla mahdollisimman objektiivinen.

7

22 RRAAPPOORRTTIINN RRAAKKEENNNNEE

3 START-UP YRITYS

Sart-upin kuvaus ja karakterisointi, sekä niistä johdettavat vaatimukset

metodologialle.

4 METODOLOGIOIDEN LUPAUKSET JA MAHDOLLISUUDET

Metodologioiden käytön motivointi, ketterien prosessien vertailu Start-

upin näkökulmasta.

5 LUOKITTELU JA LAJITTELU

Metodologioiden lajittelu eri tyyppeihin ja erojen sekä yhtäläisyyksien

kuvaus.

6 START-UPIN VALINNAT

Pohdiskelu metodologioiden luokituksen ja start-upin karakterisoinnin

perusteella.

7 YHTEENVETO JA PÄÄTELMÄT

8

33 SSTTAARRTT--UUPP YYRRIITTYYSS

33..11 KKUUVVAAUUSS JJ AA KKAARRAAKKTTEERR II SSOO IINNTT II

Stanley M. Suttonin mukaan Start-up yrityksillä ei saata olla tuotetta, asiakaskuntaa

eikä tasaista tulovirtaa, mitkä korostavat innovatiivisen, nopeatempoisen ja

reaktiivisen ohjelmistotuotannon piirteitä. Omalla tavallaan nuoruus ja

kypsymättömyys, rajalliset resurssit sekä useat ulkopuoliset vaikuttajat erottavat

start-up yrityksen pienistä tai vakiintuneista yrityksistä. (Sutton, 2000)

Ohjelmistotuotannolle tyypillinen piirre on ajan riittämättömyys ja tuotteet pyritään

valmistamaan mahdollisimman nopeasti.

Ulkoisista vaikuttajista rahoittajat tuovat suurimman paineen tehdä tulosta nopeasti ja

pienen yrityksen rajallisilla resursseilla toimiva start-up on kovassa puristuksessa.

Ensimmäisten projektien onnistuminen saattaa myös olla kriittistä jatkon kannalta,

joten kokeiluun ei välttämättä ole varaa. Ohjelmistotuotanto on jatkuvasti kehittyvän

tekniikan juoksupyörässä ja tuotannon suunnittelu tulevaisuutta silmällä pitäen on

tärkeää. Kuitenkin alan jatkuva muuttuminen estää tarkkojen suunnitelmien

tekemisen ja moni yritys onkin tilanteessa, jossa välttämättä ei tiedetä mitä edes ensi

vuonna tehdään. Tätä voidaan kai pitää myös positiivisena reagointinopeutena, mikä

on haastavaa myös tuotantoprosessille ja metodologialle.

Suttonin mukaan (Sutton, 2000) start-up yritysten nuori ikä, vähäinen karttunut

kokemus, sekä historian puute näkyy sekä yrityksen prosessikyvykkyydessä että itse

organisaatiossa.

Kokemusaineisto tai vertailu, jossa metodologiaa on sovellettu kohtalaisen pieneen

yritykseen, suhteellisen pieneen projektiin tai tiimiin voidaan arvioida myös start-upin

9

näkökulmasta. Tällöin on kuitenkin huomioitava edellä mainitut start-upin erot

verrattuna pitkään alalla toimineeseen.

Wardin mukaan prosessin kehittäminen isoissa yrityksissä pyrkii parantamaan

tehokkuutta ja luotettavuutta vähentäen samalla kustannuksia. Pienille

organisaatioille tällä ei kuitenkaan Wardin mukaan ole merkitystä. (Ward et al., 2001)

Taulukko 1, Start-up yrityksen ominaisuudet

Yleiset ominaisuudet: Mahdollisesti myös:

Kypsymättömyys Ei asiakasta

Rajalliset resurssit Muuttuvat roolit

Ei tasaista tulovirtaa Nopeasti kasvava

Kiire ja ulkoinen paine Ei varaa epäonnistua tai kokeilla

Pieni dynaaminen tiimi Prosessia ei määritelty

33..22 KKRR II TTEEEERR II TT MMEETTOODDOOLLOOGGIIAALLLL EE

Kehitettävän ohjelmistotuotteen ominaisuudet, käyttökohteen kriittisyys ja vaadittava

laatu vaikuttavat myös metodologian vaatimuksiin. Yrityksessä työskentelevien

henkilökohtaiset tottumukset vaikuttavat pienen yrityksen tuotantoprosessiin

voimakkaasti ja työntekijöiden tavat ja rutiinit muokkaavat osaltaan yrityksen

mahdollisesti vielä määrittelemättömän prosessin.

Wardin mukaan ohjelmistoyritys elää jatkuvassa muutoksessa ja prosessi, jolla

ohjelmistoa tuotetaan muuttuu jatkuvasti tilanteen mukaan.

Metodologiat painottavat eri asioita, joista jotkin soveltuvat start-upille paremmin ja

toisten toteuttamisessa saattaa taas olla selviä vaikeuksia resurssien rajallisuuden ja

esimerkiksi asiakkaan puutteen takia tai metodologian vaatiman kouluttajan

10

puuttuminen. Prosessin pitäisi näin ollen mukautua erilaisiin tarpeisiin ja ihmisiin, sillä

varaa ihmistyyppien valintaan tai ihmisten vaihtamiseen ei useinkaan ole, ja

asenteiden sekä tottumusten muuttaminen saattaa olla hankalaa.

Koulutus voi olla monelle start-upille kaukainen haave taloudellisesti tärkeämpien

asioiden mennessä edelle. Metodologian tulisi siksi olla helposti omaksuttavissa ja

otettavissa käyttöön ilman suuria investointeja koulutukseen tai opetteluun. Hyväksi

havaittu lähestymistapa lienee kehittää prosessia vähän kerrassaan ja motivoida

ihmiset muutoksen vastaanottamiseen. Start-upissa nämä asiat voivat olla kuitenkin

melko helppoja ratkaista, koska henkilöstö on omistautuneisempaa ja sitä on

mahdollisesti vähemmänkin. Joten start-upissa metodologian käyttöön ottaminen

kokonaisuudessaan ja kerta heitolla saattaa onnistua helpostikin, jolloin

metodologian toisiaan tukevat toiminnot toimivat paremmin. Toisaalta henkilökunnan

roolit ja vastuualueet vaihtelevat nopeasti ja uuden metodologian maastouttaminen

saattaa vain entisestään vaikeuttaa tilannetta.

Jos kokonaisvaltaiseen muutokseen ei ole varaa, kannattanee purkaa eri vaihtoehdot

osiin ja valita niistä sopivimmat tekniikat ja ajatukset käyttöönotettaviksi.

Cockburn esittää (Cockburn, 2000a, s.143) mm. seuraavia kysymyksiä

metodologian arvioinnille:

1) Kuinka nopeasti metodologia sallii ihmisten vaihtumisen ja koulutuksen? 2) Kuinka

suuri vaikutus sillä on myynti prosessiin? 3) Kuinka paljon se antaa ihmisille vaputta?

4) Kuinka nopeasti se sallii reagoinnin muuttuviin tilanteisiin?

11

Taulukko 2, Kriteerit metodologialle

Ominaisuus: Kriteeri:

Kypsymättömyys Luo uskottavuutta

Rajalliset resurssit Edut nähtävissä heti, joustava, kevyt

Ei tasaista tulovirtaa Edullinen, ei vaadi koulutusta

Kiire ja ulkoinen paine Nopea ja varma tulos,

laadunvarmistus

Ei asiakasta Ei liian riippuvainen asiakkaasta

Muuttuvat roolit Mukautumiskykyinen, ihmisläheinen

Nopeasti kasvava Skaalautuu kasvun mukana

Ei varaa epäonnistua tai kokeilla Suunnitelmallisuutta, laadunvarmistus

Prosessia ei määritelty Helppo omaksua ja maastouttaa

33..33 VVAALL IINNTTAAAANN VVAA IIKKUU TTTTAAVVAATT TTEEKK II JJÄÄTT

Kokonaiskuvan muodostamiseksi esittelen joukon muita valintaan vaikuttavia

tekijöitä. Nämä eivät kuitenkaan ole juuri start-upille ominaisia, joten en ole ottanut

niitä kriteereiksi metodologioita vertailtaessa. Nämä on kuitenkin hyvä ottaa

huomioon lopullista arviointia tehtäessä.

Kuten kaikkeen ihmisten tekemään työhön, persoonallisuudet, ihmisten välinen

dynamiikka ja henkilökohtaiset tarpeet, tavoitteet ja halut vaikuttavat metodologian

soveltuvuuteen (Cockburn, 2001) ja väärä valinta saattaa aiheuttaa ylimääräistä

kitkaa ja resurssien menetyksiä.

Ohjelmistoja on myös monenlaisia projektin luonne vaihtelee: www, lääketiede,

12

wireless, pelit, embedded, ym. Osassa merkittävä kriteeri on ehdoton laatu ja

virheettömyys, kuten lääketieteen sovellukset. Toisissa etusijalla on

käyttäjäystävällisyys, kuten esimerkiksi peliteollisuus ja www-sovelluskehitys. Uusien

tekniikoiden sovellukset kilpailevat kuluttajien mielenkiinnosta ja käytön helppous

sekä toiminnan vakuuttaminen ovat onnistumisen kannalta tärkeitä.

Granville Millerin (Miller, 2001) mielestä käytettävä ohjelmointikieli vaikuttaa

metodologian valintaan. Esimerkiksi ohjelmointikielenä C++ tarvitsee tarkempaa

suunnittelua etukäteen etenkin suuremmissa järjestelmissä.

Metodologian valintaan vaikuttavat myös seurattavat standardit, vaadittava laatu,

sekä valitut työkalut, joihin on sijoitettu rahaa. Jos tuotanto on hyvin suoraviivaista

standardin toteuttamista, ei luovaa ja idearikasta metodologiaa välttämättä tarvita.

Start-upin tilanne on kuitenkin usein toinen ja idearikas ja avoin ympäristö saattaa

olla eduksi.

44 MMEETTOODDOOLLOOGGIIOOIIDDEENN LLUUPPAAUUKKSSEETT JJAA MMAAHHDDOOLLLL IISSUUUUDDEETT

Alistair Cockburn määrittelee (Cockburn, 2000a, s. 101) metodologian olevan kaikki

se mitä yritys tekee saadakseen ohjelmistotuotteen markkinoille. Kaikilla

organisaatioilla on metodologia, mutta vain harvat vaivautuvat kirjoittamaan sen ylös.

Tämä lienee tavallista juuri start-up yrityksissä, joissa muita toimintoja pidetään

helposti tärkeämpinä. Kommunikointia pidetään jopa itsestään selvyytenä, ja

järjestetyt tapaamiset ja kokoukset saattavat vaikuttaa turhilta. Vaatimusmäärittely on

hankalaa, sillä asiakasta ei välttämättä edes vielä ole ja sen tarpeiden arvailu saattaa

olla vaikeaa.

Erillisen testausorganisaation puuttuessa testauksesta tulee välttämätön paha ja

yleensä se jää ohjelmoijan itsensä harteille, jolloin testausta ei välttämättä edes

13

tehdä kunnolla saati suunnitella. Tähän ongelmaan, monien muiden asioiden

lomassa, metodologiat lupaavat parannusta mm. jatkuvan testauksen ja seurannan

avulla.

44..11 PPÄÄRR JJÄÄÄÄKKÖÖ II LLMMAANN PPRROOSSEESSSS IIAA??

Ilman prosessia ei voi toimia, mutta monet yritykset toimivat hyvinkin ilman prosessin

virallista määrittelyä.

Cockburn perustelee (Cockburn, 2000a, s. 142-143) metodologian tarpeen ja edut

seuraavasti:

1) Se kertoo ”miten teemme täällä töitä”, jolloin se toimii apuna uusia työntekijöitä

tutustuttaessa prosessiin

2) Se toimii apuna ihmisten vaihtuessa ja esimerkiksi alihankinta suhteissa

tehokkaana toimintatapojen selvittäjänä. Start-upissa ihmisten vaihtuvuus saattaa

olla nopeaa ja toimintatapojen selkeys säästää vähäisiä resursseja.

3) Se selventää toimenkuvia ja vastuita. Tämä voi olla hyvinkin merkittävää

tuoreessa organisaatiossa, jossa muutoksia organisaation rakenteessa tapahtuu

usein ja tehtävät saattavat olla epäselviä.

4) Se vakuuttaa sponsorit. Tämä perustelu on Cockburnin mukaan syypää paksujen

prosessimäärittelykansioiden rakentamiseen. Yrityksen ulkopuolisella taholla,

esimerkiksi asiakkaalla, on luonnollinen refleksi pitää painavampaa prosessia

turvallisempana. Uskottavuus olikin yksi start-upin asettamista kriteereistä

metodologialle.

5) Se osoittaa näkyvää edistymistä. Metodologian tuottaman raportointi aineiston

avulla projektin eteneminen on helppo osoittaa esimerkiksi asiakkaalle tai johdolle.

Start-upin on hyvä tietää miten projekti etenee, jotta nopea reagointi olisi mahdollista

14

ja kohtalokas epäonnistuminen voidaan välttää.

6) Kun metodologiat ja tekniikat nimetään, niiden ympärille perustaa kursseja ja

opettaa niitä tietoja ja taitoja, joita niissä tarvitaan. Näin metodologian

määritteleminen toimii pohjana myös koulutukselle ja jatkokehitykselle.

Näistä syistä mielestäni voidaan pitää metodologian olemassa oloa hyödyllisenä

etenkin start-upille. Toisaalta, jos metodologia vie liikaa kriittisiä resursseja ja jos

määritteleminen tehdään huolimattomasti, saattaa siitä olla vain haittaa.

44..22 KKEETTTTEERRÄÄTT MMEETTOODDOOLLOOGGIIAATT

Martin Fowler näkee ketterissä metodologioissa kaksi avain ajatusta: Ne ovat

enemmän mukautuvia kuin ennustavia ja ne keskittyvät enemmän ihmisiin kuin

prosesseihin. (Fowler, 2001)

Highsmithin mielestä (Highsmith et al., 2001) ketterät metodologiat painottavat kahta

ideaa: 1) Toimiva koodi kertoo totuuden mitä asiakas lopulta saa. 2) Hyväntahtoinen

ryhmätyö on erittäin tehokasta.

Ketteryys on siis tiivistä ryhmätyöskentelyä iteratiivisessa ja mukautuvassa

prosessissa. Myös välittömän kommunikaation korostaminen ja etenkin nopea

palaute on monelle ketterälle metodologialle ominaista. Asiakas on tärkeässä

asemassa määrittelemässä vaatimuksia ja lopulta antamassa tavoitteet laadulle ja

hyväksynnän lopputuotteelle.

Ketterät metodologiat luottavat paljolti ihmisten taitoihin suunnittelijoina, ohjelmoijina

ja osaajina. Suunnittelijoita ei erotella tekijöistä vaan korkeamman tason suunnittelijat

laskeutuvat ohjelmoijan rinnalle ja ohjelmoija osallistuu suunnittelemiseen. Koulutus

ja muut seikat ovat jätetty miltei kokonaan huomioimatta ja luotetaan osaavien

ihmisten kouluttavan toisiaan. Ihmiset on siis otettu etusijalle ja turhaa

15

dokumentaatiota vältetään.

Suunnittelu ja toteutus ovat iteratiivisia, eli kokonaisuutta kasvatetaan toiminnallisuus

kerrallaan. Tehtäviä ei suunnitella tarkasti vaan huomio kiinnitetään

toiminnallisuuksien toteuttamiseen (Highsmith & Cockburn, 2001). Iteraatiot ovat

yleensä nopeita, 2-6 viikkoa ja toteutettavat toiminnallisuudet priorisoidaan

dynaamisesti. Asiakas on tiiviissä kontaktissa suunnitteluvaiheessa ja toteutettavien

toiminnallisuuksien valitsemisessa aina iteraatioiden välillä. Näin laadunvarmistus

toimii aktiivisesti läpi koko tuotekehityksen.

Start-upilta, joka ei tee räätälöityjä sovelluksia puuttuu yleensä tämä olennainen

toteutettavien toimintojen ja vaatimuksien määrittelijä, eli asiakas. Tämä saattaa olla

suuri ongelma metodologioissa, joissa korostetaan asiakkaan asemaa, ellei sitä

voida korvata sisäisesti ns. sponsorilla. Tällaisia projekteja ovat mm. tuotekehitys ja

ns. paketti-ohjelmistojen tuotanto, jolloin asiakkaan tarpeet on selvitettävä

markkinatutkimuksella. Toinen hankaluus voi tulla osaavan henkilökunnan

puutteesta. Monet tekniikat ja metodit vaativat valmentajan tai tutorin, ainakin aluksi,

joka valvoo oikeaa suoritusta ja opastaa ongelmatilanteissa. Tähän pienillä yrityksillä

ei välttämättä ole varaa. Siksi metodologian tulisi olla helposti omaksuttavissa ja

tulosten nopeasti nähtävissä.

16

Taulukko 3, Ketterien metodologioiden ominaisuudet

Vastattava kriteeri: Ketterien metodologioiden ominaisuuksien

vastaavuus:

Luo uskottavuutta Subjektiivista, kaikki kyllä verrattuna ad hoc.

Resurssitarve Vaihtelee metodologioittain

Edut nähtävissä heti, joustava, kevyt Hyvä vastaavuus

Edullinen Vaihtelee metodologioittain

Ei vaadi koulutusta Vaihtelee metodologioittain

Nopea ja varma tulos Hyvä vastaavuus

Ei liian riippuvainen asiakkaasta Vaihtelee metodologioittain

Mukautumiskykyinen, ihmisläheinen Hyvä vastaavuus

Skaalautuu kasvun mukana Vaihtelee metodologioittain

Suunnitelmallisuus Vaihtelee metodologioittain

Laadunvarmistus Hyvä vastaavuus

Helppo omaksua ja maastouttaa Vaihtelee metodologioittain

Start-up yrityksen tilanne ja tarpeet näyttäisivät kutakuinkin sopivan ketteriin

prosesseihin. Ne soveltuvat pieniin tiimeihin ja keskittyvät start-upin kannalta

olennaiseen, eli tuotteen nopeaan kehitykseen ja toimitukseen. Ketterien

metodologioiden muokkautumiskyky nopeisiin tilanteisiin ja muuttuviin tarpeisiin

auttaa start-upia epävakaassa ympäristössään.

Taulukosta käy kuitenkin ilmi monia kriteereitä, joiden välillä ketterät metodologiat

17

eroavat toisistaan.

44..33 KKEETTTTEERR II EENN MMEETTOODDOOLLOOGGIIOO IIDD EENN LLYYHHYYEETT EESS II TTTTEELLYYTT

Esittelen ketterät metodologiat lyhyesti, ja etenkin miten ne eroavat toisistaan.

Tämän jälkeen vertailen edellisessä kappaleessa esille tulleita eroavaisuuksia

kriteerien suhteen.

4.3.1 EXTREME PROGRAMMING (XP)

XP koostuu 12 käytännöstä, joista monet tekniikat ovat viety äärimmäisyyksiin.

Suunnittelu, testaus ja toteutus tehdään miltei yhtä aikaa ja pareittain. XP käyttää

metaforia järjestelmän suunnittelussa, ja painottaa yksinkertaisuutta. Järjestelmää ei

tarkasti suunnitella kokonaisuutena vaan muokataan nopeasti kulloinkin kohdattujen

ongelmien myötä. Kaikkeen sovelletaan yksinkertaisinta mahdollista ratkaisua.

Toiminnallisuuksien suunnittelu tapahtuu pienissä pikemminkin minuuttien ja tuntien,

kuin päivien mittaisissa pyrähdyksissä, jonka jälkeen tehdään testit ennen varsinaista

koodia. Järjestelmää muokataan uudelleen (Refactor) aina kun tarvetta siihen

ilmenee tai joku tekijöistä havaitsee yksinkertaisemman tavan toteuttaa kyseinen

asia.

Toteutuksessa merkittävässä roolissa on pariohjelmointi, jolla pyritään virheettömään

koodiin ja jatkuvaan oppimiseen, sekä säilyttämään tieto ohjelmiston kehityksestä

yrityksessä, jos joku henkilö vaihtuu tai sairastuu.

Iteraation kiertoaika on melko kiinteästi määritelty 2-3 viikkoon. Iteraatioiden välissä

toteutettavat toiminnallisuudet priorisoidaan asiakkaan toimesta binäärisesti: toiminto

toteutetaan joko tässä syklissä tai sitten ei.

XP kuvaa enemmän miten asiat tulee tehdä kun muut metodologiat, jotka keskittyvät

18

toimintaympäristön ja puitteiden luomiseen. Alan Radding kuvaa (Radding 2002)

XP:tä preskriptiiviseksi ja jopa dogmaattiseksi.

4.3.2 CRYSTAL CLEAR

Crystal metodologiaperhe on erittäin joustava ja muokkautuu tilanteen mukaan. Se

antaa työryhmälle valtuudet määritellä prosessi mieleisekseen ja parantaa sitä sitten

jatkuvasti.

Crystal Clear on Crystal Methodologies -perheen pienin ja kevein ja tarkoitettu 4-6

henkilön ryhmille. Crystal Clear sisältää 20 artefaktia, joista vain muutama on

formaaleja ja loput epävirallisia, kuten jutustelu liitutaululla, keskustelut ja

sähköpostit.

Cockburn esittelee (Cockburn, 2000a) Crystal Clearin pienen ryhmän

metodologiaksi. Neljään rooliin tarvitaan eri ihmiset: sponsori, vanhempi

ohjelmoija/suunnittelija, ohjelmoija/suunnittelija ja käyttäjä (vähintään osa-aikainen).

Muita rooleja, jotka voivat mennä edellisten kanssa lomittain, ovat

projektikoordinaattori (Project Coordinator), liiketoiminta-asiantuntija (Business

Expert) ja yksi tai useampi vaatimustenkerääjä (Requirements Gatherer).

Kahden tai kolmen kuukauden välein ohjelmistosta toimitetaan uusi versio

iteratiivisesti. Prosessin etenemistä seurataan virstanpylväillä (Milestone), jotka

koostuvat ennemminkin toimituksista tai tärkeistä päätöksistä kuin

paperidokumenteista.

4.3.3 SCRUM

Scrumin nimi tulee Rugbyn (englantilainen jalkapallo) termistöstä, jossa se tarkoittaa

pikaista palaveria ennen koitosta. Siinä jaetaan ohjeet ja sovitaan mitä tullaan

19

tekemään. Tämä kuvaa hyvin Scrumin jokapäiväisiä lyhyitä palavereja (scrum), joissa

neuvotellaan tavoitteet päivälle ja puretaan esille tulleet ongelmat ja seurataan

projektin edistymistä. ”Scrum on kuin spiraalimalli nopeutettuna ja päivittäisillä

tapaamisilla terästettynä” (Rising et al., 2000).

Scrum luottaa pieniin, alle 10 henkilön ryhmiin, joilla on valtuudet tehdä päätöksiä ja

etukäteen suunnittelu, tehtävien määrittely ja johdolle raportointi on vähäistä. Scrum

ei ota samalla tavalla kantaa ohjelmoinnin käytäntöihin kuin XP, vaan keskittyy

pikemminkin iteratiivisen suunnitteluun ja edistymisen seurantaan. Jeff Sutherlandin

mukaan (Sutherland, 2001) Scrum toimii kaikissa ympäristöissä ja skaalautuu hyvin

ylöspäin.

Projektit jaetaan 30 päivän iteraatioihin, joita kutsutaan sprinteiksi. Ennen sprintin

alkua määritellään siihen kuuluvan toiminnallisuuden vaatimukset, jonka jälkeen

ryhmän annetaan toteuttaa se. Ideana on siis vakauttaa vaatimukset toteutuksen, eli

sprintin ajaksi. Projektin johtoa ei kuitenkaan irroteta tehtävistään sprintin ajaksi,

vaan joka päivä pidetään em. scrum. (Beedle et al., 1999)

4.3.4 FEATURE DRIVEN DEVELOPEMENT (FDD)

FDD (Coad, 1999) esittää tavan tuottaa ohjelmiston pienissä toiminnallisissa

palasissa, joista jokaisesta on hyötyä asiakkaalle. Aluksi luodun toteutettavan

järjestelmän malli ohjaa ikrementaalista tuotantoa.

FDD sisältää neljä perus prosessia: kokonaisuuden kuvaaminen, yksityiskohtainen

toiminnallisuuslistan luominen, suunnittelu toiminnallisuus kerrallaan ja rakentaminen

toiminnallisuus kerrallaan. Tuotannon etenemistä seurataan tarkasti ja seurannasta

saadaan automaattisesti raportteja esimiehille ja johdolle sekä asiakkaalle.

Prosessit viedään läpi neljän pää roolin avulla. Johtava Arkkitehti (Chief Architect)

20

suunnittelee asiakkaan kanssa kokonaisuuden. Johtava Ohjelmoija (Chief

Programmer) valitsee toiminnallisuus ryhmien jäsenet ja organisoi toteutuksen.

Luokan Omistaja (Class Owner) suorittaa toiminnallisuuden toteutuksen, testauksen

ja pitää katselmuksen. Luokan omistaja voi olla mukana useassa ryhmässä ja

Johtava ohjelmoija voi toimia useamman toiminnallisuus ryhmän vetäjänä.

Asiakas on mukana kokonaismallin suunnittelussa ja toiminnallisuuksien

määrittelyssä, joita tarkennetaan, ryhmitellään ja lopuksi priorisoidaan. Tämän

jälkeen määritellään minimaalinen järjestelmä, jolla kuitenkin on vielä taloudellista

arvoa. Toiminnallisuudet ryhmitellään ja toteutetaan 1-2 viikon jaksoissa. Kun johtava

ohjelmoija on tyytyväinen kunkin iteraation tulokseen integroidaan muutokset

ohjelmistoon.

Artefakteja on vain neljä: toiminnallisuuslista, luokkakaavio, sekvenssikaavio ja koodi.

4.3.5 DYNAMIC SYSTEMS DEVELOPEMENT METHOD (DSDM)

DSDM sai alkunsa Englantilaisten yritysten yhteenliittymästä (DSDM Consortium),

mistä se on vallannut maailmaa. Yhteenliittymän kehittämänä se poikkeaa muista

metodologioista kattavalla ja täysipäiväisellä yritystuella ja organisaatiota tukevalla

koulutuksella ja opastuksella. DSDM Consortium järjestää kursseja ja koulutusta ja

painaa ohjekirjoja ynnä muuta. Se on myös maksullinen, joten pienen yrityksen

näkökulmasta se saattaa olla poissa vaihtoehdoista, jos raha on kynnyskysymys.

Toisaalta ulkoistettu koulutus, tuki ja ohjaus säästäisivät henkilöresursseja, jos

investointi koetaan kannattavaksi.

Highsmithin mielestä (Highsmith, 2001) DSDM on kattavin ohjelmiston koko

elinkaaren hallinnassa ja dokumentoinnissa osittain DSDM Consortiumin takia.

Prosessi alkaa toteutettavuustutkimuksella (Feasibility study), jossa arvioidaan onko

21

DSDM sopiva kyseiseen projektiin. Liiketoimintatutkimus (Business study) koostuu

lyhyistä ryhmätöistä, joissa pyritään ymmärtämään liiketoimintaympäristö. Näistä

alkuvaiheista saadaan projektisuunnitelma ja järjestelmän arkkitehtuurin

hahmotelma. (DSDM Consortium, 2002b)

Loppuosa prosessista muodostuu kolmesta yhtyeenliitetystä syklistä:

Toiminnallisuusmallin sykli tuottaa analyysejä, dokumentaatiota ja prototyyppejä.

Suunnittelu ja toteutus sykli kehittää ohjelmiston iteratiivisesti ja implementointi sykli

käsittelee operatiiviseen käyttöönottoon sijoitusta.

Toteutettavien toiminnallisuuksien priorisointi tapahtuu neljässä portaassa

(MoSCoW): 1) täytyy olla (Must have), 2) pitäisi olla (Should have), 3) voisi olla

(Could have) ja 4) haluttaisiin joskus (Want to have sometime). (DSDM Consortium,

2002c)

55 LLUUOOKKIITTTTEELLUU JJAA LLAAJJ IITTTTEELLUU

Wardin mielestä (Ward, 2001) ketterien metodologioiden vertailu rinta rinnan on

pohjimmiltaan merkityksetöntä. Ja keskustelua, joissa formaaleja prosesseja

verrataan rinta rinnan ilman tietyn ryhmän ja tietyn tilanteen kontekstia, tulisi välttää.

Tässä tutkimuksessa kontekstia on pyritty luomaan karakterisoimalla start-upin

luonne ja tilanne, jolloin vertailu on mielestäni perusteltua. Vertailu helpottaa

havaitsemaan erilaisuudet ja valaisemaan metodologioiden eri ominaisuuksia, jolloin

niihin on nopeampi tutustua ilman syvällistä tuntemusta.

55..11 FFRROONNTT--LLOOAADDEEDD ,, BBAALLAANNCCEEDD JJAA BBAACCKK--LLOOAADDEEDD

Miller (Miller, 2001) jakaa metodologiat kolmeen luokkaan: 1) Front-loaded, 2)

Balanced ja 3) Back-loaded. Front-loaded prosesseissa paino on suunnittelulla ja

Back-loaded prosessit tuottavat pikaisesti minimivaatimukset täyttävän tuotteen ja

22

reagoivat nopeasti muutoksiin. Balanced prosessi pyrkii mukautumaan erilaisiin

tarpeisiin ja tarjoaa kompromissin edellisten väliltä.

Tämän mukaan Crystal metodologiat, ja FDD sijoittuvat Balanced kategoriaan ja

DSDM, Scrum sekä erityisesi XP Back-loaded. Front-loaded kategoriaan kuuluisi

esimerkiksi Rational Unified Process (RUP). RUP on Martin Fowlerin mukaan

(Fowler, 2001) raskaamman sarjan metodologia, vaikkakin kevennettävissä, eikä

siten ole otettu mukaan tähän tutkimukseen.

Metodologian valintaan start-upissa vaikuttaa miten selvä tehtävän ohjelmiston

tulevaisuus on. Etukäteen suunnittelulla voidaan välttyä turhilta kokeiluilta ja siksi se

on koettu tehokkaaksi prosessin nopeuttajaksi ja selkiinnyttäjäksi. Kuitenkin tilanteet

saattavat usein muuttua niin voimakkaasti, että suunnittelu on joko erittäin vaikeaa tai

jopa mahdotonta.

55..22 SSUUUUNNNNIITT TTEELLUUNN LLÄÄ HHTTÖÖKKOOHHDDAATT

Metodologiat ovat suunniteltu jotain ratkaisua tai ongelmaa silmälläpitäen tai

kehittyneet jossain ympäristössä, jonka jälkeen ideat on yleistetty ja muokattu

sopivaksi kokonaisuudeksi. Näin suunnittelun lähtökohdat ovat monesti erilaiset ja

metodologiat painottavat eri asioita. Ottamalla huomioon metodologian taustat

voidaan paremmin käsittää mihin sillä pyritään.

XP:n on nimensä mukaankin aggressiivisin ketteristä metodologioista. Robert L.

Glass kertoo (Glass, 2001) XP:n kehittäjän Kent Beckin vastanneen seuraavasti, kun

häneltä kysyttiin miten XP:n osat on valittu: ”he took all the best practicies he knew

and ’turned the knob up to 10 to see what happened.’ ”

Cockburn määrittelee Crystal metodologiaperheen perustuvan seuraavaan

ajatukseen ohjelmiston kehittämisestä: ”Software developement is a cooperative

23

game, in wich the participants help each other in reaching the end of the game – the

delivery of software”. Crystal metodologiat on kehittynyt keräämällä onnistuneiden

projektien onnistumisien syitä. Kaksi esille tullutta menestystekijää: pienet ryhmät

tuottavat parempia tuloksia kevyemmällä metodologialla ja yksinkertaisintakin

prosessin rajoitetta on liian vaikeaa noudattaa. (Cockburn, 2000c)

DSDM on suunniteltu keskittyen iteratiiviseen kehitykseen ja Rapid Application

Developement:iin. (RAD) Se on maksullinen ja sille tarjotaan koulutus- ja

ohjauspalveluita, joten se on selvästikin suunnattu vakavaraisemmille ja kypsemmille

organisaatioille.

FDD ratkoo liike-elämän vaatimuksen yhä nopeammista toimituksista ja sykleistä.

Tämä on erityisesti räätälöityjen sovellusten kehittäjälle toimiva lähtökohta, jolloin

asiakkaan kanssa ollaan tiiviissä yhteistyössä parhaan lopputuloksen

saavuttamiseksi.

Scrumin lähtökohtana on kaaoksen hallinta vain sen verran kuin organisaatio sitä

vaatii. Scrum on siis hyvä tilanteissa, joissa vaatimukset muuttuvat tai niitä ei edes

heti tiedetä tai muuten kaoottisessa ympäristössä.

55..33 SSKKAAAALLAAUUTTUUVVUUUUSS

Jos start-up yritys kasvaa nopeasti voi skaalautuvuus olla merkittävä tekijä

metodologian valinnassa. Toinen vaikuttava tekijä on ryhmäkoko, joka tulisi olla

mahdollisimman pieni, mutta silti toimiva. Eli joustavuus henkilömäärissä ja

tehtävissä on tärkeää.

XP:tä on kritisoitu (Glass, 2001) huonosta skaalautuvuudestaan suurempiin

ohjelmistoihin.

24

FDD on hyvin skaalautuva isoonkin projektiin, mutta suurten ohjelmistojen

pilkkominen toteutettaviin toiminnallisuuksiin saattaa olla hankalaa. Rajoittava

projektin kasvun tekijä on Palmerin mukaan (Palmer, 2000) vain johtavien

ohjelmoijien lukumäärä yrityksessä.

Crystal Clear on suunniteltu 4-6 hengen projekteille, mutta samasta

metodologiaperheestä löytyy lisää ohjeistusta ja painoa (Crystal Yellow ja Crystal

Orange), jos projektin koko kasvaa, jolloin sen avulla voi hallita suuriakin

ohjelmistoprojekteja ja organisaatioita.

DSDM skaalautuu hyvin ja koulutusta on tarjolla suurillekin ryhmille.

Scrum rajoittaa ryhmäkoon mielellään 10 henkilöön. Jeff Sutherlandin mukaan

(Sutherland, 2001) Scrum kuitenkin skaalautuu hyvin.

55..44 KKUURR II JJ AA SSUUVVAA IITTSSEEVVAA II SSUUUUSS

Cockburn jakaa metodologiat (Cockburn, 2000a, s. 51) sen mukaan millä tavoin ne

käsittelevät ihmisten yleisiä heikkouksia: kurilla (discilpine) tai suvaitsevaisuudella

(tolerance). Organisaation kulttuuri vaikuttaa metodologian sopivuuteen ja kurin tai

suvaitsevaisuuden ilmapiiriin. Ketterät metodologiat ovat ihmislähtöisiä, eikä kuri

tässä tilanteessa tarkoita lisääntynyttä byrokratiaa.

XP vaatii kuria, asennetta ja sitoutumista ja on siten discipline-tyyppinen

metodologia.

Crystal Clear edustaa taas hyvin suvaitsevaista metodologiaa. Ryhmä määrittelee

prosessinsa itse ja kehittää sitä eteenpäin. Toisaalta Crystal Clear vaatii myös tiettyjä

perusdokumentteja, jotka täytyy tehdä.

FDD ja DSDM sisältävät toimintatapoja ja prosesseja, jotka täytyy tehdä, mutta ei niin

25

määräävästi, tarkasti tai ankarasti kuin XP.

Scrum mukautuu hyvin monenlaisiin tilanteisiin ja on erittäin kevyt, joten asettaisin

sen suvaitsevaiseksi metodologiaksi.

55..55 SSTTAARRTT--UUPP IINN KKRR II TTEE EERR II TT EERR II MMEETTOODDOOLLOOGGIIOO IITTTTAA IINN

Taulukko 4, Ketterien metodologioiden erot kriteerien suhteen

Edullinen Helppo

omaksua

Koulutus ja

resurssitarve

Skaalautuva Kokonaisuuden

suunnittelu

Asiakas

mukana

Crystal

Clear

+1 +1 +1

DSDM -1 -1 +1 +1

FDD +1 +1 -1

XP -1 -1 -1 -1 -2

Scrum +2 +1 +1

Taulukkoon on kerätty pisteitä edellisen kappaleen pohdinnan perusteella sen

mukaan miten metodologia vastaa tiettyyn start-upin kriteeriin. Positiivinen luku

tarkoittaa hyvää vastaavuutta start-upin tarpeisiin ja negatiivinen heikkoa. Nollat ovat

selvyyden vuoksi jätetty pois kohdista, joista on vaikea nähdä eroja metodologioiden

välillä.

55..66 YYHHTTÄÄLLÄÄ II SSYYYYDDEETT JJAA EERROOTT

Ketterät prosessit ovat kaikki iteratiivisia, tuloksiin suuntautuneita ja keskittyvät

ihmisiin ennemminkin kuin dokumentteihin. Edellisissä kappaleessa esitettyjen erojen

26

lisäksi esimerkiksi eri metodologioiden laajuus, eli kattavuus vaihtelee melko paljon.

Laajuuden vaikutusta olisi tutkittava tarkemmin ja koska se ei ole juuri start-upin

kannalta kriittistä, vaikkakin merkityksellistä, olen sivuuttanut sen tästä tutkimuksesta.

XP kuvaa metodologioista eniten käytännön tekniikoita ja sääntöjä, joten sitä voi

soveltaa muiden metodologioiden kanssa rinnan.

Highsmithin mielestä DSDM ja Scrum voivat samanlaatuisina kilpailla keskenään, ja

toisaalta FDD ja Crystal Methodologies (Highsmith, 2001). DSDM ja Scrum ovat

samanlaatuisia prosessia ohjaavana ja määrittelevänä metodologiana, ja FDD ja

Crystal Clear luovat perustukset prosessille, jonka yksityiskohdat voi organisaatio tai

ryhmä itse muotoilla ja päättää.

Palmer, esittää FDD myönteisessä artikkelissaan (Palmer, 2000) XP:n ja FDD

eroiksi:

1) Ryhmäkoon, joka FDD:ssä skaalautuu paremmin ylöspäin. 2) Erona XP:hen FDD

määrittelee järjestelmän kokonaismallin (Domain Object Model), mikä vähentää

koodin uudelleen muokkaamistarvetta (Refactoring) 3) XP:ssä koodi omistetaan

yhteisönä, mistä on monia etuja, mutta FDD:ssä on pyritty säilyttämään samat edut

kuitenkin säilyttämällä yksilöllinen omistajuus. Tällöin tietämys projektin

lähdekoodista on Palmerin mielestä pikemminkin ryppäissä (clustered) kuin

hajaantunut kaikkialle, mikä voi olla merkittävää etenkin suurissa projekteissa. 4)

XP:ssä koodin katselmointia ei ole erikseen, kuten FDD:ssä vaan pariohjelmointi ajaa

tämän tehtävän. Katselmointi tuo lisää töitä, mutta toisaalta sillä on myös etunsakin

pariohjelmointiin nähden, kuten johtavan ohjelmoijan näkemys koodin ratkaisuihin. 5)

FDD ei määrittele yksikkötestausta niin tarkasti kuin XP vaan jättää päätäntävallan

johtavalla ohjelmoijalle. 6) XP:ssä projektin johto seuraa sen edistymistä, ja FDD:ssä

toiminnallisuuskohtainen seuranta (Tracking by Feature) antaa helposti aineistoa

27

mittaamisprosessiin.

Palmer on myötävaikuttanut FDD:tä, joten edelliset vertailut eivät ole aivan

puolueettomia.

66 SSTTAARRTT--UUPPIINN VVAALLIINNNNAATT

Balanced tyyppinen metodologia sopii start-up yritykselle ehkä parhaiten, sillä

suunnitelmallisuus ja kokonaiskuvan luominen helpottavat yrityksen strategista

johtamista. Suunnitelmia tarvitaan myös sijoittajien vakuuttamiseksi. Täsmällisen

tarkkoja suunnitelmia on kuitenkin mahdoton ja tehdä, koska tilanne muuttuu koko

ajan, joten iteratiivinen kehitys on miltei pakollista. Tällöin käytetään ns. vyöryvän

aallon periaatetta (Rolling Wave Principle), jolloin suunnitelmia tarkennetaan sitä

mukaa kuin projekti etenee. Back-loaded prosessi olla hyvä vaihtoehto, jos tilanne on

herkkä muutoksille, eikä kokonaiskuvan suunnitelmaa voida tehdä. Tällaisia voivat

olla mm. tutkimusprojektit.

Crystal-metodologiat perustelevat prosessin tarpeen ja motivoi ihmislähtöisesti

muokkaamaan prosessin tilanteeseen ja ympäristöön sopivaksi. Se antaa muista

poiketen jatkuvan prosessin kehittämisen haasteen ryhmälle. Tämä lähestymistapa

soveltuu mielestäni hyvin prosessiaan kehittävän start-upin tarpeisiin. Crystaliin voi

liittää tekniikoita muista prosessista ja se määrittelee vain tarvittavat elementit, jolla

tuotanto saadaan toimimaan hyvin.

Scrum sopii mielestäni erittäin nopeasti muuttuviin tilanteisiin ja lähes kaoottiseen

ympäristöön, jossa seuraavan toteutettavan iteraation onnistumista ei tiedetä.

Tällaisia voisivat olla esimerkiksi uusien teknologioiden kaupallistamis- ja

tutkimusprojektit, joiden toteutettavuutta ei voida ennakoida. Scrum voi olla jo lähellä

nykyistä määrittelemätöntä prosessia, joten sen maastouttaminen voi olla varsin

28

helppoa, jos pätevä scrum-osaaja (Scrum Master) on käytettävissä. Helpon

maastouttamisen tärkeys korostuu etenkin pienille start-upeille.

FDD tarvitsee asiakasta valitsemaan toteutettavat toiminnallisuudet ja sopii siksi

start-upeille, jotka toimittavat esimerkiksi räätälöityjä sovelluksia. Asiakkaan

puuttumisen voi korvata sisäisellä asiakkaalla, mutta todellisten tarpeiden

määrittäminen saattaa tällöin olla hankalaa. Asiakkaan sitouttaminen siirtää riskejä

asiakkaan puolelle ja ohjaa tuotekehitystä oikeaan suuntaan. Rajoittava tekijä FDD:n

kasvamisessa suurempiin projekteihin on johtavien ohjelmoijien määrä. Jos osaavaa

henkilökuntaa on riittävästi, on FDD mielestäni kevyt ja toimiva ratkaisu, jolla

saavutetaan tuloksia nopeasti ja hallitusti. FDD:n ongelmakentän kokonaismallin

rakentaminen voi olla ratkaisevassa asemassa uutta tuotetta kehitettäessä ja sen

ymmärtämisessä, jolloin suurilta yllätyksiltä vältytään ja strateginen tavoite on

kokoajan näkyvissä.

DSDM on mielestäni pienen ohjelmistoalan start-upin resursseille raskas, koska

usein aikaa koulutukseen tai kouluttautumiseen ei ole, tai muut taloudellisesti

merkittävämmät päätökset menevät edelle. Kokemusaineiston puute on jättänyt

DSDM:n vähemmälle huomiolle tässä tutkimuksessa, joten vertailu ei näiltä osin ole

kovin luotettava. Tämä saattaa olla myös viite siitä, että DSDM ei ole start-upin

kannalta helposti lähestyttävissä.

XP ei mielestäni välttämättä sovi yritykselle, joka haluavat uskottavuutta ja välttää

turhaa urheilua ja kokeilemista. Mark C. Paulkin mukaan (Paulk, 2001) XP:tä ei ehkä

tulisi käyttää korkeaa luotettavuutta tai todella kriittisiä sovelluksia toteutettaessa.

Toisaalta XP:n aggressiivisuus saattaa olla juuri se tarvittava imagon pönkittäjä, mikä

erottaa pienen start-upin muista ja nostaa sen nopeasti suurille markkinoille. Tämä

vaatii kuitenkin kaikilta mukana olevilta kuria, asennetta ja sitoutumista, joka ei

29

välttämättä ole saavutettavissa. XP luottaa mielestäni myös liikaa ihmisten, ja etenkin

ohjelmoijien, kyvykkyyteen suunnittelijoina ja ohjelmointikielten asiantuntijoina. Jos

sellaisia ei organisaatiossa ole, niin XP voi koitua erittäin vaikeaksi. Kuitenkin, jos

potentiaalia on, niin XP:n eri tekniikat, kuten pariohjelmointi nopeuttavat tietojen ja

taitojen välittymistä ja ihmiset kehittyvät nopeasti yhtä hyviksi. Tässä kuitenkin rajana

on se yrityksen paras ohjelmoija, ja tulokset riippuvat pitkälti hänestä. Palmer myös

huomautti (Palmer, 2000), että huonojen ohjelmointitapojen ja -ratkaisujen

välittyminen onnistuu pariohjelmoinnissa yhtä helposti kuin hyvienkin.

Onnistuakseen XP:n periaatteet ja tekniikat vaativat valmentajan, joka ohjaa ja

opastaa niiden suorittamisessa. Tähän ei pienellä yrityksellä välttämättä ole varaa ja

vaarana on että XP yritetään väkisin maastouttaa ja käsitykset vääristyvät.

XP vaatii myös asiakkaalta paljon, ja sen korvaaminen sisäisesti yrityksessä saattaa

olla hankalaa. Ja jos asiakas on olemassa, niin XP haluaisi periaatteessa olla

viiveettömässä kontaktissa häneen. Käytännössä tämän toteuttaminen saattaa olla

hyvin vaikeaa.

66..11 YYHHDDII SSTTEELLMMÄÄTT

Tilanteen mukaan eri metodologioita kannattaa myös yhdistellä ja poimia niistä

parhaat puolet, kuten jos XP:n pariohjelmointi tuntuu kokeilun arvoiselta, voi sitä

soveltaa muissakin metodologioissa. DSDM ja Scrum kuvaavat metodeja samalla

tasolla ja ovat siten toisensa poissulkevia kokonaisuudessaan. FDD ja Crystal-

metodologiat ovat myös samanlaatuisia, mutta mielestäni Crystalin periaatteet ja

ajatukset soveltuvat hyvin mihin tahansa ihmislähtöiseen lähestymistapaan.

Metodologiat ovat kuitenkin suunniteltu kokonaisuuksiksi, jossa osat tukevat toisiaan,

jolloin kannattaa perehtyä metodien sidoksiin ja valita toisiinsa sopivat tekniikat.

30

66..22 MMII SSTTÄÄ LLÄÄHHTTEEÄÄ LL II II KK KKEEEELLLLEE ??

Sutton esittelee (Sutton, 2000) seitsemän askelta miten lähestyä prosessia: 1)

Määrittele prosessi, 2) Pysy joustavana, 3) Käytä oikeita määrittelyn muotoja 4)

Yleistä määrittelyt (Generalize), 5) Opi ja käytä uudelleen (Learn and Reuse), 6)

Hanki oikeita ihmisiä ja 7) Kehitä prosessia (Process Improvement). ”Oikeiden

ihmisten hankkiminen” lienee vaikeinta start-up yrityksessä, koska rekrytointiresurssit

ovat rajalliset. Suttonin mukaan hyvä ohjelmistokehittäjä on joustava ja pystyy

mukautumaan erilaisiin tehtäviin. Näin ollen start-upissa on kiinnitettävä erityistä

huomiota henkilöiden valintaan ja painotettava osaamisen lisäksi myös soveltuvuutta

olemassa olevaan ympäristöön ja ilmapiiriin.

6.2.1 XP:N ENSIMMÄISET KÄYTÄNNÖT

Jotta XP toimisi kokonaisuutena Nawrocki et al. ovat määritelleet (Nawrocki et al.,

2001) Capability Maturity Model:n (CMM) kaltaisen mallin XP:lle – XP Maturity Model

(XPMM). Mallin toisella tasolla, Initial, on ensimmäiset käytännöt ja periaatteet, jotka

tulisi ottaa prosessiin mukaan. Käytännöt ovat jaettu kahteen ryhmään: 1)

asiakassuhteen hallinta (Customer Relationship Management, CRM) ja 2) tuotteen

laadun varmistus (Product Quality Assurance, PQA). CRM osa sisältää yhteensä 11

metodia, joista joitain on hieman kevennetty. PQA osassa niitä on seitsemän. Nämä

metodit muodostavat joukon käytäntöjä, jotka tulisi maastouttaa, jotta XP toimisi

kokonaisuutena. Lista on pitkä ja kaikkien toteuttamiseen nopealla aikataululla ja

vaivattomasti saattaa olla liian raskasta start-up yritykselle. Toisaalta, kuten jo totesin

start-up yritys voi olla XP:n maastouttamisen kannalta helppo tapaus, jos koko

henkilöstö pitää ideasta ja omistautuu käytäntöjen opettelemiseen ja toteuttamiseen.

XP:tä voi myös lähestyä, kuten Kent Beck ehdottaa (Beck, 1999), ottamalla esille

31

tullut ongelma ja ratkaista se XP:n tyylillä.

77 YYHHTTEEEENNVVEETTOO JJAA PPÄÄÄÄTTEELLMMÄÄTT

Start-upin luonteesta ja ympäristöstä johdetut kriteerit sopivat ensi silmäykseltä

erittäin hyvin ketterien metodologioiden kuvauksiin. Syvemmin tarkasteltaessa

kuitenkin huomataan miten eri metodologiat eroavat toisistaan ja summittainen

valinta voi olla kohtalokasta.

Nopeisiin muuttuviin tilanteisiin soveltuva Scrum ei välttämättä sovi hyvin

määriteltyihin ja suoraviivaisiin toteutusprojekteihin. XP ei taas skaalaudu laajojen ja

monimutkaisten järjestelmien kehitykseen, jossa tarvitaan tarkkaa

suunnitelmallisuutta. Metodologia on siis valittava aina tilanteen mukaan ja niistä voi

yhdistellä itselleen sopivan kokonaisuuden. Mikään metodologia ei heti suoraan toimi

sellaisenaan, vaan mukauttaminen yrityksen arvoihin, tottumuksiin, asenteisiin ja

ihmisiin on tärkeää. Start-upin ensiaskeleet alkaisivat peiliin katsomisella ja tilanteen

hahmottamisella, eli nykyisen prosessin määrittelemisellä.

Merkittävimmät eroavaisuudet löytyivät näissä kriteereissä: 1) kokonaisuuden

suunnittelu, 2) helppo omaksuttavuus, 3) koulutus ja resurssitarve, 4) asiakkaan

mukanaolo, 5) skaalautuvuus ja 6) edullisuus.

Näiden perusteella päädyin seuraaviin suosituksiin:

Crystal Clear on hyvä jos ongelmia halutaan ratkoa ihmislähtöisesti: Ryhmä

määrittelee toimintatapansa ja kehittää metodologiaa sitä kautta. Crystal

Methodologies –perheessä on myös paljon kasvun varaa ja tarvittavia

lisäelementtejä, esimerkiksi projektinhallintaan, voidaan ottaa käyttöön aina tarpeen

mukaan.

Scrum sopii esimerkiksi tuotekehitysprojekteihin, joissa tulevaisuus saattaa olla

32

hyvinkin epäselvä. Scrum on myös erittäin kevyt ja helposti omaksuttavissa, joten

erittäin hyvä vaihtoehto etenkin pienelle start-upille.

FDD sopii esimerkiksi räätälöityjen sovellusten kehitysprojekteihin, joissa asiakas on

mukana. Se on joustava ja tarjoaa sopivasti suunnitelmallisuutta sekä muutoksen

hallintaa. Se ei kuitenkaan määrittele toimintatapoja niin tarkasti kuin esimerkiksi XP.

Eri metodologioiden yhdisteleminen tuo tarvittavat ja sopivat osat yhteen.

XP voi olla sopiva, jos halutaan sen aggressiivisuutta ja asiakas on siihen valmis.

Kokonaisuudessaan XP on kuitenkin useiden start-up yritysten resurssien ja

tavoitteiden ulkopuolella. XP:tä voi sen kehittäjän Kent Beckin mukaan (Beck, 1999)

helposti kokeilla käyttämällä sitä vastaan tulevan ongelman ratkaisemiseen, ja siten

nähdä sopiiko se yrityksen kulttuuriin.

Metodologian maastouttaminen voi olla vaikeaa start-up yrityksessä johtuen

henkilöstön roolien vaihtumisesta ja rajallisista resursseista. Toisaalta, kaikki kerralla

-lähestymistapa saattaa myös toimia, riippuen henkilökunnan valmiuksista. Yleensä

metodologian maastouttaminen kannattaa suunnitella ja poimia vain

välttämättömimmät ja eniten hyötyä tuovat elementit. Prosessin taakka tulisi olla

mahdollisimman pieni. Prosessin määrittelemisen ja kehittämisen lisäksi rekrytointi ja

sopivien ihmisten löytäminen on tärkeää metodologian ja koko start-upin

onnistumiselle.

Cockburn esittää (Cockburn, 2000a, s.143) mm. seuraavia kysymyksiä

metodologian arvioinnille: 1) Kuinka nopeasti metodologia sallii ihmisten vaihtumisen

ja koulutuksen? 2) Kuinka suuri vaikutus sillä on myynti prosessiin? 3) Kuinka paljon

se antaa ihmisille vaputta? 4) Kuinka nopeasti se sallii reagoinnin muuttuviin

tilanteisiin?

33

88 LLÄÄHHDDEELLUUEETTTTEELLOO

1. Beck, Kent. 1999. Embracing Change with Extreme Programming. Computer,

October 1999. IEEE 1999, 0018-9162/99.

2. Beedle, M., M. Devos et al. 1999 SCRUM: An extension pattern language for

hyperproductive software developement. Pattern Languages of Program

Design 4, N. Harrison, B. Foote, and H. Rohnert. Addison-Wesley.

3. Coad, De Luca. 1999. Java Modeling in Color with ULM. Chapter 6. Prentice

Hall 1999. Saatavissa:

<http://www.togethersoft.com/files/services/jmcu/chapter6.pdf>

4. Cockburn, Alistair & Jim Highsmith. 2001. Agile Software Development: The

People Factor. Computer, November 2001, pp. 131-133.

5. Cockburn, Alistair. 2000a. Agile Software Development.

6. Cockburn, Alistair. 2000b. Crystal Clear: A Human-Powered Methodology for

Small Teams. Addison-Wesley 2000. Esiversio saatavissa:

<http://members.aol.com/humansandt/crystal/clear/>

7. Cockburn, Alistair. 2000c. Selecting a Project’s Methodology. IEEE Software,

July/August 2000.

8. DSDM Consortium. 2002a. DSDM and Extreme Programming (XP).

9. DSDM Consortium. 2002b. The DSDM Lifecycle [online]. [viitattu 24.

helmikuuta 2002] Saatavissa:

<http://www.dsdm.org/about/lifecycle.asp>

10. DSDM Consortium. 2002c. The Underlying Principles [online]. [viitattu 24.

helmikuuta 2002] Saatavissa:

34

<http://www.dsdm.org/about/principles.asp>

11. Fowler, Martin. 2001. The New Methodology [online]. Lokakuu 2001 [viitattu

15. maaliskuuta 2002] Saatavissa:

<http://martinfowler.com/articles/newMethodology.html>.

12. Glass, Robert L. 2001. Extreme Programming: The Good, the Bad, and the

Bottom Line. IEEE Software November/December 2001. IEEE 2001, 0740-

7459/01. ss. 111-112.

13. Highsmith Jim. 2001. DSDM and the Agile Software Developement

Movement, The DSDM Magazine, 11/9/01, s. 2.

14. Highsmith, Jim & Alistair Cockburn. 2001. Agile Software Developement: The

Business of Innovation. Computer, September 2001, s. 120-122.

15. Kivi, Jeremy et al. 2000. Extreme Programming: A University Team Design

Experience. IEEE 2000, 0-7803-5957-7/00

16. Miller, Granville. 2001. Sizing Up Today’s Lightweight Software Processes. IT

Pro, May/June 2001.

17. Nawrocki, Jerzy et al. 2001. Toward Maturity Model for eXtreme Programming.

Ponzan University of Technology. IEEE 2001, 1089-6503/01.

18. Palmer, Steve. 2000. Feature Driven Development and Extreme

Programming. Coad Letter, July 2000, Issue 70. Saatavissa:

<http://www.togethercommunity.com/coad-letter/Coad-Letter-0070.html>

19. Paulk, Mark C. 2001. Extreme Programming from a CMM Perspective. IEEE

Software, November/December 2001. IEEE 2001, 0740-7459/01.

20. Radding, Alan. 2002. Extremely agile programming. Computerworld, 4

February 2002, vol 36.

35

21. Rising, Linda et al. 2000. The Scrum Software Developement Process for

Small Teams. IEEE Software, July/August 2000. IEEE 2000, 0740-7459/00.

22. Sutherland, Jeff. 2001. Inventing and Reinventing SCRUM in Five Companies.

21 September 2001.

23. Sutton, Stanley M. Jr. 2000. The Role of Process in a Software Start-Up. IEEE

Software, July/August 2000.

36