26.01.2022. ·
5 min

Zašto se razvoj softvera uvek uspori kada pokušamo da ga ubrzamo

Zašto se razvoj softvera uvek uspori kada pokušamo da ga ubrzamo

Jedina prečica u programiranju koja ima smisla jeste kreiranje kvalitetnog softvera, jednom. Brzina u radu se očekuje od programera, pogotovo kada su rokovi kratki. Međutim, što više pokušavate da ubrzavate razvoj softvera, to su veće šanse za pravljenje grešaka i lošiji kvalitet. Da ne zanemarimo ni rizik od nagomilanog tehničkog duga. Najbolji način da se poveća brzina rada je da se smanji broj grešaka, bagova i tehničkih problema.

Drugim rečima, kvalitet je najbrži način da se završi softver. Programiranje je maraton. Sprint će vam možda na početku uštedeti nešto vremena, ali dugoročno, nije rešenje. Setimo se samo priče o zecu i kornjači. 

Činjenica je da su predviđanja rokova za projekte izuzetno neprecizna, što je ujedno razlog za kašnjenje gotovo svih projekata. 

Neki od načina da se uspostavi saradnja sa klijentom su niža cena, kraći rokovi i obećanja koja se gotovo nikada ne ispune. Ovo već od samog početka koči projekat jer je cilj dobiti posao, a ne napraviti realističan plan i kvalitetan proizvod. 

Zbog toga se ljudi gube u rokovima i zaboravljaju da njihova svrha nije poštovanje rokova, već kreiranje softvera/alata koji će pomoći ljudima i poslu. 

Zašto je brzo zapravo sporo? 

U najvećem broju slučajeva kada je potrebno ubrzati projekat poseže se za sledećim rešenjima: 

  • Proširenje tima 
  • Radni vikendi 
  • Smanjenje kvaliteta 
  • Skraćivanje vremena za testiranja 

Povećanje tima 

Povećanje broja ljudi u timu nije uvek dobro rešenje jer je nove članove potrebno uvesti u posao, a dodatna komunikacija i pojašnjavanje zapravo samo usporavaju stvari. Više ljudi povećava kompleksnost, a to zauzvrat zahteva dodatnu komunikaciju kako bi se izbegla konfliktna rešenja i netačne pretpostavke. 

Pritom, svi moraju da znaju šta rade drugi članovi tima i prate razvoj celokupnog projekta kako bi mogli da rade svoj posao kako treba. Ovo može znatno povećati i tehnički dug jer svi zbog brzine rade na odvojenim delovima koda. 

Problemi koji nastaju dodavanjem ljudi u tim su takođe poznati kao Brooksov zakon, koji glasi: 

„Korišćenje čoveka i 30 dana kao jedinice kojom merimo neki posao može biti opasan i zavaravajuć mit. To podrazumeva da se čovek i mesec mogu kombinovati. Ljudi i vreme mogu biti zamenljivi samo kada neki zadatak može biti podeljen između mnogo ljudi koji međusobno ne komuniciraju. Ovo se može primeniti na košenje trave, ali nikako na sistemsko programiranje.“ 

Drugim rečima, kada je programiranje u pitanju, problemi sa proširivanjem tima su sledeći: 

  • Potrebno je vreme da novi ljudi u timu postanu produktivni; 
  • Mnogo je teže deliti zadatke; 
  • Potrebno je mnogo više komunikacije kako bi se odabrali i uvelili novi ljudi. 

Povećanje broja radnih sati 

Konstantan rad troši ljude, smanjuje koncentraciju, povećava prostor za greške i na kraju dovodi do sagorevanja. 

Iako prekovremeni rad može dati kratkoročne benefite, treba da ostane poslednja alternativa. Prekovremeni rad, pogotovo vikendom, je jasan znak da nešto nije kako treba. 

Razvoj projekta zahteva kvalitet, razmišljanje, krativnost i eksperimentisanje, a to će ispratiti iz ljudi nekon nekoliko vezanih nedelja rada bez pauze i odmora. 

Konstantan rad takođe ubija i entuzijazam, utiče na kvalitet rešenja i u velikom broju slučajeva stvara više bagova. 

Ukoliko se ne radi o kratkoročnom rešenju, posledice mogu biti kobne po projekat, ali i sve koji učestvuju u njemu. 

Smanjenje kvaliteta 

Smanjenje kvaliteta usporava projekat jer bagovi i greške mogu da uspore ceo tim ukoliko se otkriju van razvojne sredine. 

Prečice i niži standardi će možda na prvi pogled ubrzati projekat. Ipak, kod će biti kompleksniji, tehnički dug će se nagomilavati i sve će najverovatnije doći na naplatu u najgorem mogućem trenutku. 

Projekat će se usporiti kada na red dođe prepravljanje ili produžavanje postojećeg koda, a lošiji kvalitet će stvari učiniti još komplikovanijim.

Skraćivanje testiranja 

Brza i ishitrena rešenja će možda isprva pokazati određene rezultate, ali kasnije će tu prednost pojesti sve gore navedene stvari i tim će biti još dalje od cilja. 

Testiranje omogućava programerima da brzo provere svoj rad i na vreme otkriju bagove. Što se vremenski okvir produžava, to je potrebno više vremena za otklanjanje problema. 

Cilj projekta jeste stvaranje rešenja koje radi i donosi dodatnu vrednost svima koji ga koriste. Zato je bolje kreirati kvalitetno rešenje u nešto dužem vremenskom roku, nego požuriti nešto što na kraju neće raditi kako treba.  

Samim tim, nameće se prosto rešenje – potrebno je usporiti na početku kako biste bili u stanju da istrčite ceo maraton, a možda čak i oborite neki rekord. 

Kako možete da optimizujete ceo proces prostim usporavanjem 

Planovi su beznačajni ako iza njih ne stoji planiranje. Planirajte i redovno prolazite kroz sve tačke dnevnog reda.  

Važno je da vam fokus bude na saradnji i da se svakodnevno prolazi kroz planove. 

Definišite kratkoročne ciljeve i dugoročnu svrhu. Kratkoročni ciljevi stvaraju fokus, a dugoročna svrha ili cilj se staraju da pažnja ne pobegne u drugom pravcu. 

Trudite se da ne donosite odluke na osnovu osećaja. Prikupite sve potrebne podatke, analizirajte ih i donosite odluke na osnovu činjenica. 

Kako projekat napreduje, pažnja nikako ne sme skrenuti sa kvaliteta. Prvo na spisku bi trebalo da je eliminisanje tehničkog duga i rešavanje bagova. 

Mnogi developeri se danas oslanjaju na sledeći pristup: ubrzaju projekat tako što će usporiti. Zaustavljaju „proizvodnu liniju“, verifikuju i proveravaju kod kako bi unapredili njegov kvalitet. Što je najvažnije, neprovereni kod nikada ne ulazi u produkciju. 

A tu su uvek i 2 zlatna pravila koja nikako ne treba zaboraviti – odmah rešavajte bagove ako je za to potrebno 30 minuta ili manje, i koristite 20% svog vremena za smanjenje tehničkog duga. 

Usporavanjem na tri ključna područja – ljudima, procesima i proizvodima, povećavamo profesionalnost i kvalitet rada, unapređujemo efikasnost procesa i poboljšavamo kvalitet proizvoda. 

Ovi pristupi će vam se možda na početku neće učiniti kao naročito korisni, ali ćete zapravo postaviti odlične temelje na kojima ćete znatno lakše i brže graditi svoj projekat. 

Oceni tekst

5
15 glasova
Uroš Jelić Uroš Jelić

Nekada IT novinar, a sada PR u tehnološkom svetu koji svaki dan gleda da otkrije i nauči nešto novo i to prenese na druge (silom ili milom). Pogotovo kada je potreban savet za kupovinu telefona.

1 komentar

Bojan Petrović Bojan Petrović 14.02.2022.
0
0

Dobar, interesantan i veoma "poučan" tekst, ali na žalost, kao i uvek, realnost na terenu je totalno drugačija i često se pribegava gore opisanim negativnim stavkama ovog teksta.

Iz ove kategorije

Svi članci sa Bloga