Kodėl verta investuoti į kodo kokybę?

Kodėl verta investuoti į kodo kokybę?

Bet kurio darbo kokybės vertinimas yra pakankamai abstraktus dalykas, kurį sunku nusakyti ar tinkamai, objektyviai įvertinti. Kaip nuspręsti ar sukurta programinė įranga yra kokybiška ir ar verta investuoti savo lėšas į būtent kokybišką programinę įrangą, o gal tiesiog pakanka, kad ji funkcionuotų ir tiek?

Kas yra kodo kokybė?

Programinės įrangos kokybę iš esmės galima apibrėžti dviem pagrindiniais aspektais:

  • ar sukurta sistema atitinka visus specifikacijoje apibrėžtus funkcinius reikalavimus, t.y. konkretus funkcionalumas, tinkamas procesų suprogramavimas ir veikimas. Šie reikalavimai apibrėžia tai, ką sistema turi atlikti.
  • ar sukurta sistema atitinka visus nefunkcinius reikalavimus keliamus sistemai (būtent šiuos dažniausiai objektyviai įvertinti ir yra sunkiausia), pavyzdžiui, greitaveika, išplečiamumas (angl. scalability), patikimumas (angl. reliability), priežiūros paprastumas (angl. maintainablity), saugumas (angl. security) ir t.t.

Klientai dažniausiai atkreipia dėmesį į pagrindinį, jų nuomone, sistemos veikimą, t.y. funkcinius reikalavimus, kurie dažniausiai vienaip ar kitaip įgyvendinam. Pavyzdžiui, paprasta el. pašto siuntimo forma administratoriui gali būti veikianti, tačiau nesaugi, neapsaugota nuo SPAM šiukšlintojų, sukurta taip, kad jos vėliau nepavyks per panaudoti kitose sistemose vietose ir reikės ją, tarkime, visiškai per kurti iš naujo.

Dabar įsivaizduokime, kad taip sukurta visa sistema, kiekviena jos dalis, nes programuotojas ar programuotojų komanda taupė laiką ir neinvestavo tinkamo valandų skaičiaus problemų sprendimui ir jų veikimo užtikrinimui.

Kokios galimos problemos turint prastai sukurtą sistemą?

Į mus dažnai kreipiasi klientai, kurie sako, pakeičiau tik vieną dalyką, o sulūžo visai kas kita. Ar tai pažįstama situacija ir Jums? Pakeitėte kainą, bet nebeveikia prekės kortelė, ištrynėte paveikslėlius ir staiga nebeatvaizduojama prekė niekur. Tai tik keli pavyzdžiai su kuriais galite susidurti, jei sistema buvo sukurta atmestinai ir neapgalvojant visų jos panaudojimo atvejų.

Kitas aspektas, kurį reikia apmąstyti, tai funkcijų pilnas išpildymas ar neteko susidurti su programuotojais, kurie sako: čia nespauskite, nes bus taip, čia nespauskite, nes bus dar kitaip. Taip suprogramuota sistema neatsižvelgia į visus galimus variantus ir panaudojimus, tuomet jūs, kaip vartotojas, kiekvieną kartą keisdamas prekės kortelę turite bijoti, kad kas neatsitiktų, nes jei neužpildysiu ar nepaspausiu venos ar kitos vietos viskas sugrius ir daugiau nebeveiks.

Trečias, dažniausiai pasitaikantis, trūkumas nekokybiškai ar prasta sukurtų sistemų yra tas, kad vartotojas nėra savo sistemos pilnavertis administratorius. Ar nebūna situaciją, kai norint pakeisti tam tikrą paveiksliuką, teksto dalį ar kontaktinę informaciją, o gal pagrindinį el. pašto adresą jums reikia kreiptis į programuotoją ir laukti, kol jis teiksis tą smulkų pakeitimą atlikti. Kokybiškai sukurta sistema turi būti pilnai valdoma ir keičiama, t.y. visi jos moduliai, elementai ar dalys turi būti keičiamos ir valdomos administratoriaus.

Būtina paminėti ir taip visiems žinomas: lėtumo ir saugumo problemas. Jei sistema veikia lėtai, o naudojate standartą su tik vienu kitu nestandartiniu moduliu, turbūt dėl to bus kalta arba serverio blogai parinktos nuostatos (pigus, nekokybiškas hostingas), arba lėtumas programiniame kode, kai pavyzdžiui, mažiau patyręs programuotojas užkraus visą prekių sąrašą su visa prekių informacija vietoje to, kad pasiimtų tik reikiamą dalį. Tas pats galioja kreipimųsi kiekiui į duomenų bazę ir kt.

Kokie kokybiškos programinės įrangos privalumai?

Tinkamai sukurta sistema ar elektroninė parduotuvė nereikalaus nuolatinės smulkmeniškos priežiūros, taip pat visą sistemą valdysite patys.

Mažesni palaikymo kaštai. El. parduotuvės ir jų kūrimas yra nuolatinis procesas ir darbas su klientais bei pačia sistema. Jeigu susikursite prastą ir nekokybišką sistemą nuo pat pradžių turėsite brangius palaikymo (angl. support) kaštus, kai vis kažkas neveiks, reikės taisyti ar perdaryti. Tas pats galioja ir naujam funkcionalumui bei jo kainai. Jeigu sistema buvo sukurta tinkamai, ją bus lengva net ir naujai programuotojų komanda tobulinti, per prasti, atlikti naujo funkcionalumo integravimą ir tai kainuos daug pigiau nei per darymas tam tikrų dalių vis iš naujo.

Paprastesnis sistemos versijos naujinimas. Jeigu sistema kuriama tinkamai, dažniausiai laikomasi visų tai sistemai ar karkasui (angl. framework) būdingų praktikų ir atnaujinimai (nekalbama apie tuos, kurie keičia architektūrą iš esmės) tampa paprasti, pigūs ir taip jūs papildomai gaunate praktiškai nemokamai pataisymus iš sistemos kūrėjų bei saugumo spragų pataisas ar kt. svarbius pataisymus.

Stabilus veikimas ir saugumas. Tai neatsiejami programinės įrangos kūrėjų tiksliai. Stabiliai veikianti el. parduotuvė ar sistema ne tik kad nepraranda galimai uždirbtų pinigų, bet ir suteikia jūsų klientams patikimumo, saugumo jausmą, kad jų duomenys bus tinkamai prižiūrėti ir nepasklis trečiosioms šalims.

Tinkama greitaveika. Teisingai sukurta sistema netaupant laiko „kampų nukirtinėjimui“ visada veiks greičiau ir neatsitiks taip, kad jūsų klientai pabėgs vien dėl ilgo svetainės ar el. parduotuvės krovimosi greičio.

Paprastesnis kitų programuotojų samdymas ar komandos pakeitimas. Tarkime, PrestaShop el. komercijos platforma turi numatytas ir apibrėžtas dokumentacijoje taisykles tiek kodo stiliui, tiek pakeitimams ir taip vadinamas geriausias praktikas (angl. best pratices). Jeigu jūsų programuotojas ar programuotojai nesilaiko šių taisyklių sistemos tampa praktiškai neįmanoma atnaujinti, o ateityje kiti dirbantys asmenys turi gaišt papildomą laiką ir keist be taisyti funkcionalumą, kuris nuo pat pradžių turi būti gerai atliktas.

Apibendrinimas

El. komercijos sistemos ar bet kokios programinės įrangos tinkamas kūrimas sumažina kaštus ilguoju jos naudojimo periodu, t.y. atnaujinimai, naujo funkcionalumo pridėjimas, investicijos į saugumą ir greitaveiką atsiperka, jei sistema buvo sukurta tinkamai nuo pat pradžių. Iš savo patirties esame matę kaip dažnai laisvai samdomų ar nepatikimų programuotojų komandos sukuria sistemas, kurios vėliau yra tiesiog per daromos iš naujo, nes neapsimoka jų taisyti ir modifikuoti bei ieškoti klaidų. Klientams ir verslui būtina atkreipti dėmesį ne tik į tai, kad sistemą funkcionuotų, bet ir kad tas funkcionalumas būtų tinkamai integruotas ir atliktas. O tai gali užtikrinti tik profesionalai dirbantys savo srityje.