Politiikan kinkkiset ongelmat

Sisäpolitiikassa meillä täällä Suomessa on ainakin kaksi isoa kokonaisuutta, joissa olisi kovat tarpeet kehittämiselle ja joissa on oikein huono track record.  Puhun tietysti sote-uudistamisesta, työttömyysturvasta ja kannustinloukuista.

Kuuntelin politiikkaradiota jonain päivänä ja siellä puhuttiin siitä, kuinka edellä mainitut ongelmat ovat oikein visaisia ja niihin pitäisi pystyä oikein kovasti keskittyä ja miettiä. Että saataisiin parempia ratkaisuja.

Ja toisaalta aktiivimallikeskustelussa puhuttiin siitä, kuinka pitäisi puhua isommista kokonaisuuksista joiden sisällä voidaan neuvotella ja pyöristää kulmia (hauska juttu muuten, että aktiivimallin kritisoijat sanovat tällaista, sillä aktiivimalli oli yksi osa isompaa kokonaisuutta, jota kukaan ei ilmeisesti lukenut..). Eli pitäisi tehdä kuten sotea, isoa kokonaisuutta kerralla keskittyen ja oikein visaisiin ongelmiin tarkasti hyviä ratkaisuja keksien.

Voi olla että tuossa on perää, mutta kovin hyvin se ei tunnu nyt onnistuvan. Sekä yksittäiset muutokset (kuten kiky), että hieman isommat (aktiivimalli) ja erittäin isot (sote) ovat olleet vahvasti vastatuulessa. Nyt esimerkiksi Lepomäki ehdottaa sotessa nimenomaa pienin askelin kehittämistä suuren mullistuksen sijaan.

Soutaa, huopaa.

Politiikka on keskellä yhä nopeammin muuttuvaan maailmaa. Se maailma on sellainen, jossa kaikki riippuvuudet ja kerrannaisvaikutelmat ovat mahdotonta selvittää etukäteen, vaikka jälkikäteen viisastelu on helppoa.

Istuva hallitus on yrittänyt saada jonkun version ulos, josta voisi sitten iteroida ja korjata. Se taas antaa poliittisille vastustajille paljon pelimerkkejä. Kritisoidaan liian kevyttä valmistelua, kun pitäisi suunnitella paremmin.

Mutta kuinka suunnittelet paremmin, kun yhtäkkiä kaatuu Lehman Brothers ja sitten vähän myöhemmin Syyriasta tulee miljoona pakolaista Eurooppaan?

Ei ole helppoa.

Jossain täysin erilaisessa maailmassa, keskellä softakehitystä, eletään jossain määrin samaa muistuttavassa problematiikassa. Alustat, ympäröivät järjestelmät, niitä käyttävät ihmiset ja tarpeet muuttuvat vauhdilla. Huonosti menneitä softaprojekteja analysoidessa on keskusteltu siitä, että tämä olisi pitänyt suunnitella paremmin.

Mitä sitten softamaailmassa on tehty? Kompleksista ratkaisukenttää on lähdetty ratkomaan ketterillä menetelmillä, joissa projektia ei ohjata tarkalla ennakkoon laaditulla ohjeistuksella, vaan enemmänkin visiolla ja arvo-ohjauksella. Agile Manifesto on varmaan tuttu kaikille.

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Olen ollut projekteissa mukana, jossa Agilen arvoilla on saavutettu parempia tuloksia kuin uskottelemalla itselleen, että jokin kompleksi asia tai ongelmakenttä voidaan kokonaan ennakkoon suunnitella. Tai että se kannattaisi ennakkoon suunnitella. Voitot on saatu nopealla palautesyklillä ja reagoinnilla uusiin tarpeisiin ja tilanteisiin.

Olen yrittänyt pohdiskella, voisiko jotain oppeja tästä käyttää politiikassa. Jotainhan on yritetty lanseerata, puhutaan kokeiluista. Kokeillaan perustuloa. Sotea luvataan korjata heti lain säätämisen jälkeen.

Mutta onko palautesykli korjaamiseen tarpeeksi tehokas, jos se on käytännössä eduskuntavaalit ja sen jälkeen uudet visionäärit lähtevät jatkamaan ratkaisun rakentamista – kenenkään kokonaista visiota ei toteuteta, vaan jokaisen visiota vähän. Tuo viimeinen lause visiosta voisi olla suoraan projektiretrosta, kun on keräännytty miettimään, miksi projekti ei saavuttanut sille asetettuja tavoitteita.

Valtakunnan politiikka ei ole projekti, mutta samaa problematiikkaa selvästi on. Maailma muuttuu nopeammin kuin koskaan ja 20 vuoden valmistelun jälkeenkin voimme törmätä tilanteeseen, että käyttöön ehdotettava sote on uskomatonta tuubaa.

Ehkä politiikka ei voikaan vastata nykymaailmaan politiikan nykyisillä rakenteilla ja mekanismeilla. Ehkä tarvitaan uudistusmielisiä, jotka ovat valmiita uudistamaan myös poliittisia prosesseja.

Olen jo jonkin aikaa kaivannut politiikassa sellaista vision kuvaamista, että millaista maailmaa halutaan rakentaa. Esimerkiksi tukiviidakon osalta kaipaan visiota siitä, mitä se täydellisyydessä olisi. Perustulo on hyvä visio, jota kohti voi pyrkiä, mutta jota tuskin koskaan saavutetaan.

Voisiko samanlainen visio-ohjaus toimia myös politiikassa? Mutta yli 4-vuotiskauden visio vaatisi sitten käytännössä parlamentaarisen vision ja se on nykyisessä vastakkainasettelun maksimoimisessa vaikeaa. Antero Vartia kertoikin, että ei ole 3 vuodessa ollut kuin yksittäisissä aidoissa dialogeissa eduskunnassa. Muu on vaan vastakkainasettelumöyhyämistä omista poteroistaan.

Jos meillä olisi yhteinen visio sotesta, niin voisiko sitä sitten edistää pienin askelin? Eli sen sijaan, että yritetään runnoa maakuntamallit ja kymmenen miljardin rahoitus läpi kerrasta, niin puhuttaisiinkin siitä visiosta (ihmisten samanarvoisuus jne) ja pyrittäisiin tekemään pienempiä muutoksia kerrallaan. Pienemmillä muutoksilla huonotkin ratkaisut olisivat sellaisia, että ihmisten elämä ei menisi kokonaan pilalle ja niitä olisi helpompi korjata. Palautesykliä saataisiin nopeutettua ja poliittinen eri ideologioiden vuorottainen ohjaus ei ehkä haittaisi – tai sitten se estäisi aina kaiken kehittymisen.

Agilen arvoissa puhutaan sitoutumisesta, avoimuudesta ja fokuksesta. En tiedä voiko ne koskaan sopia ainakaan siihen politiikkaan, mitä vuonna 2018 tehdään. Mutta mielenkiintoinen ajatusleikki tämän on.

Ketterät menetelmät

Jostain syystä blogosfäärissä (tyhmä sana, siksi juuri käytän sitä) on puhuttu viimeaikoina useissa eri paikoissa ketteristä menetelmistä. Esimerkkinä otetaan Perse-Janne (kuten lehdistö ko. jamppaa puhuttelee) ja MBnetin net.nyt. Kirjoittajat kyllä tietävät mistä asiassa on kyse, mutta monille lukijoille ketterät menetelmät eivät ole tuttuja tai edes kiinnostavia. Kuitenkin kandidaatintyöni käsittelee ketteriä menetelmiä, kuten myös tämä työnkuvani täällä LTY:llä, joten koin tarpeelliseksi itsekin sanoa jotain, selvittää hieman asioita ja kertoa ehkä jotain uuttakin.

Ketterät menetelmät ovat siis ohjelmistokehityksen tapoja, usein niitä kutsutaan ohjelmistotuotannon menetelmiksi. Ne poikkeavat perinteisistä (kutsutaan myös formaaleiksi) menetelmistä hyvin erilaisten lähtökohtien vuoksi. Softaa ei suunnitella kerralla loppuun, kehitystä tehdään iteraatioissa (pienissä ’hyppäyksissä’) ja kehityksen aikaista dokumentointia vähennetään tehokkaalla sisäisellä viestinnällä. Ja mikä tärkeintä, testausta tehdään koko ajan, periaatteessa joka yönä käännetään uusi toimiva (joskin ominaisuuksiltaan todennäköisesti vajaa) versio ohjelmasta.

Agile Manifesto vuonna 2001 toi menetelmät rysäyksellä suuremman yleisön tietoon. He esittelivät idean lyhyesti ja ytimekkäästi. On tärkeämpää tuottaa laadukas ohjelmisto ajoissa, kuin nyhrätä byrokratian kanssa ja tehdä samoja asioita yhä uudelleen. On parempi mukautua siihen, että ohjelmistovaatimukset muuttuvat, kuin yrittää runnoa väkisin muutosta vastaan.

Suomessa ensimmäisiä yrityksiä, joka on lähtenyt täysillä ketteriin menetelmiin mukaan, on F-Secure (lue juttu). Toki tuon tiedon ilmestymisen jälkeen löytyi ties minkä kiven alta puku-ukkoja, jotka väittivät olleensa ketteriä jo vuosikymmeniä, mutta unohdetaan heidät. VTT ajaa Suomessa voimakkaasti ketterien menetelmien kehitystä ja käyttöönottoa.

There’s no silver bullet kuuluu joku nörttiläppä. Ja oikeassa on. Valheellisesti uutisoinnissa annetaan sellainen käsitys, että ketterissä menetelmissä ei ole mitään ongelmia. On niissä. Mutta ongelmat ovat erilaisia kuin perinteisissä vesiputousmalliin pohjautuvissa. Ne ovat voitettavissa olevia.

Varsinkin näin tuoreen ideologian ja menetelmän (-tavan toimia) kanssa ovat ongelmina tietysti ihmisten asenteet, opitut tavat ja niiden pois oppiminen. Unohtaminen. Mikä ikinä olisikaan hyvä sana. Ihmisten vastuualueet ja työtavat muuttuvat merkittävästi, kun ohjelmistotiimi vaihtaa perinteisestä toiminnasta ketteriin menetelmiin. Tiimit ovat itseohjautuvia, projektipäällikkö ei ole enää se ruoskija, vaan se, joka huolehtii asiakaskommunikaatiosta, seuraa ohjelmiston kehitystä, mittaa sitä ja keskustelee ja palaveroi joka päivä ohjelmistokehittäjien kanssa. Ylipäätään koko ketterät menetelmät -ideologiaa kuvaa yhteisöllisyys ja yhteistyöhalu. Perinteiseen protect the barriers systeemiin ei haluta lähteä ja siihen yritetään löytää vastakeinoja.

Asiakkaan osuus koko projektissa kasvaa huomattavasti. Useimmat ketterät menetelmät (erilaisia menetelmiä jotka luokitellaan ketteriksi on useita, jopa kymmeniä. (ks. agile.vtt.fi)) haluaisivat pitää asiakkaan edustajan jatkuvasti läsnä (on-site). Tämä on toinen mittava ongelma. Kuinka moni asiakas on valmis lähettämään jonkun yrityksen keskijohdosta (koska asiakkaan edustajalla on oltava riittävästi valtaa tekemään päätöksiä) pitkiksikin aikaa ohjelmistoyritykseen. Lisäksi asiakkaan pitäisi olla yhteistyöhaluinen, eikä pitää prosessiin osallistumista pakollisena pahana. Tämä on ongelma, mutta esimerkiksi Mobile-D (ketterä menetelmä) ei vaadi asiakkaan jatkuvaa läsnäoloa.

Koodin tekemisessäkin on eroja. Extreme Programming (XP) esittää kahden koodaajan ideaa, eli koodia työstetään parityönä. Toinen varsinaisesti kirjoittaa ja toinen seuraa vierestä, antaa ideoita ja yrittää löytää virheet. Parikoodausta pidetään keskeisenä asiana ketterissä menetelmissä, vaikka se ei todellakaan ole sitä. Muita koodaamiseen liittyviä asioita ovat koodin omistajattomuus, eli kuka tahansa voi muokata mitä tahansa osaa ohjelmasta ilman massiivista sähköpostin lähettelyä. Se on helppoa, koska ketterissä menetelmissä painotetaan (suullisen) informaation liikettä, pyritään saamaan koko ohjelmistotiimi samaan avoimeen tilaan ja pidetään päivittäin edistymiskokouksia (kestoltaan noin 15min). Jotta kaikki tietäisivät mitä muut tekevät (tätä korosti myös Pirjo Ståhle tietojohtamisen kursseillaan).

Testaus on nostettu ajavaksi tekijäksi ohjelmistokehityksessä ketterissä menetelmissä. Ehkä suorastaan vallankumouksellinen idea kehittää ensin testit ja sitten ohjelmistot, jotka läpäisevät testit, on keskeisenä ketterissä menetelmissä. Tällä tavoin rajataan koodaajan innovaativisuutta väärässä paikassa (eli poistetaan featureviidakon mahdollisuus (featureviidakko = paljon ominaisuuksia, jotka ovat kehittäjän mielestä kivoja, mutta joista yhtäkään ei ole tunnistettu määrittelyssä / vaatimusten keräämisessä)) ja pysytään paremmin aikataulussa.

Yhteenvetona voidaan sanoa, että ketterät menetelmät ovat paljon kaikkea muuta kuin koodaustapojen muutos, joskin se muuttaa myös toteutustapaa. Testaus on tärkeää, johdon asema muuttuu ratkaisevasti, ohjelmistotiimille annetaan valtaa muuttaa oma-aloitteisesti toimintaansa parantaakseen tehoa ja niin edelleen. Perinteiset sudenkuopat, jotka johtuvat viime vaiheen testauksesta, pyritään välttämään jatkuvalla testauksella ja lyhyellä iteraatiovälillä.

Kirjoja ja julkaisuja ketteristä menetelmistä on kirjoitettu paljon ja niitä tulee kiihtyvällä vauhdilla. Jos kiinnostus tietää lisää heräsi, Google Scholar auttaa. Erityisesti voin suositella alkukatsaukseksi Abrahamssonin ja kumppaneiden julkaisua Agile software development methods