Két mobilfejlesztővel beszélgetni, pláne ha mindketten más platformot képviselnek, nem unalmas időtöltés. Amellett, hogy vezető fejlesztőként mindketten ismerik a mobilfejlesztés sava-borsát, otthonosan mozognak a közkeletű szakmai élcelődések világában is. Jenei Viktorral és Nyéki Lajossal beszélgettünk, akik a budapesti EPAM csapatát erősítik.
Nyéki Lajos
Éppen hét éve dolgozik az EPAM-nál, ez az első teljes munkaidős állása. A BME Villamosmérnöki karán végzett, majd gyakornokként dolgozott egy évig a HP-nál, enterprise rendszerekkel foglalkozott. Megtetszett neki ez a világ, így olyan céget keresett, ami kellően nagy és nemzetközi, sok lokációval. Mivel a diplomamunkáját az android platformról írta és a telefonja is androidos volt, így szerette volna kipróbálni magát a mobilfejlesztés ezen területén. Az EPAM-nál juniorként kezdett, ma már Lead Software Engineer.
Jenei Viktor
Webfejlesztőként indult a karrierje 2003-ban és a következő hét évben kisvállalati környezetben, több munkahelyen szerezte szakmai tapasztalatait. Amikor néhány kollégája saját céget alapított, mely mobilfejlesztéssel foglalkozott, ő is váltott és ezen a területen kezdett el dolgozni. Élete legjobb döntésének tartja a váltást, ennek köszönheti EPAM-os iOS fejlesztői szerepkörét is. A budapesti EPAM csapatot 2010 óta erősíti, az első itteni iOS projektre szerződött, azóta pedig már Lead Software Engineer-ként dolgozik a cégnél
Adott két mobilfejlesztő, az egyik androidra a másik iOS-re fejleszt. Különböznek a feladataitok? Miben más, miben hasonló a két különböző rendszerre fejleszteni?
Jenei Viktor (JV): Nagy különbség nincs a kettő közt, ami ellenben nagyon fontos lead fejlesztői szinten, az a profi mérnöki hozzáállás. Hogy ne csak részfeladatokkal tudjunk boldogulni, hanem a nagy egészet, a szoftvert magát is képesek legyünk megtervezni. Ráadásul úgy, hogy bővíthető és fenntartható legyen hosszú éveken keresztül. A másik nagy kihívás ebben a szerepkörben a csapatvezetés, az ügyféloldali kommunikáció, aminek megvannak a maga kihívásai, buktatói, hiszen vannak „könnyű” ügyfelek, akikkel nagyon egyszerű együtt dolgozni, de olyanok is, akiknél nagy szükség van a diplomáciai érzékre, ahol ügyesen kell kezelni a kényesebb helyzeteket és fontos jól, okosan kommunikálni.
Nyéki Lajos (NyL): Ha nem a hierarchia oldaláról közelítjük meg a kérdést, hanem a projektben betöltött szerep felől, akkor ez esetben a képességek kerülnek előtérbe, ennek alapján dől el, mi lesz a napi feladatod, felelősséged. Például Lead Software Engineer-ként volt olyan egy fős csapatom, ahol nagyon erősen a technológián volt a fókusz, abban kellett erősnek lenni és mindent egyeztetni az ügyféllel, folyamatosan tanácsot adni. Máskor pedig egy kis, 4-5 fős csapatban egyszerre láttam el a csapatvezető, a scrum master és a business analyst feladatokat is. A jelenlegi projekten például éppen az az érdekes, hogy Viktorral több csapatot is vezetünk és így egészen más mértékben folyunk bele a napi fejlesztésbe, sokkal inkább azon van a hangsúly, hogyan tudjuk támogatni a kollégák fejlődését, miként tudunk segíteni nekik abban, hogy minél jobban végezhessék a munkájukat.
Mindkettőtöknek van előzetes tapasztalata. Miben különbözik ez a szerepkör az EPAM-nál a korábbi munkahelyeitektől?
JV: A korábbi munkahelyeimen a munka 99 százaléka fejlesztéssel járt. Itt az EPAM-nál pedig minden egyes projekttel változik a szerep, amiben vagyok. Mindig más és más hangsúlyt kap a fejlesztés, a csapatvezetés, a kommunikáció. Ebben a szerepkörben azért már jóval kevesebb időnk jut a fejlesztésre, ellenben különböző más szerepkörökben is helyt állunk.
NyL: Az előző munkahelyemen még részmunkaidőben dolgoztam, de már ott is több csapattal kellett együttműködnöm, egyeztetnem, információkat szereznem tőlük. Az EPAM-nál aztán eleinte főleg fejlesztéssel foglalkoztam, így itt a technológiában mélyedhettem el jobban.
A mobilfejlesztői szerepkörhöz van egy bizonyos képzettség vagy tapasztalat, ami szükséges, vagy tipikusan nincs ilyen? Milyen végzettséggel, tapasztalattal válhat valakiből mobilfejlesztő? Honnan érkezhet valaki?
JV: Nekem van erre egy nagyon jó válaszom: bárhonnan! A budapesti iroda mobilfejlesztőit nézve, vannak olyan srácaink és lányaink, akik az egyetemről frissen végezve jöttek, de vannak olyanok is, akik más fejlesztői területről érkeztek és úgy tértek át a mobilra. Olyan is előfordul, hogy valaki az élet egészen más területéről, önképzéssel jut el a mobilfejlesztői karrierig; van szakácsunk, rendőrünk is. A mobilfejlesztésnek hatalmas előnye, hogy ahhoz, hogy valaki belekezdjen, viszonylag kevés készségre van szükség. Nyilván ez messze áll a profizmustól, de ha valaki foglalkozik azzal, hogy megértse, hogyan működik maga az a platform, amin dolgozik és nemcsak tutorialt, tutorialra követ anélkül, hogy megértené, miként épülnek fel körülötte a dolgok, akkor gyakorlatilag szerintem ez egy nagyon jól tanulható dolog bárkinek. Összefoglalva tehát, hogy nincs semmi ilyen előkövetelmény.
Mik azok a készségek, amik azért mégis jól jönnek?
NyL: Az új dolgok befogadására való készség, a nyitottság nagyon fontosak. A szoftverfejlesztésben „van egy olyan trükk” a többi tudományhoz képest, hogy rendkívül gyorsan fejlődik. Előfordulhat, hogy egy évvel ezelőtt még teljesen másképp csináltunk valamit és nem tudsz olyan fix tudással érkezni, ami évekre garantálja, hogy boldogulsz. Mindenképpen egy folyamatos tanulás az egész.
JV: Ha a szoftveriparra igaz ez, akkor a mobilfejlesztésre még inkább! Az elmúlt 5 évben mindkét platformról tudnánk olyan példákat mutatni, ahol majdnem teljes hátra arcot kellett csinálnunk, mert nemcsak újítások, az addig használt skillset változott, hanem teljesen új nyelvet vezetett be például az Apple.
NyL: Meg a Google is az androidra...
JV: Ez bármikor megtörténhet. Nagyon érdekes, ha belegondolok, hogy egy évvel ezelőtt milyen tanácsot adtam volna egy adott problémára és hogy az mennyire különbözik attól, mint amit ma tudnék adni rá. Folyamatosan át kell gondolni a technológiákat, meg kell tanulni az új dolgokat, változnak a best practice-k is.
NyL: Szerintem minden szoftverfejlesztő „megköpködi” azt, amit korábban csinált és isteníti azt, amit most csinál. Két év múlva pedig ugyanez fog történni azzal, amit most istenít...
A magánéletben kinek milyen rendszerű telefonja van?
JV: Azt használom, amivel dolgozok.
NyL: Én is, nekem androidom van.
Laikusként úgy képzelem, hogy a két rendszer fejlesztői közt van valamiféle kis ártatlan feszültség, élcelődés, a másik rendszerének froclizása.
? : Igen, abszolút! Sőt régen majdnem vérre menő viták voltak, mindenki harcosként küzdött a saját platformájáért. Mára megtanultuk kezelni ezt és most már tényleg csak viccelődés meg hülyéskedés megy ezzel.
Van egy olyan közkeletű vicc, ami mindig előkerül, amivel azért még mindig húzni lehet a másikat?
JV: Igen, van: általános tény, hogy az iOS sokkal jobb, mint az android.
NyL: Nagyon érdekes kérdés, mert most ahogy így nézem a Viktor laptopját engem nagyon idegesít, hogy fénylik a kijelző. De az Apple meg ezt ugye nagyon szereti...
JV: Én pedig a te laptopodat néztem meg és elkeserítően kicsi rajta a touch pad.
Ha kicsit komolyabbra fordítjuk a szót, mik a legfontosabb különbözőségek, fejlesztői szemmel?
NyV: A kérdés, amit felteszünk, az szokott lenni, hogy vajon „kiben van a business”? Az Apple sokkal inkább az eszközben, a platformban látja az üzletet, a Google meg sokkal inkább a felhasználóban. Az androidnál nagyon sok minden ingyen van, ugyanakkor ez a látszólagos ingyenesség sok megkötéssel jár, hiszen a Google azáltal, hogy használod az alkalmazásukat rengeteg adathoz jut, amit számtalan dologra tudnak fordítani. Az Apple-nél ezügyben kicsit más a felfogás,
JV: Nem feltétlenül értek veled egyet, én kicsit más irányból közelíteném meg ezt a dolgot. Azért a szolgáltatások köre, amit kapsz bármelyik platformtól, nagyon hasonló. Levelezés, tárhely-szolgáltatás, a különböző chat lehetőségek, app store megoldások, hogy a store-ban milyen alkalmazások vannak szintén nagyon hasonló. A két platform közt az a nagy különbség szerintem, hogy az iOS userek sokkal jobban megbíznak az Apple-ben, mert nem egyszer bizonyította, hogy mérföldekkel előrébb tart a saját felhasználói adatainak a megvédésében, mint az android, illetve a Google.
NyL: Jó, ebben tulajdonképpen lehet valami, nehéz cáfolni, mert szerintem is így van. De azért szeretem viszont az androidot, mert nem vagyok hozzáláncolva egy adott gyártóhoz és sokkal nagyobb választékot kínál, amivel dolgozni lehet. Nekem például nem szimpatikus az Apple-ben, hogy nem ad lehetőséget a felhasználóinak, hogy eldöntsék, mi a jó nekik, ők akarnak diktálni, mi a jó. Például kitalálják, hogy többé nem kell jack-csatlakozó a telefonra. Aztán persze ezt később átveszi az android is, miután az Apple kitalálta, ez igaz, mégsem veszi át minden gyártó. Így még mindig megvan az a lehetőségem, hogyha szeretnék egy jack-csatlakozót a telefonomba, akkor tudok egy olyan gyártót, akinek még van.
JV: Sok mindenben egyetértek, ugyanakkor ennek nyilván ott van a másik oldala is. Igen, aki egyszer belecsöppen az Apple ökoszisztémába, az már nagyon nehezen fog belőle kijönni. Mert van egy nagy számítógépem, egy telefonom, egy tabletem és nagyon nagy előnye mindegyiknek, hogy ugyanazokat a dolgokat meg tudom rajta csinálni. Óriási hátránya ugyanakkor, hogyha esetleg szeretném a számítógépemet egy bármely más PC-re cserélni, akkor ki fog esni azokból a szolgáltatásokból, amit napi szinten nagyon sokszor használok és ennek megvan az ára. Dollárosítva nem is kis összeg, cserébe azonban a hardverek minősége és a support a hardverekre, iszonyatosan jó és tartós. Kétélű dolog.
Függetlenül attól, hogy iOS vagy android a terület, miben áll a mobilfejlesztői lét szépsége, ti hogyan látjátok?
NyL: Ha más diszciplínákkal hasonlítom össze a szoftverfejlesztésben, akkor azért szeretem a mobilfejlesztést, mert nagyon változatos. Nagyon sokszor csinálunk „vastag klienseket”, hiszen egy csomó dolog a telefonon történik és ha mondjuk weblapokat írsz, akkor ezekre a fejlesztésekre nincsen lehetőséged.
JV: Az elmúlt tizenkét évben olyan széles skálán mozogtam a termékek terén, amivel dolgoztunk, hogy nagyon nehéz lenne összefoglalni is. Nagyon szeretem, hogy ez a világ ennyire gyorsan változik és van mihez adaptálódni, a mobilfejlesztés hatékonyságra tanít.
NyL: Teljesen egyetértek ezzel. Limitáltabbak az erőforrások, mint egy számítógépen, ezért a hatékonyságra nagyon oda kell figyelni. És ez a tényező az, ami nagyon meg tudja nehezíteni, de nagyon meg is tudja fűszerezni ezt a munkát.