Kako balansirati brzinu i kvalitetu u razvoju softvera, pitali smo QA inženjera i CTO-a malog startupa

Kako balansirati brzinu i kvalitetu u razvoju softvera, pitali smo QA inženjera i CTO-a malog startupa

Ako netko zna odgovor na pitanje iz naslova, nek nam se javi, poručuje Mateo Stjepanović CTO startupa Spiritus.

“Make it work. Make it right. Make it fast”  legendarni je citat i pristup razvoju softvera inženjera Kenta Becka, tvorca razvoja vođenog testiranjem, koji se često navodi kao zlatno pravilo kojeg se treba držati kod razvoja bilo kakvog softverskog projekta.

Ideja je da je na početku bitno isprogramirati nešto bilo kako, samo da bi se ustanovilo drži li ideja vodu ili da bi se prvim korisnicima isporučila neka funkcionalnost. Tek u drugoj fazi na red dolazi “ljepota” i kvaliteta koda te refaktoriranje kako bi bio uredan i mogao se održavati. A na kraju, kad su prva dva koraka odrađena, dolazi razmišljanje o optimizaciji performansi.

Zvuči odlično i logično, u teoriji. U praksi, startupi pritisnuti zahtjevima tržišta ili investitora, a agencije rokovima klijenata često nikad ne dođu ni do one druge faze, a kamoli do treće!

Kvaliteta ili brzina? Uvijek nešto mora patiti!

Kako razriješiti vječnu dilemu između potrebe za što bržim razvojem novih funkcionalnosti i potrebe da se preduhitre bugovi i pred korisnike stavlja kvalitetan proizvod pitala sam CTO-a u malom startupu i voditelja QA odjela u agenciji.

Mateo Stjepanović, CTO startupa Spiritus, kaže da je to teška dilema i poziva da mu se javi tko zna dobar odgovor na to pitanje:

Ako netko zna kvalitetan odogovor na ovo pitanje, molio bih da se javi Spiritusu!

Mogu reći da je tu dilemu jako teško razriješiti, uvijek nešto mora patiti. Jedino bitno je, posebno u startup svijetu, da je cijeli tim svjestan donesenih odluka i da svi razumiju zašto smo odabrali fokusirati se na jednu ili drugu stranu.

Međutim, prošlo je doba MVP-a, i startupi se danas bore s konkurencijom, korisnici su navikli na kvalitetne proizvode odličnog korisničkog iskustva i ne opraštaju greške. Zato Vanja Žunić, voditelj QA tima u agenciji Async Labs, zagovara da se QA u proces razvoja softvera uključi što prije i za to nudi uvjerljiv argument:

Što su bugovi ranije prepoznati, jeftinije ih je popraviti, ali ih je najjeftinije izbjeći.

Ideja QA-a je prevencija, u ovom kontekstu, bugova – što znači ranu detekciju istih. “Rana detekcija bugova” može se zamijeniti s “ranom prevencijom bugova”, i za to je potrebno što ranije imati osobu koja s takvim pristupom analizira proizvod.

“Nemamo školski posloženo testiranje, ali smo zato napisali puno više koda”

Vanja dodaje da je preduvjet za to osvještavanje klijenata o važnosti Quality Assureancea u razvoju softvera te jasno i kvalitetno posložene development procedure. Ali priznaje da to ne dolazi preko noći, pa su i Async Labsu počeli samo s testerima, a tek kasnije oformili specijalizirani odjel za QA (i, naravno, naglašava da Quality Assurance ne čine samo testeri!):

Kombinacijom ta dva postulata, posloženih procedura developmenta i edukacije klijenata, mi balansiramo između kvalitete i brzine razvoja. Mislim da je to win-win kompromisna situacija za sve stakeholdere u digitalnom razvoju.

Iz pozicije agencije koja za klijente može birati one s kojima dijeli stav prema kvaliteti ili one koje o prednostima takvog načina rada mogu educirati, to jest win-win. Iz pozicije startupa koji nema viška vremena, a ni ljudskih resursa, a mora se što prije dokazati na tržištu, često i ona početna faza, u kojoj se “samo testira” ostaje nedostižna.

Mateo priznaje da Spiritus trenutno nema niti to, odnosno da nemaju posložen “školski” proces testiranja kao dio razvoja:

Cijeli tim sudjeluje u testiranju svake nove funkcionalnosti i sve to dokumentiramo.

Eh sad, je li to bila dobra odluka ili ne, je diskutabilno. Zasigurno smo zbog toga razvili puno više aplikacije i napisali puno više koda. S druge strane, nemamo automatizirani proces testiranja niti stopostotnu pokrivenost koda unit testovima.

Filozofija kojom se inače vodimo u Spiritusu je da je korisno i idealno imati potpunu pokrivenost testovima i osobe u timu koje su zadužene za opsežno testiranje. Nažalost, to nije uvijek moguće i potrebno je pronaći ovakve kompromise.

Shift Left ako možeš, ako ne i špageti kod je dobar za početak

Često se kaže da je svaki danas uspješan tehnološki proizvod počeo kao monolit špageti koda kojeg razumije samo njih nekoliko koji su ga pisali – raspetljavanje, optimizacija i preslagivanje “po peesu” obično dođe u fazi kad se tvrtka već dokazala na tržištu, a timovi narasli toliko da im je sav taj tehnički dug postao uteg oko vrata.

Iako je Vanja zagovornik pristupa shift-left (uključivanja Quality Assurancea kao svojevrsnog advokata korisnika što ranije u proces razvoja, po mogućnosti odmah na početku, kod inicijalne ideje), zapravo se slaže s Mateom da je tržište danas takvo da je provedba toga ponekad nemoguća:

Pozitivno u tome je što startupi ovako ranije znaju jesu li na pravom putu pa naknadno idu dotjerivati proizvod. Bilo bi šteta uložiti x vremena u kreiranje nečeg kvalitetnog pa onda dobiti odbijenicu investitora nakon toliko uloženog truda. S druge strane, tu je i utrka s tržištem i njegovim rapidnim razvojem. Tvoja ideja danas jest nečija ideja sutra.

Čak i firme koje su uhodane, s više iskustva, isto počinju tako, i to je nešto što tržište promovira, odnosno na takav način diktira “igru”.

“Nema smisla ulagati u kvalitetu i skalabilnost prije prvih korisnika”

Mateo se nadovezuje primjerom Spiritusa, koji su otpočetka zamislili kao globalni proizvod, ali ga nisu odmah razvijali kao takvog jer nije bilo smisla ulagati u kvalitetu i skalabilnost prije prvih korisnika. Zato je i njihov proizvod kreiran kao monolitna aplikacija, izgrađena tako da može podržati par tisuća korisnika:

Nakon godinu dana razvoja i prikupljanja feedbacka dobili smo potvrdu da idemo na iduću razinu razvoja. Tada smo dogovorili strategiju promjene arhitekture i pisanja koda te je sada Spiritus puno ljepša i održivija aplikacija.

I svjesni smo da ćemo, kada se Spiritus proširi na strana tržišta, opet raditi reviziju i nadograditi naš kod da podržava stotine tisuća korisnika.

Nadamo se da će uskoro biti potrebe da ga revidiramo za još veći broj njih. Važno je da smo svjesni da sve ide korak po korak.

I on dodaje da takav ciklus razvoja nije svojstven samo za startupe te da ideja da se razvijaju “nesavršeni” proizvodi koji se redovito revidiraju uopće nije loša:

Naime, svi se mi razvijamo kroz to vrijeme i puno smo pametniji godinu dana nakon što smo napisali nešto. Iz češće revizije proizilazi lakša nadogradnja na neke nove ideje ili arhitekture.

Nitko ne voli vidjeti kod star 10 godina, iščupati poslovnu logiku i sve to prepisati na neki moderan način.

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Komentari

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Ekskluzivno

57hours Viktora Marohnića narastao 4 puta i osigurao još 2,75 milijuna dolara

U ekskluzivnom intervjuu za Netokraciju, suosnivač brzorastuće avanturističke platforme Viktor Marohnić, sa svojim investitorima, otkriva planove.

Tvrtke i poslovanje

7 savjeta za učinkovitu izradu poslovnog plana (posebno za one koji nemaju vremena)

Nisu bez razloga velikani povijesti od Sun Tzua do Dwight D. Eisenhowera pričali o planiranju kao o svetom gralu uspjeha - i ne stoji bez razloga ona narodna: dobra organizacija je pola posla.

Novost

Peta kriptomarka Hrvatske pošte su neponovljivi profesor Baltazar i njegovi izumi

Peto izdanje kriptomarke, koja dolazi u analognom i digitalnom obliku, Hrvatska pošta pustila je u optjecaj!

Što ste propustili

Tvrtke i poslovanje

Sretan mu 25. rođendan: Kako smo počeli koristiti Googleove proizvode – i zašto (ne)ćemo nastaviti?

Povodom Googleovog rođendana prisjećamo se njegove prošlosti, nepobitnog utjecaja na sve digitalno što danas radimo, ali gledamo i u blisku budućnost koju će obilježiti dvije ključne riječi - umjetna inteligencija i monopol. Nismo propustili priliku ni nostalgično se prisjetiti pozivnica za Gmail, Googleovih pokušaja da napravi društvenu mrežu ili prvih susreta s Googleom, što je za neke zapravo bio YouTube.

Novost

U ZICER-u startupe čeka 150.000 eura, a prijave za akceleracijske programe traju još samo ovaj tjedan

Vodeći hrvatski startup hub ZICER otvorio i program za uspješno lansiranje na globalno tržište.

Umjetna inteligencija

500 tisuća korisnika koristi tehnologiju ovog hrvatskog AI startupa

S vremena na vrijeme, pojavi se neki startup koji marljivo radi "ispod radara", a onda odluči podijeliti svoju priču. Prvi donosimo intervju s TensorPixom koji od nedavno broji preko pola milijuna korisnika.

Izvještaj

Lekcije inženjerke iz Shopifya: kako koristiti AI za brži, bolji i lakši razvoj softvera?

Umjetna inteligencija i inženjeri. Nekada se vole, nekada mrze, ali činjenica je da AI inženjerima može olakšati pisanje koda... (ako i sami znaju što rade).

Tvrtke i poslovanje

Sofascore i Span: Zašto se nismo prodali? Jer nam to ne treba – ako imaš tri auta, možeš voziti samo jedan.

Investicije i preuzimanja domaćih tvrtki glavne su teme naše male poduzetničke scene, ali koliko god se pričalo, često tema o neovisnosti ostane postrani. Srećom, ove godine se otvorila na 16. Weekendu.

Programiranje

“Design Handoff” je proces zbog kojeg developer i dizajner ne moraju imati “standoff”

Predaja bilokakvog projekta ne završava s vašom točkom na kraju - nego svih kojih se taj projekt usko tiče. Uz Neuralab prolazimo kako od “ja sam svoje riješio” doći do kvalitetnog, strukturiranog “design handoffa” koji će značajno olakšati život svima uključenima: dizajnerima, developerima, PM-ovima, klijentima…