Gotovo svaki developer se suočava s pitanjima kako bi trebao razvijati svoje vještine i koju putanju rasta odabrati: vertikalnu – odnosno postati menadžer, ili horizontalnu – full-stack. Višegodišnji rad na jednom proizvodu, u suprotnosti s mitovima, ne predstavlja ograničenje, već korisnu priliku. U ovom članku dijelimo iskustvo našeg backend developera Alekseja, koji je posvetio 6 godina certifikacijama i tijekom tog vremena se uzdignuo do uloge arhitekta.

Tko je arhitekt
Arhitekt u IT-u (tech lead) je developer visokog nivoa koji se bavi globalnim pitanjima u IT projektima. On se uranja u poslovne procese klijenta i pomaže u rješavanju njegovih zadataka pomoću tehnologije, kao i određuje kako će biti organiziran određeni informatički sustav.
Takvom profesionalcu potrebno je ne samo razumjeti pojedinačna predmetna područja, već i vidjeti cijeli proces:
- Postavljanje poslovnog zadatka.
- Razvoj, uključujući programiranje, pripremu, pohranu i obrada podataka.
- Implementacija i podrška infrastrukture.
- Testiranje.
- Deploy.
- Analitika i operativno održavanje.
To znači sposobnost da se postaviš u kožu bilo kojeg stručnjaka ili tima u životnom ciklusu razvoja, razumjeti trenutno stanje sustava iznutra, identificirati učinjene greške, formulirati ciljeve. Ponekad – vlastoručno provesti operativnu intervenciju.
Put profesionalnog razvoja od developera do arhitekta traje dugo – obično nekoliko godina. Da bi to postigao, developeru su potrebne i praktične vještine, kao i teorijsko znanje koje se može potvrditi međunarodnom certifikacijom.
Više od 5 godina na istom projektu – rutina ili prilika za rast?
Prije nekoliko godina započeli smo rad na velikom medicinskom IT sustavu za stranog klijenta. U ovom opsežnom projektu postojali su određeni problemi:
- ograničeni pristupi;
- nestabilna produkcija;
- nevjerojatno dugi sprinti i dugotrajna odobrenja.
"Vrijeme je da unaprijedimo vještine", — do ovog rješenja došao je jedan od vodećih developera Aleksej kako bi prevladao navedene poteškoće i bolje razumio sustav.
Aleksij je podijelio svoja iskustva o tome odakle je najbolje započeti učenje, koje certifikate je važno dobiti, kako i zašto to raditi.
Prvi korak: poboljšajte svoj engleski
Programski jezici su temelj razvoja, ali jezici za komunikaciju su jednako važni. Osobito u komunikacijama s klijentima koji govore engleski!
Iz prakse
Jednog lijepog dana, Aleksiju je nazvala zaposlenica s strane klijenta. Tada naš programer još nije mogao pohvaliti se mnoštvom certifikata — ni iz tehnologija, ni iz menadžmenta, ni iz komunikacija. Možda mu oni i ne bi bili od pomoći — jer biti kompetentan stručnjak može se postići i bez dodatnih oznaka. No, problem se svejedno pojavio.
Treba razumjeti da se razgovorni jezik radikalno razlikuje od pisanog. Ako se odlično snalazite u engleskim specifikacijama, ali ne prakticirate slušanje i govor, imamo loše vijesti. U tom slučaju, telefonske razgovore s partnerima mogli bi vas zavezati u čvor.
Aleksij je na pozivu čuo neke poznate riječi, ali je govor kolege bio toliko brz i neobičan u odnosu na klasično izgovaranje iz audio lekcija, da je osnovna suština njegovih pitanja promaknula. Iz pristojnosti i želje da ne zakomplicira situaciju, Aleksij je brzo pristao na sve prijedloge.
Treba li reći da su tijekom rada otkrivena neugodna iznenađenja? Naš programer je potpisao nešto što bi se potpuno svjesno odbio, da je ponuda došla na razumljivom jeziku.
Tada je postalo jasno da je nužno poboljšati vještine slušanja i govora. Najbolji način za to su certifikati.
Certifikacija iz engleskog jezika
Kako bi poboljšao komunikaciju unutar našeg medicinskog projekta, Aleksij je učio prema nekoliko programa. Kao rezultat, položio je certifikaciju FCE — First Certificate in English. To mu je pomoglo da počne čuti klijenta i prenijeti svoje misli.
Life hack:
Izbjegavajte programe za učenje osnovnog engleskog jezika. Vještina treba biti ciljana. Ako vam treba engleski za poslovnu komunikaciju — to i treba učiti. Samo, ne treba pretjerivati i polagati CAE (Certificate in Advanced English). Njegova osobitost su sofisticirane riječi, specifične izraze, koji se u međunarodnoj komunikaciji gotovo nikada ne koriste.

Drugi korak: certifikacija kroz cijeli tehnološki stak.
U početku, osnovu projekta činila je tehnologija objektno-relacijskog mapiranja (ORM). Tim developera s klijentove strane ponosio se svojim djelom, jer je sve napravljeno koristeći napredne koncepcije, složeno i cool.
Ipak, problemi u produkciji — posebno stalno zamrzavanje SQL servera, nisu bili rijetkost. Događalo se da je tipično rješenje problema bio ponovni pokretanje usluge. Klijent bi zvao tim lidera i javljao da je vrijeme za ponovno pokretanje. Na kraju smo odlučili da to riješimo jednom zauvijek.
Klijent je želio raditi na performansama sustava — za to je trebalo implementirati profiliranje i redovito provoditi optimizaciju. Kao alat za profiliranje, u to vrijeme — oko 2015. godine — odabran je Ants Profiler, no taj se pokazao slabim. Uz nisku razinu detaljnosti, bilo je teško dobiti informacije o kritičnom ključu koda. Uz maksimalnu razinu detaljnosti, Ants Profiler je počeo mijenjati kod na način da je funkcionalnost sustava bila ugrožena — tamo gdje je postavljeno profiliranje, sve je jednostavno padalo. Zato smo promijenili pristup.
Počeli smo s analizom statistike
Analizom statistike u produkciji postalo je jasno da 95% rada na serveru ima primitivnu poslovnu logiku od 4 retka. Za njih je bio dovoljan jedan SQL upit, a ne cjelokupna masa upita generirana poslovnom logikom s ORM-om.
Aleksiej je predložio i realizirao pohranjenu proceduru za premještanje poslova bez ORM-a. Ideja je bila u suprotnosti s uobičajenim paradigmom projekta, tim lider ju je dočekao s oprezom, ali klijent je sve prihvatio i zatražio implementaciju. To nije bilo iznenađujuće, jer je nova metoda omogućila smanjenje kašnjenja u obradi s četiri sata na nekoliko minuta — u prosjeku, 98 puta.
Ipak, ostali smo s sumnjama: je li to ispravno rješenje ili pitanje ličnih preferencija? Vjera u svemogućnost C# i ORM-a bila je poljuljana slučajnošću koja je pokazala svu moć jednostavnih rješenja.
Drugi slučaj
Tim je napisao upit za rad s podacima unutar ORM paradigme, sastavljen prema svim pravilima, bez grešaka. Njegova obrada traje 2-3 minute, a ti su parametri izgledali prihvatljivo. Međutim, alternativna implementacija pomoću najjednostavnijih selekta i pregleda omogućila je brži rezultat — za 2 sekunde.
Postalo je očito da je vrijeme da se odabere stručnjak koji će proći certifikaciju kroz cijeli stek projekta kako bi se razumjeli svi detalji i odabrala optimalna metoda. Ovaj zadatak preuzeo je Aleksej.
Prvi certifikati
Za razumijevanje suštine Aleksej je prošao , koje pokrivaju cijeli tehnološki stek projekta:
- TS: Razvoj Windows aplikacija s Microsoft .NET Framework 4
- TS: Pristup podacima pomoću Microsoft .NET Framework 4 programiranja u C#
- TS: Razvoj aplikacija za Windows s Microsoft .NET Framework 3.5
- PRO: Dizajniranje i razvoj Windows aplikacija korištenjem Microsoft .NET Framework 3.5
- PRO: Dizajniranje i razvoj aplikacija temeljenih na Windowsu korištenjem Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 — Razvoj klijentskih aplikacija temeljenih na Windowsu
Pokušavajući optimizirati rad na novom projektu, tim je došao do sljedećih zaključaka:
- Za funkcionalnost sustava potrebno je poštovati pravila pisanja koda: ne samo u pogledu uvlaka i komentara, već i tehničkih specifikacija — broj pristupa bazama, opterećenje na server i mnogo toga drugog.
- Primjena proturječnih koncepcija može dovesti do neugodnosti. Koncepcija baza podataka — teorija skupova, dok je ORM — koncept operacija.
- Ideje koje krše ustaljeni poredak mogu naići na otpor unutar tima. Razvoj je također odnos i sposobnost argumenata za svoju točku gledišta.
- Certifikacija proširuje vidike i omogućava razumijevanje što se može koristiti, a što ne.

Korak treći: proučavajte ne samo kod
Pri radu na velikim IT rješenjima važni su brojni faktori. Na primjer, ne obraća svaki programer pažnju na parametre mreže — ali čak i njezina propusnost može utjecati na rješavanje poslovnog zadatka.
Razumijevanje toga donose certifikacije serije 98:
Oni omogućuju širi pogled na stvari i izlazak iz ograničene koncepcije “samo kod”. To su temelji, osnovne stvari, ali su važne za razumijevanje svih na dubljoj razini.
Certifikacije serije 98 predstavljaju male testove — 30 pitanja u 45 minuta.
Korak četvrti: upravljanje procesima
Rad s klinikama je odgovorniji zadatak nego, recimo, izrada mobilne igre. Ovde se ne može dodati funkcionalnost i izbaciti na produkciju — važno je slijediti proces odobravanja i unositi brojne izmjene od naručitelja, jer je u pitanju zdravlje i živote ljudi.
Tipični Agile nije donosio željene rezultate u ovom projektu, a svaki sprint trajao je dovoljno dugo. Između implementacija prolazilo je od 6 mjeseci do godine.
Osim toga, tehnički je bilo nemoguće dovesti procese deset klinika u neki zajednički nazivnik.
U tim uvjetima, programerima su bile potrebne osobna odgovornost i široka vizija procesa — što znači stalna koncentracija i visoka kvalifikacija.
Kada je stručnjak uronjen u proces, jasno vidi rezultate, uzroke i posljedice, cjelovitu sliku. To je istovremeno faktor dodatne motivacije i osviještenosti, poboljšanja sposobnosti rješavanja zadataka i problema.
Uz dobro postavljenu infrastrukturu, pravilno izgrađenu arhitekturu i optimalni kod, jedna osoba može preuzeti mnoge procese. Međutim, to ne znači da trebate razvijati univerzalne vojnike koji su sposobni samostalno voditi projekt. Komunikacija i timski rad su od ključne važnosti.
U timu svaki programer shvaća da kolege ovise o njegovim postupcima. Ušteda od 5 minuta u fazi razvoja može značiti dodatnih 5 sati testiranja. Za razumijevanje ovog fenomena važno je uspostaviti komunikaciju.
U našem projektu Alekseju su pomogle u stjecanju procesa :
- M_o_R Foundation Certificate in Risk Management
- Agile Scrum Foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation Certificate in Project Management
- Test Engineer Certificate
- Microsoft Operations Framework Foundation
- Agile Service Projects
Na edX-u su pohađani tečajevi koji su pomogli pogledati sustav iz perspektive statistike i lean softverskog inženjeringa te su kasnije potaknuli na stjecanje certifikata arhitekta:
- Lean Production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
Prema principu 'Šest sigma' (Six Sigma), statistička kontrola osigurava kvalitetan rezultat s izuzetno visokom vjerojatnošću.
Povećavajući svoj nivo, programer obično dolazi do sljedećih zaključaka:
- Radite ne puno, nego učinkovito.
- Ne komplicirajte život u potrazi za vanjskim stvarima: napredne tehnologije ne moraju nužno riješiti probleme bolje.
- Surađujte sa stručnjacima svih faza ciklusa i otkrijte njihove bolne točke. Arhitekt mora ovladati procesima: identifikacija problema, postavljanje zadatka, projektiranje mrežne topologije, razvoj, testiranje, podrška, eksploatacija.
- Provjeravajte svaku funkcionalnost od početka do kraja.
- Dogodi se da IT procesi ne odgovaraju poslovnim procesima, i s tim se treba boriti.

Peti korak: razumjeti arhitekturu kroz prizmu Velikih Podataka.
Na projektu smo se bavili prilično velikim bazama podataka. Bar nam se tako činilo do određenog trenutka. Kada je Aleksej počeo proučavati velike podatke na edX-u, otkrilo se da je 1,5 Tb na projektu mala baza podataka. Ozbiljni razmjeri kreću se od 10 Tb, i tada su potrebne druge metode.
Sljedeći korak prema certifikaciji bio je tečaj o velikim podacima. Pomogao je razumjeti organizaciju toka podataka i ubrzati operacije u produkciji. Također je skrenuo pažnju na male alate, na primjer, poceti koristiti Excel za rješavanje pojedinih mikro zadataka.
Certifikat:
Microsoft Professional Program: Certifikat o velikim podacima

Šesti korak: od programera do arhitekta.
Nakon dobivanja svih navedenih certifikata, još kao programer, Aleksej je počeo shvaćati da stečena znanja imaju visok nivo apstrakcije, pri čemu to ne znači nužno loše.
Sveobuhvatna vizija procesa vodi do nivoa arhitekta, jedne od najviših razina certifikacije.
U potrazi za certifikatom arhitekta, Aleksej je došao do od Sundblad & Sundblad. To je program priznat od strane Microsofta, a njegova izrada počela je prije 14 godina u suradnji s glavnim i švedskim uredom tvrtke. Pokriva .NET Framework, prikupljanje zahtjeva, upravljanje tokom informacija i mnoge druge visoke teme, te se smatra jakim potvrdama vještina arhitekata.
U okviru programa postojali su tečajevi za proučavanje. Certifikacija je sistematizirala znanja i omogućila prelazak na novi nivo razvoja — od programera do arhitekta.

U zaključku
Kako ističe Aleksej, u procesu rada s velikim IT sustavima važno je imati na umu da programiranje nije skupi užitak, već alat za rješavanje poslovnih zadataka. Suočavajući se s određenim izazovima, uvek treba definirati poslovnu vrijednost kako projekt ne bi zapao u slijepu ulicu.
Arhitekt ima poseban pogled na programiranje i njegove elementarne sastavnice:
- Kreiranje i/ili održavanje toka podataka
- Izvlačenje toka informacija na temelju toka podataka
- Izvlačenje toka vrijednosti na temelju toka informacija
- Monetizacija toka vrijednosti
Ako se gleda na projekt očima arhitekta, treba početi od kraja: formulirati vrijednost i zatim joj se približiti kroz tok podataka.
Arhitekt poštuje pravila razvoja, imajući globalnu viziju projekta. Doći do njega kroz praksu i vlastite greške gotovo je nemoguće — preciznije, moguće je, ali vrlo dugotrajno. Certifikacija omogućava širenje horizonta i gledanje na cjelokupni kontekst svake problematike, upoznavanje s iskustvom tisuća profesionalaca i razvijanje vještine efikasnog rješavanja zadataka.
Na današnji dan radimo s gore opisanim medicinskim sustavom više od pet godina i postigli smo značajne napretke. Tijekom toga vremena, Aleksej je položio više od 20 certifikacijskih ispita:
- TS: Razvoj Windows aplikacija s Microsoft .NET Framework 4
- TS: Pristup podacima pomoću Microsoft .NET Framework 4 programiranja u C#
- TS: Razvoj aplikacija za Windows s Microsoft .NET Framework 3.5
- PRO: Dizajniranje i razvoj Windows aplikacija korištenjem Microsoft .NET Framework 3.5
- PRO: Dizajniranje i razvoj aplikacija temeljenih na Windowsu korištenjem Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 — Razvoj klijentskih aplikacija temeljenih na Windowsu
- 98-361: Osnovni principi razvoja softvera
- 98-364: Osnovni principi baza podataka
- M_o_R Foundation Certificate in Risk Management
- Agile Scrum Foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation Certificate in Project Management
- Test Engineer Certificate
- Microsoft Operations Framework Foundation
- Agile Service Projects
- Lean Production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
- Microsoft Professional Program: Certifikat o velikim podacima
- Certified Software Architect — Microsoft Platform

Položivši sve ispite, Aleksej je napredovao od vodećeg programera do arhitekta projekta. Pri tome je certifikacija postala snažno sredstvo kako za profesionalni razvoj, tako i za izgradnju reputacije u očima klijenta.
„Certifikacijski klin“ pomogao je dobiti pristup određenim kritičnim procesima koji su zahtijevali kontrolu i obradu. Europski klijenti IT rješenja obično visoko cijene certificirane stručnjake i spremni su im dati više slobode u radu.
Hvala na pažnji! Nadamo se da je članak bio koristan za vas.
Izvor: habr.com
