Galerija

Čemu služe softverski arhitekti?

Bas ovih dana prisustvujem jos jednom od onih off-site meetinga, ili-ti skupili se ljudi pa mitinguju od jutra do mraka, dugacki stolovi, kisela voda ispred a za govornicu sedaju jedan po jedan „Drugovi, bicu kratak, i onda razveze pola sata“. Brrrrr, ti povremeni dezavui komunizma mi najeze kozu, a narocito kad to vidite da rade Amerikanci. Salu na stranu, radi se o ozbilnom poslu. Radi se o planiranju za celu sledecu godinu. U 5 radnih dana product manageri iz raznih poslovnih jedinica predstavljaju svoje projekte, a mi inzenjeri grubo procenjujemo njihovu kompleksnost i pretvaramo ih u broj sati za njihovu realizaciju. I uglavnom product manageri pocinju sa: „E ovaj proizvod smo poceli pre 15 godina, bio jedan eksperiment, nismo ni mislili da ce ikada nesto iz njega postati, onda nas je trziste iznenadilo jer je stvar krenula, onda smo brze bolje morali da objavimo verziju 2.0 sa novih 4 ficura (feature), i tako redom iz godine u godinu napakovalo se featurova i stiglo se do verzije 11.0. E kad biste jos dodali ove dve male nove ficurice bas bi nam to trebalo. Znamo da je to nesto jednostavno u par meseci ste gotovi“. Inzenjeri se pogledaju medjusobno po onom fazonu „eto opet isto, ti product manazderi, da li ce ikada nauciti…, hocemo ove godine da ih oladimo ili cemo sacekati jos jednu godinu“. Inzenjeri se u stvari svake godine nalaze pred dilemom da li ovog puta da predloze jednu generalnu popravku ili kako se to jos zove re-factoring ili ce i ovog puta da bude Brzo i Prljavo. Samo kako godine odmicu sve je vise prljavije i prljavije, a sve manje i manje brzo. I postoji uvek onaj neodlozan trenutak kada prljavstina predje meru. Nesto kao otici na najtezi ispit koji ste prebacivali iz semestra u semestar i vise ne moze jer gubite uslov za upis u sledecu godinu ili konacno platiti onu kaznu za zabranjeno parkiranje ili otici kod lekara za onu kvrgu na levom laktu sto nije bas tako strasno izlgedala do sada…. Kada nema vise odlaganja, morate da obavite generalnu. E sad, mozete product managera vredjati na razne nacine, mozete mu i majku i oca i ovo i ono, sve oni to izdrze, ali nemojte mu nikada pominjati arhitekturalnu infrastrukturu i re-factoring. To spada u teske uvrede, postaju neutesni, vec vidite kako im se pogled gubi u daljini i vidite kako razmisljaju u sebi kako da opravdaju ogromene investicije koje ne donose nikakav dobitak. Jer za PD postoje samo ficurs i kratkorocan dobitak. Pisanje programa je neophodno zlo samo po sebi. Arhitektura, to valjda vazi za kuce, sta uopste trazi medju softverom. A re-factoring to je cela krivica tima inzinjera, ko im je kriv sto su lose pisali kod do sada, oni to nikad nisu trazili, oni su redovno trazili iz godine u godinu samo nove ficurs. A podrazumeva se da se kod mora pisati dobro. Kako im samo pada na pamet da rade 6 meseci a da program radi bas ono isto sto je radio i na pocetku generalne popravke.

Pravite kuće od bitova i bajtova

Pravite kuće od bitova i bajtova

Jedan softver bez adekvatne arhitekture je kao kada bi nepismen covek i jos bez iskustva pravio dvospratnicu. Uspeo bi nekako da sklopi neku brvnaru. Trebalo bi mu deset puta vise vremena da je izgradi nego iskusnom zidaru po nacrtu arhitekte, a osim toga, kuca bi verovatno bila opasna po zivot, nikada ne znate kada bi krov pao, kada otvorite hladnu vodu izlazi iz nje plin i verovatno bi koristio kancerogene materijale. Softverski arhitekt je onaj koji mora sve da drzi pod kontrolom, cesto malo toga licno odlucuje, ali drzi suprotstavljene tabore u nekoj vise manje harmoniji.

Prvi su Product Manageri – za njih postoje proizvodi i ficurs i tacka, drugi su Project Manageri, za njih praviti rutinu koja sortira dva broja ili novu verziju vestacke inteligencije za Terminatora je isto, vazno je da se isporuci na vreme i da se budzet ne prekoraci. Onda imate programere kojima je uvek sve tesko, novo, komplikovano, nepredvidjeno, preterano. I na kraju imate testere kojima je cilj da dodaju jos 50 novih bagova programerima koji inace misle da su testeri niza vrsta. Dakle ovi prvi uvek traze nemoguce, ovi drugi teze da se to nemoguce isporuci na vreme, a ovi treci da to nemoguce jos i preuvelicavaju. Osim te nezahvlane pozicije odrzavanja ekvilibrijuma izmedju tabora, arhitekta u slobodne vreme malo i crta. UML dijagrame uglavnom. Package dijagrame, Class Structure Dijagrame, State Dijagrame i tako dalje. Pokusava da daje neku strukturu nadajuci se da ne razljuti neku od suprotstavljenih strana. I znate kada arhitekta zna da je dobro oradio svoj posao. Ne daj boze da bi mu neka od suprotstavljenih strana to direktno rekla. To se nekako mora citati izmedju redova. Na primer kada product manager iz godine u godinu stalno trazi dve nove ficurine i uvek isto kosta, nema re-factorisanja. Ili kada programeri vam onako dobace kako je zacudjujuce lako isao link sa novim web servisima za e-commerce. Arhitektura se pise od prve linija koda, kada vam product manager trazi dve ficurs, vi ga prinudite da vam oda koje naredne 22 ficurs ima na umu, a nije vam rekao. Kada razgovarate sa programerima morate da im nudite nova resenja, a da njima izgleda kao da je uvek bilo tako. Programeri su alergicni na promene, tako da moraju sto vise da se sakriju. Od Project Manager-a nemojte nikada nista ocekivati. Oni su sila za uterivanje reda i discipline. Oni su policija koja ne bira sredstva. Oni ne mogu da shvate da li je proizvod isporucen na vreme zato sto ste vi uspeli da odradite dobru strukturu, zato sto je Product Manager skinuo 30% ficura ili zato sto su programeri postali produktivniji. Oni uvek pitaju “ da li je task na kriticnoj stazi (critical path) ili kako da resurse (oni odavno ljude zovu resursima) zeznu pa da i ovog puta ne odu na odmor ili „a to je novost, mora da ide na Odbor za Odobrovanja Promena“. Imaju oni pravo, ali sa njima je zanimljivo razgovarati kao sa inspektorima finansijskog bilansa retroaktivno 15 godina unazad.

Arhitektura funkcionise kada je niko ne primecuje. Kada sve izgleda kao da je bas tako trebalo biti, kada je sve jednostavno i kada treba dodati novi deo i kada treba promeniti neki postojeci, a pri tom ne treba brinuti da ako promenite drajver za tastaturu ne radi vise monitor. A koje su tajne arhitekture, videcemo u nekom od sledecih priloga.

Ako želite da odslušate:

Advertisements

One comment on “Čemu služe softverski arhitekti?

  1. Povratni ping: Product, Project, Engineering i Program Manager | Markus Maki

Zatvoreno za komentare.