A szoftverfejlesztés csúcsa – Ismerd meg a szoftver architekt munkakört!

Munkakör Olvasási idő:7 perc

Szoftver architekt_cover

A legtöbb szakmában biztosan találunk legalább egy-két olyan munkakört, amely a pályakezdők szeme előtt lebeg, mint végső karriercél. A szoftverfejlesztésben az egyik ilyen pozíció kétségkívül a szoftver architekté.

Sokak számára mégis megfoghatatlan, mivel telnek a szakemberek mindennapjai, ráadásul az adott vállalat méretétől, profiljától, az érintett projektektől is függhet, hogy mi kerül a munkakör fókuszába.

Sinka Gábor, a DXC Technology architekt kollégája irigylésre méltó elkötelezettséggel mesélt szakmájáról, feladatairól, példája remekül bizonyítja a kitartó munka és a tudatosság fontosságát.

A DXC Technology a világ vezető, független informatikai szolgáltató DXC Technologyvállalata, mely a digitális transzformáció és innovatív megoldások által támogatja ügyfeleit, fokozza üzleti sikerességüket. A technológiailag független, globális szakértő gárdával és kiterjedt partneri szövetséggel rendelkező vállalat erőteljes új generációs IT szolgáltatásokat és megoldásokat kínál a világ 70 országában, 6000 versenypiaci és állami ügyfél részére, globálisan is elismert társadalmi elkötelezettség mellett. Immáron a legnagyobb hazai nagyvállalatokat is  technológiai partnerének tudhatja.

ITmap: Gábor, mit jelent pontosan az, hogy valaki szoftver architeként dolgozik?

Sinka Gábor: A szoftver architekt az szoftverfejlesztés építésze: olyan építményterveket kell készítenie, amelyek műszakilag megvalósíthatók, nem dőlnek le, és hosszú távon élhetők maradnak. Ha mindezt az informatika nyelvére fordítjuk le, akkor az építmény a szoftver, az építőkövek a technológiák, a megvalósítók pedig a szoftverfejlesztők. Architektként ezek összhangját kell megteremteni, hogy a végén olyan szoftvertermékké álljanak össze, amely maximálisan megfelel az ügyfelek igényeinek.

ITmap: Hogyan kell mindezt a gyakorlatban elképzelni?

Sinka Gábor: Szoftver architektként először is nagyon pontosan meg kell értened, hogy mit is szeretne az ügyfél, melyek a valódi céljai, milyen környezetbe beilleszteni a megoldást, illetve mik az elvárásai az elkészítendő termékkel, alkalmazással kapcsolatban. Ehhez a rejtett motivációkat, elképzeléseket is felszínre kell hoznod a megfelelő kérdések feltételével, meg kell találnod az ügyfél mögöttes mozgatórugóit, bele kell helyezkedned az ő szerepébe. Ha megvannak az egyértelmű célok, akkor fel kell építened az ahhoz vezető utat, azaz meg kell tervezned, hogy milyen technológiákkal fogtok eljutni azokig. Manapság megszámlálhatatlan technológia áll rendelkezésre, tudnod kell kiválasztani, hogy rengeteg szempontot (pl. karbantarthatóság, a használat emberi és egyéb költségei, tanulhatóság, szükséges licenszek) figyelembe véve melyik lesz az ideális az adott projektre. Hadd mondjak egy nagyon egyszerű példát: ha van egy C#-ban fejlesztő csapat, nem fogsz tudni egy attól teljesen eltérő technológiát, például Java-t választani, mert nincs meg az ahhoz szükséges erőforrás. Hiába nagyon elterjedt vagy jól működő egy technológia, ha a Te céljaidnak nem az felel meg. Ugyanilyen fontos lehet az a szempont is, hogy az elkészített szoftvert majd egy üzemeltető csapatnak működtetnie, üzemeltetnie kell. Ha ebben a csapatban egyáltalán nem adott egy bizonyos technológia ismerete, nem érdemes azt választani, mert hiába tudnak a fejlesztők valamit elkészíteni, ha nem lesz, aki majd a végén működtesse. Rengeteg hasonló kérdésen végig kell menni ahhoz, hogy a végén egy olyan működő, komplex rendszer álljon össze, ahol mindennek megvan a saját szerepe, minden építőkő a helyén van, ráadásul még megfelelően illeszkednek is egymáshoz. Mindig az adott cél határozza meg az eszközöket – architektként a megfelelő anyagválasztással, azaz a megfelelő technológiával és az azt megvalósítani tudó szakemberekkel biztosítjuk a kivitelezést.

ITmap: Milyen karrierutat jártál be, amíg végül eljutottál az architekt munkakörig?

Sinka Gábor: Három dolog határozta meg az életemet kiskamasz korom óta: az informatika, az elektronika és a zene. Elektronikai technikusként végeztem szakközépiskolában, amelyet követően szerettem volna a BME-n továbbtanulni, de nem sikerült a felvételim. Tettem egy rövid kitérőt a pénzügy világába, de hamar rá kellett jönnöm, hogy nem nekem való ez a terület, így átmentem a Szent István Egyetem gazdasági mérnök szakára. Mellette szabadúszóként folyamatosan programoztam, és egy idő után döntést kellett hoznom, hogy a tanulmányaimra, vagy a munkára koncentrálok. Ez utóbbi mellett döntöttem, és szakmai fejlődésemet szem előtt tartva, elkezdtem a Microsoft-os minősítésekre hangsúlyt helyezni, fókuszáltan elkezdtem megtanulni a gyártói technológiát. Rengeteg vizsgát letettem, amelynek köszönhetően 2001-ben megkerestek az akkori egyik oktatóközpontból, és felkértek az oktatói szerepkör betöltésére. Ismét válaszút elé kerültem, hiszen az oktatói munka teljesen más jellegű, mint a fejlesztői, mégis a mai napig is úgy gondolom, hogy jó döntést hoztam.

Szoftver_architekt_tartalom

Közel hat évig dolgoztam náluk, megszereztem a Microsoft Certified Trainer minősítést is, amely mögött rengeteg tanulás és felkészülés húzódik meg, hiszen a Microsoft nagyon szigorú feltételekhez köti a minősülést. Elsősorban fejlesztői képzéseket tartottam, a gyakorlati programozás emellett némileg háttérbe szorult, bár voltak projektjeim, de nem azok voltak a fő fókuszban. Ahogy sok más oktató, én is rengeteg megkeresést kaptam vállalati oldalról, az egyik ilyen lehetőségre végül igent mondtam és visszamentem a versenyszférába fejlesztőként, majd később vezető fejlesztő lettem ugyanitt. Hat évvel később kerültem egy olyan vállalathoz, ahol több pályázati projekten is dolgoztunk. A legnagyobb értéke a munkámnak az volt, hogy a pályázatok miatt rengeteg új technológiát próbálhattam ki, ami nagyon széles látókört adott. Itt is vezető fejlesztő voltam, de architekt feladatokat is elláttam. Egy rövidebb kitérő után 2017-ben kerültem a DXC Technology-hoz, ahol a hazai fejlesztő csapattal egy autóipari vállalat gyártásmenedzsment rendszerét helyezzük új alapokra. A munkaidőm nagyjából 20-30%-ában architektként működök, a fennmaradó részében pedig aktívan fejlesztek, ami különösen előnyös, hiszen amit megterveztem, annak a megvalósításában is jelen vagyok. A projekt különösen izgalmas számomra, hiszen, amikor professzionális csapatként elkezdtünk a Continental-lal együttműködni, lényegében egy kultúrát hoztunk magunkkal, amit azóta sikeresen meghonosítottunk. Mivel egy gyártóvállalatról beszélünk, érthető módon nem a szoftverfejlesztés állt mindennapjaik középpontjában, és támogatás nélkül nagyon nehéz lett volna szintet lépniük. Itt jöttünk mi a képbe, akik a fejlesztői tudásunkat ötvöztük a cégnél meglévő, magas szintű mérnöki tudással. Nagyon büszke vagyok arra, hogy ezt olyan jól sikerült megvalósítanunk, hogy ma már komoly döntések előkészítésében veszünk részt és egy olyan fejlődési pályára állítottuk az érintett területeket, amely korábban nehezen elképzelhető volt.

ITmap: Milyen ismeretek szükségesek mindennek a megvalósításához?

Sinka Gábor: Szoftver architektént rendkívül széles körű ismeretekre van szükség, a szoftverek tervezésétől, fejlesztésétől kezdve a tesztelésen át az üzemeltetésig, hogy csak a főbb pontokat emeljem ki. Pontosan értened kell mindazt a technika folyamatot, ami ott kezdődik, hogy az ügyfélnél megszületik az ötlet és addig tart, ameddig élesben el nem kezd működni az alkalmazás, sőt, azon is túl, hiszen az üzemeltetés alapvető kérdéseivel is tisztában kell lenni. Ismerni kell a teljes termék-életciklust, azaz hogy egy szoftvertermék milyen fázisokon megy keresztül, amíg végtermék nem lesz belőle.

Mindebből az következik, hogy architektként nagyon mélyen nem érthetsz mindenhez, de minden területen olyan szintű tudással kell rendelkezned, hogy magabiztosan tudjál tárgyalni a terület képviselőivel: ismerned kell a technológiák határait, működésük peremfeltételeit, fontosabb funkcióikat, tudnod kell mi mire való és főleg mire nem. Bizonyos témákban sok olyan kollégám van, akiknek sokkal mélyebb tudásuk van mint nekem, de adott esetben nem szégyellem őket megkérdezni. A architektek azonban általában a szakma egy-egy szűk területére specializálódnak amelyet az átlagnál sokkal mélyebben ismernek – nálam ez a backend architektúra, illetve a szakterület vezérelt tervezés (Domain Driven Design, DDD).

ITmap: Mi szükséges ahhoz, hogy valaki architekt lehessen?

Sinka Gábor: Architektnek lenni a fejlesztő szakma csúcsát jelenti, ez nem egy könyvekből megtanulható munkakör. Rengeteg tapasztalat van amögött, hogy valaki sikeresen el tudja látni ezeket a feladatokat, amelyeket csak a gyakorlatban lehet megszerezni. A tanulás folyamata soha nem áll meg, máig rengeteg könyvet, cikket olvasok, a szakmám egyben a hobbim is. Kevésbé tudományosan megfogalmazva, az évek során kialakult egyfajta antennám arra vonatkozóan, hogy miért, mitől lesz majd sikeres egy projekt, illetve mitől nem. Ez sokkal inkább egy erős megérzés, aminek az alapja viszont a több mint két évtizedes tapasztalatom, amit nem lehet sem megspórolni, sem mással kiváltani.

ITmap: A szakmai ismereteken kívül milyen képességeket emelnél ki, amelyek meghatározzák egy architekt sikerességét?

Sinka Gábor: Hiába nagyon jó fejlesztő valaki, közel sem mindenki alkalmas architektnek. Az egyik legfontosabb megkülönböztető jegyről, a folyamatos tanulásról már volt szó. Legalább ennyire fontos az alázat, meg kell tudni hallgatni egy projekt minden szereplőjét, amelyből nem is olyan kevés van, meg kell érteni és tudni kell kezelni a technológiai érdekeket- ellenérdekeket. Ezekbe a vitákba nagyon okosan bele kell tudni állni, azaz tudni kell, mihez kell ragaszkodni, és mit lehet elengedni. A határokat muszáj feszegetni, különben nem tudunk a fejlődés, haladás motorjai lenni architektként, de tudni kell, mikor kell megállnunk. Ebben nagyon jó kiindulópont, hogy olyan terméket, szoftvert kell a megrendelő elé rakni, ami neki segít. Nagyon nyitottnak kell lenni, nem szabad csak egy területre fókuszálni, és lényegében folyamatosan ki kell lépni a komfortzónánkból. A felelősségvállalás szintén kulcskérdés a munkakörben: euró- és, dollármilliók is múlhatnak a döntéseinken, ezt tudni kell kezelni, ráadásul a helyén kezelni, ugyanis ez nem olyan hatalom, amivel visszaélhetünk. Ha nem csak felelősséget, de az azzal párhuzamban lévő önállóságot is megkapjuk, mint ahogy a DXC-nél is történik, akkor tudunk igazán nagyot alkotni.

ITmap: Milyen képzéseken lehet elsajátítani a munkakörhöz szükséges ismereteket?

Sinka Gábor: Nagyon röviden: a gyakorlatban. :) Kicsit bővebben, mint saját példám is mutatja, nem feltétlenül végzettségünk szintje határozza meg, hogy hova juthatunk el, de természetesen minden olyan képzés, amelyen programozási alapismereteket lehet szerezni, megadja az elinduláshoz szükséges elengedhetetlen tudást. Mivel azonban egy magas szintű munkakörről van szó, az ismereteket azon sok-sok év alatt lehet megszerezni, amelyeket a fejlesztésben, vagy az ahhoz kapcsolódó munkakörökben töltünk.

ITmap: Bár általában azt kérdezzük beszélgetőpartnerünktől, hogy milyen továbblépési lehetőségek vannak az adott munkakörből, ebben az esetben helytállóbbnak tűnik az a megfogalmazás, hogy milyen tapasztalatok utáni következő szint lehet a szoftver architekt pozíció?

Sinka Gábor: Valóban nehéz továbblépési lehetőséget meghatározni, mert bár van ilyen, igazán nagy szervezeteknél a Szenior / vezető architekt szerepkör, illetve a CTO – Chief Technical Officer munkakör, de ez utóbbi már nagyon eltávolodik a mindennapi fejlesztéstől, és sokkal inkább stratégiai, illetve menedzsment fókuszú. A klasszikus karrierút a junior fejlesztő – medior fejlesztő – szenior / vezető fejlesztő lépcsőket takarja, amelyek után sok-sok év megszerzett tapasztalattal a háta mögött nőheti ki valaki magát architektté. A mai szoftveripar nagyon összetett, nem véletlenül jelent meg többek között a fullstack fejlesztő munkakör sem, amelynek lényege, hogy az ebben dolgozók az elejétől a végéig értik és átlátják azt, hogy hogyan lehet egy alkalmazást felépíteni. Éppen ezért azt gondolom, hogy manapság talán az ebben a pozícióban szerzett tapasztalatok a legrelevánsabbak az architekt szerepkör szempontjából.

ITmap: Az eddigi munkatapasztalatod alapján mi az, amit tanácsként megfogalmaznál a jövő szakembereinek?

Sinka Gábor: Az előremutató gondolatok általában nem munka közben születnek, amikor sokszor nagy rajtunk a nyomás. A napi rutinunkba így érdemes beépíteni egy-egy órát, amikor számba vesszük azt, hogy mit sikerült elvégeznünk, mi van előttünk, rendszerezzük gondolatainkat! Vácott lakom, így sok időt töltök autóban. Míg ez sokak számára frusztráló lehet, én igyekszem ezeket az egyébként üresjáratokat saját gondolataim rendezésére fordítani. Ebből nem csak, hogy sokat lehet tanulni, de sokszor ilyenkor pattannak ki azok az ötletek a fejemből, amelyek egy-egy problémára vagy helyzetre megoldást jelentenek. Érdemes ezt már a pályád elején tudatosan kialakítani, mert nagyon sokat lehet profitálni belőle, főleg, ha a szoftverfejlesztés csúcsát célzod meg! :)

Derítsd ki, hogy Neked való-e a munkakör! Regisztrálj, és a Profil menüpontban megtalálod a teszteket, amelyek segítésével többek között erre a kérdésre is választ kaphatsz!