Čist i održiv kod postulat je za stvaranje dobrog softvera. Pregledavanje koda, tzv. code review, ključno je u tom procesu. Java Developer Martin Blažević pojašnjava kako taj proces izgleda u Leapwiseu, zagrebačkoj softverskoj kompaniji koja razvija enterprise rješenja u području telekomunikacija, kibernetičke sigurnosti i interneta stvari (IoT).
Programski je kôd poput knjige koju stvara više autora, svaki sa svojim stilom pisanja, idejama, obrascima slaganja jezičnih elemenata, ali i razinom stručnosti. Osim vještog oblikovanja rečenica, svaki od koautora treba paziti na njihovu gramatičku ispravnosti, kontekst i značenje riječi, pravopis, ali i mnogo više od toga. Baš kao što profesionalni tekstovi prolaze kroz lektorsku provjeru, i programski kôd zahtjeva pregled i doradu prije nego što je spreman za upotrebu.
Svaka nova linija dodana u program koji već sadrži stotine tisuća ili milijune linija kôda povećava kompleksnost cjelokupnog rješenja. Rastom kompleksnosti, otežava se daljnji razvoj, održavanje te ispravljanje grešaka, a samim time rastu i troškovi rada takvog sustava.
Pregledavanje kôda, stoga, igra ključnu ulogu u modernom razvoju softvera.
Zašto u Leapwiseu kod pregledavamo na tjednoj bazi?
Pouzdaniji i stabilniji proizvod
Tijekom pregleda kôda, pažnja se posvećuje različitim aspektima, uključujući zadovoljavanje poslovnih zahtjeva, provjeru dizajna, identifikaciju logičkih grešaka i uklanjanje nepotrebne složenosti. Nove funkcionalnosti moraju biti pokrivene automatiziranim testovima te biti u skladu s propisanim smjernicama, kao što su veličina funkcija, imenovanje varijabli, komentari u kôdu, korištenje oblikovnih obrazaca, dokumentacija i slično. Na taj način stvaramo kvalitetan softver, odnosno pouzdaniji i stabilniji proizvod.
Brža isporuka novih funkcionalnosti
Implementacija novih ili proširenje postojećih funkcionalnosti jednostavnije je ako je softver dobro strukturiran. Redovito održavanje i pregledavanje kôda pomaže u održavanju unutarnjeg dizajna sustava, što pozitivno utječe na produktivnost tima, a u konačnici i zadovoljstvo klijenata.
Pravovremena identifikacija problema i dugoročno smanjenje troškova
Sistematizirano proučavanje kôda pomaže i u identifikaciji problema već u fazi implementacije, smanjujući potrebu za kasnijim ispravcima i ponavljanjem svih koraka razvojnog procesa (dizajn, implementacija, testiranje i integracija). Osim toga, redovito pregledavanje kôda podiže kvalitetu isporučenog softvera i dugoročno smanjuje troškove održavanja.
Dijeljenje znanja
Širenje domenskog, ali i tehničkog znanja unutar razvojnog tima, još je jedno od prednosti takvog načina rada. Iskusniji članovi tima mogu prenijeti svoje znanje i dijeliti najbolje metode rada. Svi članovi svakodnevno imaju priliku istraživati i usvajati tuđi kôd i učiti jedni od drugih, čime se ostvaruje razumijevanje više aspekata velikog softverskog sustava.
U pozadini sistematičnog stvaranja softvera stoji sistematičan pristup razvijanju ljudi
U Leapwiseu naglasak stavljamo na stvaranje okoline u kojoj se zaposlenici kontinuirano razvijaju i unaprjeđuju svoje vještine. Posebnu pažnju stoga posvećujemo dijeljenju znanja unutar tvrtke.
Kako se korištene tehnologije donekle razlikuju od tima do tima, redovito održavamo edukacije i pregledavanje kôda na razini cijelog razvojnog odjela kako bismo dodatno podržali ovaj proces učenja, transparentnosti i međusobne razmjene informacija. Uz to, imamo jasno definirane interne smjernice za backend i frontend timove, koje nam služe kao pisani orijentir svih najboljih praksi i rješenja koja smo dosad usvojili. Tako svaka osoba u timu, uz usmenu, uvijek ima i pisanu pomoć u radu.
Iako je u konačnici bitna kvaliteta isporučenog proizvoda, jednako je važno pružanje platforme za rast i edukaciju zaposlenika te podrška da ostvare svoj maksimum i donose stručne i savjesne odluke u poslovanju.