Svaka sitna promjena u aplikaciji traje tri tjedna? Evo zašto i što s tim
Tehnički dug: novo polje na formi traje tri tjedna, novi stupac još tri. Zašto razvoj s godinama postaje sve sporiji i kako ga ubrzati bez prepisivanja.
Vlado Pandžić · Osnivač · Senior .NET arhitekt
Objavljeno · 4 min čitanja
Trebate samo jedno novo polje na formi. Ili jedan stupac više u izvještaju. Tim kaže: tri tjedna. Pitate zašto, i dobijete objašnjenje koje ne razumijete, ali zvuči ozbiljno.
A sjećate se da je na početku bilo drugačije. Prve godine su nove stvari stizale za nekoliko dana. Tim nije postao lošiji. Postao je lošiji sustav u kojem radi.
Zašto se to događa: tehnički dug
Zamislite kuću kojoj se deset godina dograđivalo bez plana. Svaki put je netko na brzinu provukao kabel kroz zid, jer je tako bilo najbrže. Danas, da biste premjestili jednu utičnicu, morate probiti tri zida i nadati se da niste presjekli nešto u susjednoj sobi.
U softveru se to zove tehnički dug, i ponaša se točno kao dug: svaki put kad se nešto napravi na brzinu, uzme se kredit. Kamata se plaća pri svakoj sljedećoj promjeni. Nakon nekoliko godina kamate su veće od glavnice, i sav razvoj ide na otplatu.
Konkretno, u aplikaciji to izgleda ovako:
- Sve je povezano sa svime. Promjena na jednom mjestu ruši nešto na drugom, pa se svaka promjena mora ručno provjeravati posvuda.
- Nema automatskih testova. Svaka promjena znači ručno testiranje cijele aplikacije, a strah od kvara usporava sve.
- Ista logika kopirana je na deset mjesta. Promjena se mora napraviti deset puta, a jedno mjesto se uvijek zaboravi.
- Isporuka je ručna i rizična. Zato se isporučuje rijetko, u velikim paketima, i svaki put se drži fige.
- Samo jedna osoba zna neki dio sustava. Sve što dira taj dio čeka na nju.
- Tehnologija je zastarjela. Stara verzija .NET-a i biblioteke koje se ne mogu nadograditi bez da se sve ostalo raspadne.
Kako prepoznati da je to i vaš problem
Ne morate čitati kod. Dovoljno je pratiti ovo:
- procjene za slične zadatke s vremenom rastu
- tim za neke dijelove aplikacije kaže “to ne diramo”
- nakon svake nove verzije nešto se pokvari
- novi developeri mjesecima ne postaju samostalni
- na pitanje “zašto toliko traje” odgovor je uvijek “komplicirano je”
Ako prepoznajete tri ili više, problem nije u ljudima nego u sustavu.
Što ne pomaže
Zaposliti još ljudi. Više ljudi u zapetljanom sustavu znači više ljudi koji jedni drugima ruše stvari. Fred Brooks je to zapisao još 1975.: dodavanje ljudi projektu koji kasni čini ga još kasnijim. A i naći dobrog seniora traje mjesecima.
Pritisak na tim. Tim pod pritiskom radi još više prečaca, a svaki prečac je novi kredit. Dug raste brže.
Prepisati sve od nule. Zvuči kao rješenje, ali znači godinu ili dvije bez novih funkcionalnosti i bacanje svega što stari sustav radi dobro. To je rijetko prava prva odluka, što smo pisali i ovdje.
Što pomaže
Dug se ne otplaćuje odjednom, nego pametnim redoslijedom:
- Snimka stanjaGdje se gubi vrijeme
- Uska grlaOno što se najčešće mijenja
- Sigurnosna mrežaTestovi i automatska isporuka
- UsputSvaka promjena ostavi kod boljim
- Snimka stanja. Neovisan pogled na kod i na to kako promjena putuje od zahtjeva do produkcije. Gdje točno odlazi vrijeme: na pisanje koda, na testiranje, na čekanje, na popravljanje onoga što se usput pokvarilo?
- Uska grla. Ne treba popraviti sve. Dijelovi koje nitko ne dira mogu ostati ružni. Prvo se sređuje ono što se mijenja najčešće, jer tu se kamata plaća svaki tjedan.
- Sigurnosna mreža. Automatski testovi oko najvažnijih dijelova i isporuka na jedan klik. Kad se tim ne boji promjene, promjene postaju brže same od sebe.
- Usput. Svaka nova funkcionalnost ostavi dio koda koji dira malo boljim nego što ga je zatekla. Razvoj ne staje, a dug se otplaćuje u ratama.
Prvi pomaci vide se obično za nekoliko tjedana, ne godina, i bez zaustavljanja razvoja. Najbolja mjera je jednostavna: koliko traje tipična promjena, od zahtjeva do produkcije, prije i poslije.
Kako mi radimo
ProCoding je .NET studio iz Splita, a sređivanje sustava koji su s godinama postali spori za razvoj jedno je od onoga što radimo najčešće.
Počinjemo pregledom koda i procesa, a vi dobivate popis uskih grla poredanih po tome koliko vas koštaju. Nakon toga ih sređujemo zajedno s vašim timom ili umjesto njega, kako vam više odgovara. Prvi korak je besplatni razgovor od 30 minuta u kojem prođemo kako kod vas izgleda jedna tipična promjena.