14.06.2024. ·
4 min

Niste slab programer ako ne pokazujete uvek svoju tehničku izvrsnost

HelloWorld
1
Niste slab programer ako ne pokazujete uvek svoju tehničku izvrsnost

Programeri, posebno oni koji teže perfekciji, vrlo često mogu da upadnu u zamku u kojoj će im tehnička izvrsnost predstavljati veće zadovoljstvo i na listi prioriteta biti više pozicionirana, nego sam korisnik, tačnije, isporuka „vrednosti“ korisniku.

Zamislite situaciju u kojoj programer radi na optimizaciji performansi koda, umesto da rešava probleme koji bi direktno koristili korisnicima. Ovo može biti loše, jer je programer previše fokusiran na tehničke detalje i lično zadovoljstvo, koje oseća kada je rezultat njegovog rada tehnički savršen, umesto na praktičnu primenu i korist za krajnjeg korisnika.

Kako biste ovakve situacije sveli na minimum ili još bolje, potpuno sprečili, bitno je da uvek na umu imate korisnika, kao nekoga zbog koga se čitav proces i dešava, pa je važno da ga, nipošto, ne ostavljate „u mraku“, a opet, na vama je da pronađete pravo vreme za „doterivanje“ vašeg koda npr.

Tu na scenu stupa tok vrednosti i sebi najviše možete da pomognete produbljivanjem razumevanja o tome kako usmeravanje fokusa na tok vrednosti može poboljšati proces razvoja softvera i isporuku vrednosti korisnicima.

Usmeravanje na tok vrednosti se može primeniti na različite faze razvoja softvera, poput planiranja, razvoja, testiranja i isporuke. Posebno naglašavamo važnost čestih iteracija i povratnih informacija od korisnika kako bi se brzo identifikovali i ispravili nedostaci! Naravno, uvek treba voditi računa o balansu između brzine isporuke i kvaliteta, jer brza isporuka može dovesti do tehničkog duga ili kvalitativno slabijeg koda, što dugoročno može otežati održavanje i/ili skaliranje sistema, a to nikako ne želimo, jer bismo tada otišli u potpuno drugu krajnost.

Nekada i radikalna promena u procesu razvoja može da ima izuzetno pozitivan uticaj na vaš projekat. Uzmimo za pretpostavku da kompanija koja razvija softver, sa tradicionalne odluči da pređe na agilnu metodologiju razvoja. U tradicionalnom procesu razvoja, tim je radio na dugoročnim planovima i često je čekao da kompletna funkcija bude završena pre nego što bi je predstavili korisniku. To dovodi do dugih ciklusa isporuke i ograničene mogućnosti za povratne informacije, ali nakon uvođenja agilne metodologije, tim počinje da radi u kratkim sprintovima, gde se funkcije razvijaju i isporučuju korisniku na kraju svakog sprinta. Samim tim, korisnik ranije vidi napredak i daje povratne informacije, što opet, za tim znači da može brže da reaguje na promene i zahteve korisnika. Dalje, uvođenje kontinuirane integracije i isporuke (CI/CD) omogućilo je timu automatsko testiranje i isporuku novih funkcija u produkciju sa minimalnim rizikom. Svaki put kada razvijeni kod prođe kroz testove, automatski se implementira u produkciju, čime se smanjuje vreme potrebno za ručno testiranje i isporuku. Kroz ove promene u procesu razvoja, tim je uspeo da ubrza isporuku softvera, smanji cikluse razvoja i poveća zadovoljstvo korisnika, jer su mogli brže da reaguju i daju povratne informacije koje su odmah uticale na dalji razvoj softvera.

Za efikasno upravljanje radnim tokovima i prvo definisanje, pa onda i eliminisanje „prepreka“ , možete koristiti popularne alate, Scrum board ili Kanban (koristi japanski koncept). Oni se baziraju na vizualizaciji kao ključnom elementu u praćenju celokupnog procesa i jasno ćete videti gde je npr. nastao „zastoj“ u procesu razvoja. Ne postoji tačna formula koja će vam reći da li izabrati neki od njih, to je na timovima da odluče u zavisnosti od raznih faktora. Odluka je veoma individualna. Mi vam možemo reći da je glavna razlika između Kanban i Scrum table je u tome što je Kanban tabla fleksibilnija i omogućava kontinuirani tok rada, dok je Scrum tabla dizajnirana za korišćenje tokom sprinta. Kanban tabla se često koristi u kontekstu kontinuirane integracije i isporuke (CI/CD), dok se Scrum tabla koristi u okviru Scrum metodologije za upravljanje sprintovima.

Možemo da uzmemo još jedan primer u kome bi naš tim učestvovao u procesu dizajniranja korisničkog interfejsa. U ovom slučaju bi ključna stvar trebalo da bude usmeravanje na korisnika. Umesto da se fokusiramo samo na estetiku ili na tehničke detalje, fokusiraćemo se na to da što bolje razumemo potrebe i želje korisnika, kako bismo kreirali intuitivan i na oko prijatan interfejs. U ovom primeru bi nam verovatno bilo potrebno istraživanje korisničkog iskustva, pa onda testiranje prototipa sa stvarnim korisnicima i na kraju isporuka iteracija za poboljšanje, a na osnovu povratnih informacija.

U svakom slučaju, najbitnije je da se shvati da je tok vrednosti  veoma važna stvar! Kada to razumemo, razumećemo i da isporuka vrednosti za korisnika ne sme da trpi zbog ličnog zadovoljstva tehničkom izvrsnošću, koje će svakako doći pre ili kasnije.

Malo discipline je neophodno kako biste pružili brže i češće isporuke, kako biste što je moguće više vremena potrošili odgovarajući na zahteve korisnika, a što manje vremena na razvoj i implementaciju. Sve to na račun obima, pa čak i kvaliteta, ukoliko je potrebno.

 

Oceni tekst

4
9 glasova

1 komentar

Iz ove kategorije

Svi članci sa Bloga

Slični poslovi

Povezane kompanije po tagovima