{"id":16874,"date":"2021-02-03T18:35:57","date_gmt":"2021-02-03T17:35:57","guid":{"rendered":"https:\/\/thingsolver.com\/blog\/how-we-improved-efficiency-by-establishing-a-development-process\/"},"modified":"2024-11-28T23:09:40","modified_gmt":"2024-11-28T22:09:40","slug":"kako-smo-poboljsali-efikasnost-uspostavljanjem-razvojnog-procesa","status":"publish","type":"post","link":"https:\/\/thingsolver.com\/sr\/blog\/kako-smo-poboljsali-efikasnost-uspostavljanjem-razvojnog-procesa\/","title":{"rendered":"Kako smo pobolj\u0161ali efikasnost uspostavljanjem razvojnog procesa"},"content":{"rendered":"<p>U oblasti razvoja softvera, razli\u010diti timovi imaju razli\u010dite pristupe tome kako se stvari rade. Kada je tim mali, uvo\u0111enje procesa mo\u017ee biti neodoljivo, a najvec\u0301i izazov je odrediti kada je pravo vreme za definisanje jednog procesa.<\/p>\n<p>Od ranih dana u kompaniji Things Solver, nismo ba\u0161 razmi\u0161ljali o definisanju procesa razvoja, jer su stvari i\u0161le prili\u010dno glatko i uklju\u010divanje je bilo veoma brzo. Zatim, tokom vremena, koli\u010dina posla koji treba da se uradi je enormno porasla, \u0161to je rezultiralo kompromisom izme\u0111u kvaliteta rada i vremena isporuke. Pretpostavka da svi izvr\u0161avaju svoje obaveze i daju najkvalitetniji posao je lepa i predstavlja timski duh pun me\u0111usobnog poverenja i po\u0161tovanja \u2013 ali nesporazumi i nedostatak iskustva \u010desto dovode do ne\u017eeljenih rezultata gde se ne\u0161to mora isplatiti.<\/p>\n<p>Tako smo se susreli sa situacijom koja je zahtevala primopredaju nekog dela na\u0161e aplikacije, gde je kod koji je ostao bio zaista neorganizovan i pun anti-\u0161ablona koji su ga \u010dinili te\u0161ko razumljivim. To je rezultiralo preradom modula koji je \u010diju primopredaju je trebalo izvr\u0161iti i na\u0161om spoznajom koliko je klju\u010dno uvesti neke standardizacije. Morali smo da se uverimo da svi razumeju \u0161ta treba da isporu\u010de i da uvedemo najbolje prakse u celoj kompaniji. A kako se svi procesi ra\u0111aju iz slu\u010dajnih gre\u0161aka, tako je i na\u0161. Na\u0161 razvojni proces smo definisali na nivou kompanije, tako da svi imamo manje \u201enepoznatih promenljivih\u201c dok radimo najbolje \u0161to mo\u017eemo.<\/p>\n<p>Prva faza procesa je planiranje mape puta koja odlu\u010duje koji su na\u0161i dugoro\u010dni planovi za na\u0161 proizvod. Ovde procenjujemo vremensku liniju napretka na\u0161eg proizvoda u narednim mesecima. Nakon po\u010detnog pode\u0161avanja mape puta mo\u017ee se prilago\u0111avati i pro\u0161irivati u povremenim intervalima, ali promene u mapi puta ne bi trebalo da budu drasti\u010dne od po\u010detnog pode\u0161avanja. Kada se postavi mapa puta, ona treba da uti\u010de na planiranje i dizajn specifi\u010dnih zadataka.<\/p>\n<p>Sledec\u0301a faza procesa razvoja je dizajn zadatka. Sesije dizajniranja zadataka uklju\u010duju starije i najiskusnije \u010dlanove kompanije Things Solver, koji zajedno precizno defini\u0161u zahteve koje ova funkcija treba da podr\u017eava i na kojima c\u0301e se raditi u narednom periodu. Na primer, ako zadatak uklju\u010duje odre\u0111enu mikrouslugu, sesije dizajna zadataka defini\u0161u koje krajnje ta\u010dke servis podr\u017eava, koji su inputi krajnje ta\u010dke, koja logika se primenjuje unutar krajnje ta\u010dke i kako c\u0301e izgledati izlazne vrednosti svake krajnje ta\u010dke.<\/p>\n<p>Nakon ove faze, definisanim zadacima se daje prioritet na osnovu njihove slo\u017eenosti i vremena potrebnog za isporuku. Kada imamo definisane zadatke, mo\u017eemo pristupiti planiranju sprinta. Planiranje sprinta je doga\u0111aj koji se odr\u017eava svake dve nedelje gde se raspodeljuju radni zadaci za sledec\u0301i sprint koji c\u0301e trajati naredne dve nedelje.<\/p>\n<p>Poslednja faza razvojnog procesa je razvoj. To je period od dve nedelje izme\u0111u planiranja sprinta u kome ljudi rade na dodeljenim zadacima. Tokom razvoja svi timovi imaju svakodnevne sastanke na kojima ljudi razgovaraju o tome \u0161ta c\u0301e raditi tog dana, kao i sastanke sa rezimeom koji se odr\u017eavaju na kraju radnog dana gde svi govore o svom napretku, potencijalnim problemima, blokiranjima ili gre\u0161kama na koje su nai\u0161li.<\/p>\n<p>Kada neko obavi zadatak, on se \u0161alje na proveru koda. Stru\u010dnjaci koji pregledaju kod mogu postavljati pitanja, tra\u017eiti izmene ili odobriti poslani kod. Kada se postignu tri odobrenja, zadatak se smatra zavr\u0161enim i mo\u017ee se zapo\u010deti sledec\u0301i izazov. Ako se svi zadaci koji su raspore\u0111eni u fazi planiranja izvr\u0161e, prva stvar na beklogu je sledec\u0301i zadatak.<\/p>\n<p>Nadam se da ste u\u017eivali u mom kratkom pregledu na\u0161eg razvojnog procesa koji smo prilagodili potrebama na\u0161e kompanije i mo\u017eda vidite ne\u0161to \u0161to mislite da mo\u017eete primeniti u svom radnom okru\u017eenju.<\/p>\n<p><em>Photo credits: https:\/\/unsplash.com\/photos\/KE0nC8-58MQ<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>U oblasti razvoja softvera, razli\u010diti timovi imaju razli\u010dite pristupe tome kako se stvari rade. Kada je tim mali, uvo\u0111enje procesa mo\u017ee biti neodoljivo, a najvec\u0301i izazov je odrediti kada je pravo vreme za definisanje jednog procesa. Od ranih dana u &#8230; <\/p>\n<p class=\"read-more\"><a class=\"btn small\" href=\"https:\/\/thingsolver.com\/sr\/blog\/kako-smo-poboljsali-efikasnost-uspostavljanjem-razvojnog-procesa\/\">Pro\u010ditaj vi\u0161e<\/a><\/p>\n","protected":false},"author":3,"featured_media":16875,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[189],"tags":[217,218,219],"acf":[],"_links":{"self":[{"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/posts\/16874"}],"collection":[{"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/comments?post=16874"}],"version-history":[{"count":2,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/posts\/16874\/revisions"}],"predecessor-version":[{"id":16877,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/posts\/16874\/revisions\/16877"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/media\/16875"}],"wp:attachment":[{"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/media?parent=16874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/categories?post=16874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thingsolver.com\/sr\/wp-json\/wp\/v2\/tags?post=16874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}