Olin hiljattain mukana asiakasprojektissa, jossa päästiin päivittämään kompleksia ympäristöä, jonka alkuperät olivat samalla ajalla kuin vielä itsekin enemmän ehdin systeemeitä kasata. Aivan mahtava memory lane!
Vanhoja kunnon Windows 2003-palvelimia, tietokantoja Accessista Oracleen, ajastettuja tehtäviä. Olin kuin kotonani, jostain selkärangasta kaikki se osaaminen palautui ja pitkästä aikaa oli kivaa palata ”vain” asiantuntijastatukseen ja ratkoa ongelmia jonkun toisen tekemässä ja suunnittelemassa järjestelmässä.
Mieleen tuli kollegani lausahdus vuosien takaa:
”Kaikki tietojärjestelmät ovat rakenteeltaan risukasoja ajan kun antaa kulua”.
Tämä oli hyvä muistutus – anna tärkeälle järjestelmälle 10 vuotta aikaa – kehitä ja muuta sitä säännöllisesti. Paljonkohan alkuperäisestä arkkitehtuurista ja hienoista suunnitelmista on vielä jäljellä?
Microsoft-teknologia-alustassa siihen väliin mahtui kokonainen .NET Framework -ketju(tai itse asiassa versiot 1.0, 1.1, 2.0, 3.0, 3.5 jne.), Java-alustassa versiot kuutosesta kasiin, tietokannoissa ja palvelimissa useampi sukupolvi. Mutta totuus on, että se tekee edelleen ihan niitä asioita mitä pitääkin. Ehkä moderni järjestelmä olisi kauniimpi, toimintavarmempi, teknisesti validimpi. Tuskin kuitenkaan tehokkaampi tai edes nopeampi.
Kun joka vuosi systeemeihin kerrostetaan lisää ominaisuuksia muodostuu ns. ”sipuli”. Tietojärjestelmät, kuten sipulikin, kasvavat ajan mittaa kerroksia. Joskus sipulin aika koittaa ja se on kuorittava. Silloin yleensä itkettää. Toimialaamme kuuluu, että kehitys on vähän väliä aloitettava alusta. Joskus se tarkoittaa pientä versiovaihdosta, joskus valtavaa remonttia kovasta ytimestä saakka.
Jostain aikanaan luin, että tietojärjestelmän keskimääräinen ikä on 7 vuotta. Liiketoimintakriittisillä ERP-järjestelmillä vähän pidempi, markkinoinnin webbisivustolla lyhyempi. Itse olen nähnyt tuotannossa yli 20 vuotta vanhoja järjestelmiä. Vielä toimivat.
Kun tätä hommaa on riittävän kauan tehnyt, alkaa tajuta että teknologia ei saisi aina olla se pääasia. Uusi teknologia mahdollistaa erilaisia asioita, mutta monta kertaa versiopäivitykset eivät itse asiassa tuo kuvioon mitään uutta. Välillä itsekin surullisena huomaan tehneeni ison päivitysprojektin (krhm. ..SharePoint), vain huomatakseni että lopputulos on kyllä kauniimpi, modernimpi ja teknisesti varmaan pidemmälle aikaa kestävä. Mutta toiminnallisuudet sisältävät vain puolet niistä ominaisuuksista joilla aloitettiin.
Millä tavalla tämä tuo liiketoimintahyötyä, parempaa bisnestä tai tehokkuutta käyttäjien elämään?
Tapasin joku aika sitten kokeneen Delphi -koodarin. Vastuulla suurten talojen palkanlaskennan järjestelmät. Kaveri totesi vähän tuohtuneena saavansa aina nuoremmalta polvelta kuittailua kehitystyövälineistään. Totesi siihen kylmän viileästi: ”Mennään kymmenen vuotta eteenpäin – mitä luulette, kumpi on jäljellä – Delphillä tehty palkanlaskentajärjestelmän ydin vai siihen NNN-javascript -frameworkilla virittämänne käyttöliittymä?”
Ehkä kaikki tietojärjestelmät ovat ajan funktiona lopulta risukasoja. Ehkä risut voi kuitenkin asetella niin, että koko kasa ei sorru ensimmäiseen tuulenpuuskaan. Joskus risukasat kuitenkin on syytä poltettaa.