Jos Jumala rakastaa vielä yhtään niin aikaa volvomiehenä on loppuelämässäni jäljellä kuusi tuntia. Aikaa tappaakseni kerron tässä tarinan miksi ruotsalainen Volvo ei kykene tekemään monimutkaista ohjelmistotuotetta, kuten nykyiset autot ovat.
Volvon laatu verrattuna bemariin on selvästi eri liigassa. Ruotsalaisten ylivertainen kyvykkyys on paketoida paskaa houkuttelevaan pakettiin ja toisaalta pistää possulle huulipunaa just sen verran, että possun ostajaa hotsittaa ja kaupat tulee. Vuosikymmenten autotuotanto on opettanut ruotsalaisille kyvykkyyden lajissa, joka on melkein yhtä vaikeaa kuin ohjelmistot, eli autojen kokoonpanon. Oven mennessä kiinni tulee oven kiinnimenon ääni eikä mikään välimeren räsähdys; vivut, napit ja kaikki mekaaninen liikkuva tuntuu kaikilla aisteilla hyvältä. Ei ruotsalainen tietenkään sakemanneille pärjää, joiden kokoonpano on maagista, mutta hyvin Volvo pärjää ranskanpulliin, makarooneihin, jenkkeihin ja korkkeihin verrattuna. Palaan tulevissa postauksessani vielä siihen nälkävuoden mittaiseen vika- ja featurelistaan, mikä minulla oli ilo kokea, mutta nostettakoon tässä yhteydessä kuitenkin se, että Volvo nitisi ja natisi pakkasella aivan helvetisti. Eli voitte vaan kuvitella bemarin ja volkkarin viiksekkäiden keskivartalolihavien tuotantojohtajien ei-hyväksyvän, säälivän ja pilkallisen ilmeen tähän. Ohjelmisto on kuitenkin se varsinainen murheenkryyni. Ohelmiston laatu.
Laatuongelman voi ajattelematon äkkiä erehtyä yhdistämään puutteelliseen testaukseen. Ongelman syyt ovat kuitenkin syvemmällä. Volvo Carsilla juurisyy on kammottava yrityskulttuuri yhdistettynä ruotsalaisten sosiaaliseen ohjelmointiin. Ruotsalaiselle on tärkeintä, että näyttää, että kaikki menee hienosti. Vaikeista asioista ei puhuta: ruotsalainen ei vain kykene siihen. Kenellekään ei saa tulla paha mieli niin, että itse näkee, että tulee paha mieli. Fikassa vaan jutellaan mukavia. Koska aina menee hienosti ja vaikeista asioista ei voida puhua niin ongelmiin ei puututa ja kaikki mikä menee huonosti menee huonosti ikuisesti.
Kommunikaatiokulttuuri johtaa siihen, että väärät ihmiset väärillä ominaisuuksilla saavat vastuuta. Jos joku korjaa asioita tai muuten siivoaa liiteriä niin muut pitävät todella vaikeana tyyppinä. Varmiten ylenee olemalla mukava fikassa, mukava muualla, ei keikuta venettä, tukee täysillä status quota, eikä yritä parantaa mitään. Tämän lisäksi, jos on vielä nainen, etninen tai vaikka jotenkin vammainen niin pääsee jonon kärkeen.
Ohjelmistokehitys on tyypillisesti ulkoistettu partnereille, VCC:n tapauksessa varmaan jollekin Cognizantille. Muutaman vuoden välein tehdään IT-ajuinen harjoitus, jossa kehitys- ja ylläpitopalvelut ulkoistetaan uudelle systeemi-integraattorille: sille joka lupaa eniten halvimmalla. Koska linjajohtoon kertyy saamattomia ja epäpäteviä ihmisiä niin konsultit palkataan tekemään työt ja vetämään ohjelmistohankkeita.
Koska ketterä kehitys on avain onneen niin Volvo Carskin eittämättä vaatii niitä toimittajiltaan. Epäpätevyyden ja konsensusfiksaation vuoksi mitään ei kyetä priorisoimaan, minkä seurauksena muotoutuu massiivisia ohjelmistoreleaseja, jotka tuotantosuunnitelmien vuoksi pitää tuottaa kiinteässä, tiukassa aikataulussa. Eli seurauksena on liian iso, fixed-scope, fixed-schedule ohjelmistotuote, joka runnotaan johonkin agile-kehikkoon, jossa toimijat näyttelevät tunnollisesti agile pantomiimia. On standuppia, sprinttiä ja burndownia ja reviewta.
Softatuotteen jokaikisen featureteamin jokaikinen sprintti jää tavoitteista. Puuhastelutiimit tuottavat kyllä arvoa lisäämätöntä tavaraa ajallaan: dokumentaatiota tai devopsia joka optimoi jotain mitä ei tarvita. Näin hankkeen mittarit näyttävät paremmalta kuin oikeasti onkaan. Ulkoistettu hankejohtaja kysyy toimittajan managerilta, että ollaanko kriittisten softaaikataulussa? Vähän ollaan jäljessä. Pystytäänkö kirimään. Pystytään (kun lyhennetään testausaikaa).
Kun suunniteltu releasepäivä lähestyy niin huomataan, että jäljesssä ollaan. Ulkoistettu hankejohtaja on raportoinut ylöspäin, että kaikki menee hienosti ja kun homma äärimmäisestä toimittajan painostuksesta huolimatta menee kiville niin hankejohtaja esittää shokkiuutisen asiakkaan johdolle ja pistää kaiken yksinomaan toimittajan piikkiin. Sovitaan paniikissa toiminnallisuuden rajoittamisesta ja pusketaan ulos tuote, joka on karsittu minimiin ja täynnä bugeja.
Hankkeen arvontuotto menee tässä vaiheessa käytännössä nollaan. Kaikki releasecommittoidut featuret ovat kirkuvalla prioriteetilla toteuttamatta tai ainakin täysin testaamatta ja asiakkaille shipatuista tuotteista tulee tehtaalle takaisin nälkävuoden mittainen vikalista. Toimittajan intialaiset painavat 15 tunnin päivää, mutta mitään ei tule ulos, kun on liikaa tekemistä ja kaikki on tärkeintä prioriteettia. Hankejohtaja pelaa tässä vaiheessa täysin kaksilla korteilla: on pelaavinaan mukana toimittajan kanssa, mutta samalla myrkyttää täysin kujalla olevaa keskijohtoa toimittajaa vastaan. Release train on haaksirikossa ja softatuotanto kaaoksessa. Päivittäiset standupit kyllä pyörivät.
Kuulostaako tutulta? Äärimmilleen karsittu ja täynnä bugeja oleva tuote? 9kk kulunut eikä softassa näy mitään näkyvää parannusta? Volvon TA-osamatkamittari pitäisi nollaantua, jos autoa ei käytetä neljään tuntiin, mutta edelleen toimii täysin randomilla eikä ole saatu korjattua? Nälkävuoden pituinen vikalista?
Ylläoleva on kuvitteellinen tarina, joka perustuu kokemuksiini konsulttina 16,5 vuoden ajan, josta pari vuotta vietin erittäin dysfunktionaalisissa organisaatioissa Ruotsissa juuri Volvo Carsin lattialla Göteborissa ja Telialla Tukholmassa. Näin olisi voinut tapahtua.