Tekninen velka – yrityksesi suurin digitalisaation jarru?
Suomi ja koko maailma on digitalisoitumassa kovaa vauhtia. IT-kulut kasvavat vuosi toisensa perään, mutta saadaanko niihin sijoitetuilta rahoilta vastinetta? Mikä jarruttaa digitalisaatiota? Itse uskaltaisin väittää, että järjestelmien tekninen velka on suurin ja eniten laiminlyöty yksittäinen jarru yrityksen digitalisaatiolle.
Mikä on tekninen velka?
Teknisellä velalla tarkoitetaan kaikessa yksinkertaisuudessaan samaa asiaa kuin pankista saatavalla rahallisella velalla. Otetaan velkaa, jotta pystytään nopeasti saavuttamaan jotain sellaista, mihin muuten menisi kauan aikaa. Ohjelmistoalalla teknistä velkaa otetaan usein kiireessä, kun aikataulut ovat kireät ja ratkaisu on saatava tuotantoon. Teknisessä suunnittelussa, arkkitehtuurissa ja toteutuksessa tehdään nopeita ratkaisuja, jotka kyllä toimivat kyseisessä tilanteessa, mutta kasvattavat ratkaisun kompleksisuutta ylläpidossa ja jatkokehityksessä.
Kun jatkokehityksessä toteutetaan uusia ominaisuuksia, joudutaan tekemään ylimääräistä työtä kompleksisuuden takia. Tämä ylimääräinen työ voidaan rinnastaa koronmaksuun. Tekninen velka siis aiheuttaa ”korkoa”, joka pitää maksaa joka kerta, kun järjestelmään tehdään uusia asioita. Teknistä velkaa voi syntyä myös piittaamattomalla, osaamattomalla ja laiskalla toteutuksella. Eli kun toteuttajat menevät sieltä missä ”aita on matalin”.
Kasvava velan korko kehityksen esteenä
Kun teknistä velkaa otetaan vähitellen enemmän ja enemmän, korko kasvaa yhä suuremmaksi. Lopulta ollaan tilanteessa, jossa koronmaksuun kulutetaan enemmän aikaa kuin itse uusien ominaisuuksien toteutukseen.
Tällöin huomataan, että IT-budjetista 70-80 prosenttia menee vanhojen järjestelmien ylläpitoon eikä rahaa riitä uusien digitalisaation tuomien mahdollisuuksien toteutukseen. Lisäksi uusien toiminnallisuuksien toteutus on hidasta johtuen teknisen velan kompleksisuudesta. Tällöin hyvin helposti hukataan uuden tuotteen optimaalinen Time-to-Market-rako.
Miten tekninen velka pysyy hallinnassa?
Siksi onkin äärimmäisen tärkeää, että teknisen velan määrä pysyy hallinnassa. Joskus sen ottaminen on järkevää. Tällainen tapaus voisi olla vaikka tuotteen MVP-version julkaiseminen mahdollisimman aikaisin, jotta voidaan kerätä käyttäjäpalautetta lopullista versiota varten. Velan takaisinmaksusta pitää kuitenkin huolehtia nopealla aikataululla. Nykypäivän DevOps-työkaluilla teknistä velkaa pystytään hallitsemaan paljon helpommin kuin vielä 10 vuotta sitten.
Ohjelmistokoodin laatua voidaan hallita automaattisesti koodianalyysityökaluilla, jolloin koodin tekninen velka pysyy pienenä. Erilaiset palvelin-, sovellus- ja järjestelmäkonfiguraatiot saadaan hallintaan konfiguraatiohallinnalla, jolloin jokainen konfiguraatiomuutos on automaattisesti dokumentoitu ja versioitu. Lisäksi mikropalveluarkkitehtuurit ja konttiteknologia mahdollistavat ohjelmistojen pilkkomisen niin pieniin osiin, että yhdelle palvelulle otettu tekninen velka ei rasita koko järjestelmää ja on helposti maksettavissa takaisin.
DevOps-työkaluilla on siis mahdollista ylläpitää suuriakin järjestelmiä pienellä budjetilla, jolloin suurin osa IT:lle varatuista rahoista on mahdollista käyttää uusiin asioihin, eli paljon puhuttuun digitalisaatioon. Esimerkiksi Facebook käyttää keskitettyä konfiguraationhallinnan työkalua (Chef) hallinnoimaan yli 150 000 palvelintaan, ja he tarvitsevat siihen vain 8 työntekijää. Oleellista onkin pitää tekninen velka koko ajan minimissä ja hallinnassa. Usein onkin hyödyllistä ketterässä projektissa käyttää yksi sprintti vain teknisen velan takaisinmaksuun, jolla saadaan korkoa vähennettyä tai eliminoitua kokonaan. Tämä vain on usein vaikea perustella, koska käytännössä se tarkoittaa toteutustyötä, joka ei suoraan tuota mitään arvoa. Teknisen velan pois maksaminen maksaa kuitenkin itsensä takaisin moninkertaisesti vähentyneinä ylläpitokustannuksina ja nopeutuneena uusien ominaisuuksien toteutuksina.
Tilaa blogikirjoitukset sähköpostiisi