Keerulise tarkvara loomise lihtsus

Keerulist tarkvara ei ole üldse keeruline luua ja seda tehakse vahel kohe projekti algusfaasis enne ainsamagi ärilise probleemi lahendamist.

10.10.2023 (2 minuti jagu lugemist)

Väga tihti luuakse keeruline tarkvara, kuigi seda ei ole tellija soovinud. Seda tehakse erinevatel põhjustel, aga üheks suurimaks põhjuseks võib pidada arendusmeeskonna nn. "vasikavaimustust" tehnoloogiliste valikute osas. Tehnoloogilised valikud võivad omada päris suurt mõju arendustöö peale kuluva aja, uue funktsionaalsuse arendamise keerukuse, toodangus eksisteerivate vigade hulga ning probleemide analüüsimise ja lahendamise osas.

Lihtsat, efektiivset, kvaliteetset ja kergesti edasi arendatavat süsteemi on aga väga keeruline teha ja seda paljud arendusmeeskonnad ei ole suutelised tegema, kuna puudub vastav kogemustepagas või mõttelaad.

Keerulised süsteemid

Mingil põhjusel eksisteerib arendusmeeskondades tihti selline nähtus, kus uue projekti alustamise hetkel valitakse tehnoloogiaid populaarsuse ajendil. Kehtib arusaam "kui teised kasutavad, siis järelikult peab olema hea ja õige töövahend, mis sobib hästi ka meie probleemide lahendamiseks".

Ja nii jõuavadki projekti juba selle esimesel päeval sellised mõisted nagu "modernsed veebitehnoloogiad", sealhulgas SPA tüüpi rakendused raamistike React/Vue toel, mikroteenused, Kubernetes ja AWS. Enne valikute tegemist ei mõelda arendusmeeskonnas läbi lahendamist vajava probleemi olemust ja kas kõik valitavad tehnoloogiad on vajalikud ning lahendavad seda või hoopiski toovad endaga kaasa lisakeerukust, mis aeglustavad/takistavad arendustööd, toodanguprobleemide lahendamisi ja muudatuste toodangusse paigaldamist.

Vahel jõuavad sellised tehnoloogiad projekti ka seetõttu, et tellija nõuab antud tehnoloogiate kasutuselevõttu, sest on kuulnud, kuidas teised neid tehnoloogiaid kasutavad. Sellistel hetkedel tasub korra mõelda, et kui tihti tunnistatakse avalikult eksimusi.

Ei tasu ära unustada, et vahel inimesed ei tea/saa aru, et valitud tehnoloogiad teevad nende elu keerulisemaks, sest nad isegi ei oska mõelda lihtsuse suunas, sest puudub vastav kogemus. Lisaks on olemas inimesi, kellele meeldib keerulisi asju teha õppimise eesmärgil, mistõttu projekti edukus satub (alateadlikult) tagaplaanile.

Lihtsad süsteemid

Selle asemel, et uisa-päisa või populaarsuse alusel tehnoloogiaid valida, võiks kasutada nö talupojamõistust. Kõige parem viis lihtsate süsteemide suunas liikuma asumiseks on kaaluda iga tehnoloogilist valikut põhjalikumalt enne selle projekti juurutamist.

Näiteks võiks endalt küsida selliseid küsimusi:

  • Mis probleemi antud tehnoloogia lahendab?
  • Kas käesolevas projektis eksisteerib juba täna see probleem?
  • Kas seda probleemi saab lahendada lihtsamini, jättes antud tehnoloogia valik kõrvale?
  • Kas probleemi olemust saab muuta, muutes funktsionaalseid nõudeid?
  • Millist lisakeerukust või ajakulu see tehnoloogia endaga kaasa toob arendamisel, testimisel, toodangusse paigaldamisel, toodanguprobleemide analüüsimisel ja lahendamisel?
  • Kui tulevikukindel valitud tehnoloogia on?
  • Kas on vaja teostada tehnoloogia uuendamisega seotud töid tulevikus?
  • Kui keeruline on valitud tehnoloogiat tulevikus välja vahetada mõne teise tehnoloogia vastu või sellest sootuks loobuda?

Väga lihtne rusikareegel tehnoloogiliste valikute tegemisel on see, et lisaks positiivsetele omadustele on igal valikul ka negatiivsed omadused. Keeruliseks teeb olukorra hindamise aga asjaolu, et väga tihti vähese kogemusega meeskonnad ei oska hinnata negatiivseid pooli, sest nendest antud tehnoloogiat fännavad suunamudijad pigem ei räägi.

Kokkuvõttes

Keeruline tarkvara ei ole alati vajalik äriprotsesside parendamiseks. Ega ilmaasjata ei eksisteeri KISS printsiip. Kahjuks on aga lihtsat tarkvara keeruline luua, sest nõuab aastatepikkust kogemuste pagasit, analüütilist ja enesekriitilist mõtlemisvõimet, distsipliini ning parimate praktikate rakendamist tarkvara arendamisel ja projekti juhtimisel.

Solutionali meeskonnas on kogenud arendajad, kes on suutelised looma ka lihtsaid lahendusi, sest oleme neid varasemalt korduvalt teinud. Oleme kirjutanud pikemalt siin, miks valida just Solutional enda tarkvara arendamise partneriks.

Kindlasti on vahel keeruline tarkvara ka õigustatud, kuid siis peaks olema arendusmeeskond suuteline argumenteerima, miks antud valikud tehtud on ning omama ülevaadet ka negatiivsetest pooltest.


Solutional on agiilne tarkvaraarenduse ettevõte professionaalsete inseneridega, kes suudavad lahendada tarkvaralised probleemid algusest lõpuni ilma vahendajateta.

Kirjuta meile e-post aadressile info@solutional.ee juhul kui vajad abi uute või olemasolevate projektide eduka teostusega.