Galerija

Koje vrste programerskih kategorija postoje?

Kada bi vas neko pre dvadeset do trideset godina pitao kojim se poslom bavite i ako bi odgovor bio programer, to bi izazvalo veliko cudjenje. Jedini programer za koji je obican covek tada cuo bio je programator za ves masinu. Na svu srecu stanje se od tada podosta popravilo, programeri su danas cesta pojava i obican covek vise manje zna sta je to, ali da li potencijalni softverski inzenjeri znaju bas cime se bave ti ljudi? Pa verovatno znaju za neke aspekte, evo ovde malo opsirnijeg opisa ko sta radi. Naravno, radi se o srednjim i vecim firmama, u malim nema neke vece specijalizacije, skoro svi softverski inzenjeri rade sve poslove. U vecim firmama potrebna je veca specijalizacija, pa ko zeli da udje u ovaj carobni svet, evo neke podele. Nije jedina, ali je cesta.

Džungla raznih softverskih struka

Džungla raznih softverskih struka

Na vrhu piramide, koja nije bas potpuno hijerarhijska, vec vise federativna, nalazi se pozicija Enterprise Architect ili arhitekta citavog sistema firme. On 90% svog vremena provodi u saradnji sa poslovnom jedinicom, a ostatak vremena je tehnicke prirode. Na njemu je da razume dugogodisnju strategiju biznisa, radi se od 5 do deset godina unapred, zavisi od firme. Ako bi metafore firma bila neki grad, onda bi enterprise architect odlucio gde ce biti poslovni centri, gde stambene cetrvrti, gde shoping centri, gde aerodrom, gde zeleznicka stanica itd. Naravno, on bi bio u dosluhu sa gradonacelnikom grada (chief product manager). Enterprise architect prevodi zelje gradonacelnika koje su funcionalne prirode u tehnicku izvedivost. Urbanista grada. U firmama, u zavisnosti od velicine, moze biti vise takvih pozicija. On odlucuje da li ce se koristiti cloud computing ili localni server/client, koje servise moraju svi da koriste, a koji zavise od proizvoda, on odlucuje da li ce programski jezik za citavu firmu biti Java ili C++ ako to ima efekta na buduce razvoje. On je taj koji odlucuje makro-modele razvoja softvera koji su trazversalni kroz celu firmu.

Iduci dole ka bazi piramide, dolaze Solution Architects ili architekti za nalazenje resenja. Kao sto rekoh ranije, ne radi se o strogoj hijerarhiji, vec o podeli posla. Nemoguce je jednom coveku, pa cak ni timu enterprise arhitekata da se bave svim detaljima. Solution Architects resavaju kvartove. Svakom se dodeli po jedan koji je enterprise architect odlucio. Neko dobije da resi trzne centre, neko aerodrom, neko stambene cetrvrti. Oni odlucuju gde ce koja zgrada doci, kako rasporediti ulice, parkove, koliko svakog od njih treba biti, resavaju prirodne prepreke kao na primer reke, brda, itd… Ali ne mogu da postave stambenu cetvrt tamo gde je odluceno na visem nivou da ce biti poslovni centri. To je van njegove moci. Solution architect provodi oko 50% svog vremena sa poslovnom jedinicom, sa product managerima specijalizovanim za odredjene proizvode. Ostatak vremena trosi na trazenje technickog resenja kako povezati sve sisteme, koju tehnologiju izabrati za dati problem, za bitnije elemente cak i predlaze algoritam, naravno na nivou opisa, arhitekta ne implementira. Narvno sve odluke solution architecta moraju biti u skladu sa tehnoloskim i sistemskim odlukama enterprise architecta.

Nakon toga dolazi System Architect, koji je zaduzen za zgradu u okviru stambene cetrvrti. On odlucuje koliko spratova, broj liftova, tip fasade, raspored stanova na svakom spratu, On provodi oko 30% svog vremena sa poslovnom jednicom a 70% na tehnickom resenju. On je dakle mnogo vise u detaljima. On vec ide u predlaganje algoritama za svaki aspekt aplikacije, on ulazi u trazenje prave softverske biblioteke za dati problem, bilo da je u pitanju grafika ili neko numericko racunanje.

Iza njega dolazi Software Architect. Ne njemu je da odradi sprat po sprat svake zgrade. Cesto se Software Architect zove i Software Designer. On provodi 90% svog vremena na tehnickoj realizaciji. Retko ima potrebe da razgovara sa poslovnom jedicinom, ako mu bas nesto nije jasno moze se konsultovati sa System ili Solution Architectom. Ako bi sistem koristio jezik objektno orijentisane paradigme, njegov posao bi bio da ispise sve klase, njihove medjusobne odnose pa cak i metode, ili barem one najvaznije, za citav sistem.

Nakon toga dolaze Software Analysts. Dakle tu prestaju arhitekti, radi se o ljudima koje provode 99% svog vremena na tehnickom delu. Na njima je da nadju algoritme za sve probleme, bilo kog nivoa. Recimo da oni rade stan po stan u okviru sprata.

I na kraju tu su software coders – koderi, negde se zovu i precision coders. Oni koji pisu 95% posto svog koda, ali u okviru onoga sto su im svi oni prethodni propisali. Veoma mala ili nikakva sloboda. Recimo da se oni mogu smatrati zidarima. Oni zaista grade zgradu i moraju veoma dobro da znaju kako se mesa malter, kako se kucaju stokovi, kako se stavlja parket. Ali ne moraju da brinu gde su noseci zidovi, da li staticki projekat zgrade ima smisla, ako na planu pise zid od 5 metara, zid mora biti od pet metara.

Nijedan od ovih poslova nije niti sraman, niti je teznja svakog softverskog inzenjera da postane enterprise architect. Mnogi, cak vecina zeli da se bavi tehnickim delom posla, pricati sa poslovnom jedinicom za mnoge predstavlja nezeljeni stres. Recimo da najveci broj u svom napretku brzo predje na posao analiticara ili dizajnera i ne tako retko system arhitekta. Ova dva poslednja solution i enterprise architect se moze postati ako zaista zelite da uticete na to kako ce se sami proizvodi i smisliti. Ni jedan solution architect se ne zadrzava na slepoj obradi zahteva product managera, uvek je u pitanju snazna i bogata interakcija. To su i jako trazene pozicije na trzistu softverasa, zato sto su to ljudi koji su u stanju da razumeju bitove i bajtove i spremni da prevode biznis liderima sta je moguce, a sta nemoguce. Biznis lideri ne govore tehnicki jezik, programeri ne govore biznis jezik. Arhitekti tog nivoa moraju govoriti oba, i takvih ljudi su spona izmedju dva sveta.

Ako želite da odslušate:

Advertisements

One comment on “Koje vrste programerskih kategorija postoje?

  1. Povratni ping: Copy & Paste da zadržim fotelju | Markus Maki

Zatvoreno za komentare.