Kaubojsko kodiranje

Kaubojsko kodiranje je nedisciplinirani pristup razvoju softvera koji programerima daje potpunu kontrolu nad razvojnim procesom. U tom je kontekstu kauboj sinonim za Maverika – osamljenika koji stvari radi na svoj način.

Organizacija može dozvoliti kaubojsko kodiranje jer nema dovoljno resursa da se posveti fazi dizajniranja ili je rok projekta odmah iza ćoška. Ponekad je kaubojsko kodiranje dozvoljeno iz bog pogrešnog pokušaja poticaja inovacija ili zbog toga što su kanali za komunikaciju skoro pa razoreni ili pak, a opet vezano za ovo drugo, ulagači i krajnji korisnici nisu uopšte uključeni u vođenje projekta.

Lahko je zaključiti da se termin Kaubojsko kodiranje primjenjuje kao pogrdan naziv za sve ono što je u suprotnosti s strukturisanim metodologijama razvoja softvera.

Programeru pojedincu ili malom timu može se dati samo minimalan opis zahtjeva bez nekih posebnih smjernica koje ciljeve treba postići. U tom slučaju oni biraju razvojne okvire (frameworks), biblioteke, tehnologije i druge alate za koje oni smatraju da su neophodne i prikladne za dati projekat.

Kaubojski pristup kodiranju obično se fokusira na brze popravke i što brži uspostavu aktivnog proizvoda u produkciji. Također im se (tom malom timu ili pojedincu) dozvoljava popravak kôda na produkciji preskačući formalne postupke za testiranje s kojim se ostvaruju propisani nivoi sigurnosti, zatim regresivno testeriranje i pisanje dokumentacije koja je neophodno da bude u stalnoj integraciji s agilnim i drugim metodologijama razvoja softvera.

Umjesto da proizvode vitak, dobro napisan kôd, kaubojski kôd često ima grešaka koje uzrokuju greške prilikom dostave (deployment), kao i naravno tokom izvršavanja koje se veoma teško otkrivaju i još teže popravljaju.

Integracija s različitim komponenta je poseban izazov s kaubojskim kodiranjem jer ne postoje tzv. najbolje prakse za osiguranje kvaliteta.

U praksi

Često se kaubojsko kodiranje događa u praksi, ne iz razloga što ne postoji metodologija ili što rokovi nisu jasno i precizno definisai, ili što nedostaje komunikacija ili bilo koji od uobičajenih prepreka naprijed navedenih, nego zato što se “ozbiljan” posao daje početniku, često nekome ko je programer iz hobija. Neko ko se razumije u sve, ali ne razumije ni u šta. Odnosno, ima veoma široko tzv ravno znanje, ali nema dovoljno tzv duboko znanje (Vidjeti na internetu oblik “T vještine”).

Često se to dogodi iz razloga što se potpuno podcijeni vrijeme neophodno za učenje i usvajanje potrebnog i dovoljnog znanja za izradu projekta s barem osnovnim sigurnostnim i drugim uslovima.

Traljavi dizajnerski zahtjevi

Još jedna česta pojava kaubojskog kodiranja je ona koja se događa kada se čak i veoma iskusni programeri ili cijeli timovi stave pod pritisak traljavo izrađenih dizajnerskih zahtjeva. Programeri odrade svoj posao vrhunski u datim okolnostima, ali generalno, cijeli proizvod, pa i kôd koji su napisali je ništa drugo do kaubojski.

Prednosti kaubojskog kodiranja

U firmama koje se danas popularno nazivaju start-up kada se programerima u određenim fazama istraživanja, eksperimentisanja i brzih postizanja ciljeva spremnih za određene prezentacije (demo) ka ulagačima ili krajnjim klijentima daju odriješene ruke to može itekako biti dobar pristup. Programerima se daju odriješene ruke da isprobaju sve što im padne na pamet kako bi se postigao cilj u kratkom roku i klijente raznih nivoa uvjerilo da je cilj ostvariv.

Međutim, jednom kada se svi klijenti ubijede da se do cilja doći može, valja izabrati provjerenu metodologiju razvoja softvera i sve napisati iz početka za konačni proizvod kojeg će na kraju i koristiti krajnji klijenti.

1

Hits: 31