12.12.2018 | Pasi Taive

Tietojärjestelmän ylläpidettävyyden merkitys kokonaishinnalle

Tietojärjestelmän ylläpidettävyys kuvastaa sitä, kuinka kallista sitä on tehdä seuraavia asioita: -Lisätä uuden toiminnallisuuden -Muokata olemassa olevaa toiminnallisuutta -Poistaa olemassa oleva toiminnallisuus -Korjata bugin

Kun tietojärjestelmä on alle kuukauden vanha, uuden toiminnallisuuden tekeminen ja muuttaminen ovat halpaa. Kun järjestelmä on kuukausia tai vuosia vanha, voi toiminnallisuuden lisäämisen hinta olla moninkertainen verrattuna alkuun. Mitä heikompi ylläpidettävyys on, niin sitä kalliimpia nuo toiminnot ovat.

On myös tärkeää huomioida, että tietojärjestelmässä on monia osa-alueita, joissa ylläpidettävyys on tärkeämpää kuin toisissa osa-alueissa. Nämä tärkeät osa-alueet ovat yleensä core-domainia (http://blog.jonathanoliver.com/ddd-strategic-design-core-supporting-and-generic-subdomains/), joiden toiminnallisuus on yleensä kompleksista ja ne muuttuvat/laajentuvat usein. Sitten on osa-alueita, jotka tehdään kerran ja niihin ei juurikaan kosketa sen jälkeen, näiden ylläpidettävyys ei ole niin tärkeää kuin core-domainin.

Täydellisen ylläpidettävää järjestelmää on käytännössä liian kallista tehdä, emme halua tehdä järjestelmän monimutkaisuutta lisääviä arkkitehtuurisia asioita, elleivät ne ole tarpeellisia. Ajan saatossa kehittäjä-tiimi alkaa ymmärtämään asiakkaan liiketoimintaa paremmin ja ymmärtää mihin asioihin kannattaa käyttää paljon aikaa ylläpidettävän koodin ja rakenteen tuottamiseen. Myös kun aika menee eteenpäin tietojärjestelmän skaalautumis ja saatavuus vaatimukset muuttuvat usein niin paljon, että tarvitaan hyvin erilaisia arkkitehtuurisia tyylejä vastaamaan uusiin tarpeisiin. Tästä syystä myös isot yritykset kuten e-bay, netflix, twitter ja amazon ovat tehneet arkkitehtuurinsa moneen kertaan(http://highscalability.com/blog/2015/12/1/deep-lessons-from-google-and-ebay-on-building-ecosystems-of.html). Kerralla kuntoon mentaliteetti saattaakin olla kalliimpaa kuin mitä oltaisiin osattu olettaa. Tässä tapauksessa korkean hinnan olisi aiheuttanut over-engineering, kuten Albert Einstein sanoi ”Make things as simple as possible, but not simpler”

Tietojärjestelmän rakentaminen on oppimismatka ja jos tuon matkan aikana ei joudu muuttamaan arkkitehtuuria kertaakaan, on todennäköisesti käyttänyt aivan liian paljon aikaa arkkitehtuurin luomiseen alussa ja todennäköisesti arkkitehtuuri on myös aivan liian kompleksinen.