„Aki tesz érte, nyitott a tanulásra, az előtt szinte végtelen lehetőségek állnak!” – a szoftverfejlesztés ezer arca a XXI. században

Fejlesztés Olvasási idő:8 perc

Tudtad, hogy az első szoftverprogramot több mint hetven éve, 1948-ban fejlesztették Angliában? Az azóta eltelt évtizedekben hatalmas fejlődésen esett át az iparág, rengeteg munkakör alakult ki, napjaink leggyorsabban fejlődő ágazatában minden nap újabb lehetőségek nyílnak meg.

Az AutSoft Zrt. a hazai technológiai szektor elismert szoftverfejlesztő vállalataként a fenntartható digitális jövő építésén dolgozik. Közel 150 kiemelkedő szaktudású Autsoft_logo_Autsoft_Logo_color_Horizontalmunkatárssal innovatív alkalmazásokat és technológiai megoldásokat alkotnak. Egyedi megoldásokat szállítanak nagyvállalatok, KKV-k, induló vállalkozások és szervezetek számára valamennyi jelentős iparági szektorban. A több mint egy évtizedes múltra visszatekintő cég a Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék tudásbázisán jött létre.

Krassay Péter Sebestyén, a cég szenior architektje Téged is utazásra hív a fejlesztés világába!

ITmap: Mára a fejlesztés számos részterületté vált szét: hogyan kapcsolódnak ezek egymáshoz, milyen különböző munkakörökben lehet elindulni ezen a pályán?

Krassay Péter Sebestyén: A legszemléletesebb talán az, ha végigmegyünk egy teljes fejlesztési folyamaton, amelyből az is kiderül, hogy a szervezet egyéb területeihez hogyan és mikor kapcsolódnak a fejlesztésben dolgozó szakemberek.

Az AutSoft-nál a legtöbb projektünk úgy indul, hogy vagy közvetlenül az ügyfelektől, vagy a sales-es kollégákon keresztül beérkezik egy igény, amelyre szeretnének megoldást találni. Általában kapunk valamennyi alapinformációt, de az esetek nagy részében ez nem elegendő, szükség van egy üzleti elemzőre (Business Analyst), aki segít abban, hogy mélyebben feltérképezzük a potenciális megrendelő elképzeléseit. Ő többször egyeztet az ügyféllel, elviszi hozzá a fejlesztési területről érkezett kérdéseket, amelynek a végén lesz egy pontosabb képünk arról, hogy mi is a feladat.

Ha szükség van felhasználói felületre, a UX desigenerek már ebben a fázisban belépnek a projektbe. Ők az üzleti elemző közreműködésével, az ügyféllel egyeztetve elkészítenek egy vázat arra vonatkozóan, hogy hogyan nézzen ki az elkészítendő megoldás.

ITmap: Ekkor még tehát mindig a tervezési fázisban járunk. Mi szükséges még ahhoz, hogy a valódi fejlesztői munka elinduljon?

Krassay Péter Sebestyén: Projekttől függően, de nagyjából ennek a pontnak a környékén kezdődik az aktívabb munka. Az architektek sokszor már az igények megjelenésekor segítenek az ügyfélnek eldönteni, hogy problémája megoldásához mire van szüksége. Például nem biztos, hogy mobilalkalmazásra van szükség,  elég lehet egy böngészőben futó admin felület, vagy ennek pont az ellenkezője: nem elég egy egyszerű frontend felület, hanem érdemesebb mondjuk egy vastagkliens alkalmazást fejleszteni. Ezeket azért fontos időben feltérképezni, mert nem mindegy, hogy milyen drótvázakat kell tervezni. Az architektek így egy újabb hidat képeznek az üzleti oldal és a technika között. Ha megvan az alkalmazás drótváza, azt elkezdik technikai, technológiai nyelvre lefordítani. Pontosan tudni kell, hogy milyen komponensei lesznek az alkalmazásnak, mit fog tárolni az adatbázisban, el kell dönteni, hogy felhő módban, vagy on-premise (az ügyfél által) üzemeltetett megoldásról van-e szó. A technikai komponensek költségtervezése is az architekt kezében összpontosul.

A szakmai ajánlat végleges összeállításához bevonják a fejlesztőket is, akik különböző módszerekkel megbecsülik, hogy mennyi idő lesz a feladat elvégzése. Egyik ilyen módszer az ún. becsléspóker, amikor több fejlesztő ül egy teremben, valaki összefoglalja a konkrét funkcióval kapcsolatos tudnivalókat, legyen ez például egy kapcsolat menüpont elkészítése, amelyen szerepel a Google Maps térkép, telefonszám, kapcsolatfelvételi űrlap. A jelenlévő fejlesztők, akik lehetnek front end vagy full stack fejlesztők, felírják az általuk becsült óraszámot a funkció elkészítésére, de ezt csak akkor mutatják meg a többieknek, ha már mindenki írt egy számot.  Ezt természetesen nem kell papír-ceruzával játszani, hiszen erre is vannak szoftveres megoldások. Ha egyetértés van, akkor a ráfordítási időhöz bekerül az adott szám, ha különbözőek az álláspontok, megvizsgálják, hogy mi az oka az eltérésnek. Egy túlbecsült óraszám magas költségeket eredményez, a nagyon alacsony viszont könnyen átcsaphat veszteségbe, adott esetben még a fejlesztői munkaerő költségét sem teszi ki, illetve a határidők tartására is hatással lehet, így egy arany középutat kell megtalálni.

Az így kialakított ráfordítások visszakerülnek a sales területhez, akik ez alapján megállapodnak a megrendelővel. Ha ez létrejön, akkor kezdődhet el a maga a fejlesztés.

Krassay Péter Sebestyén

ITmap: Hogyan halad tovább ezt követően a projekt?

Krassay Péter Sebestyén: Folytatásképpen a UI designerek „kiszínezik” a véglegesnek elfogadott drótvázakat, azaz kialakítják, hogy vizuálisan hogyan nézzen ki az alkalmazás (pl. színek, méretek, betűtípusok). Az adott projektben használt komponenseket figyelembe véve aztán bizonyos fokig párhuzamosan elkezdődik a fejlesztés: az adatbázis kialakítása, a back end, a front end fejlesztése. Ahhoz, hogy ezek a fejlesztők tudjanak egymástól valamennyire függetlenül is haladni, nagyon fontos, hogy a kezdetekkor létrejöjjön egy formális megállapodás, amit minden fél igazodási pontoknak tekint, és egyértelműen tisztázzák, hogy például a backend milyen interface-eket (két számítógépes rendszer közötti kommunikációt lehetővé tévő megoldás) tud kiajánlani a kliensek számára. Minden komplex szoftveres megoldás lelke az adatbázis, ha ez megfelelően van tervezve és optimalizálva, gyorsabb lesz a szoftver sebessége.

A fejlesztésben résztvevő csapatok (projekttől függően back end, front end, full stack, mobil) nálunk általában vegyes tapasztalatú kollégákból állnak: a junior kollégák sokszor tudnak frissebb technológiát behozni. Ami a junioroknál hiányzik, de medioroknál és szenior kollégáknál erősebben megvan, az a munkatapasztalat. Például, ha egy ügyfél többnyelvű mobilalkalmazást szeretne alkalmazáson belüli nyelvválasztóval, akkor egy junior valószínűleg megoldja a problémát, és megvalósítja a kért működést. Egy medior-szenior viszont mielőtt elkezdené, visszakérdez, mivel alapvetően mindkét mobilplatform azt támogatja, hogy a telefon nyelvétől függjön az alkalmazás nyelve és alkalmazáson belül ne lehessen váltani. (Tehát aki angolul használja a telefonját, annak legyen alapértelmezetten angolul az alkalmazás is.) Ez a felhasználói élményt leszámítva azért fontos, mert fejlesztőként több eszközt nyújt a platform a javasolt megoldás implementálására. Ez a példa annyiban csúsztatás, hogy egy ilyet már egy tapasztalt UX designernek, de legkésőbb az architektnek illik kiszúrnia.

ITmap: Hogyan történik az elvégzett fejlesztések ellenőrzése?

Krassay Péter Sebestyén: Amikor a különböző komponensek fejlesztése összeér, és már egymáshoz tudnak kapcsolódni, jellemzően példaadatokkal, tesztkörnyezeteken folytatódik a fejlesztés, illetve megtörténik ezen komponensek integrációja, ami után a tesztelők is el tudják kezdeni a munkát. Sok esetben már a projekt elején, a specifikáció összeállításánál írunk előre definiált teszteket, ami azért nagy segítség, mert a fejlesztő ezekből is információkat kap, akár olyanokat is, amelyekre magától nem is gondolt volna. Többféle teszt létezik, nem csak a funkciók működésének vizsgálatát célzó tesztelés, de fontosak a stressztesztek, vagy a performancia (teljesítmény) tesztek is. Manapság többek között egy frontend felület tesztelését egyre jobban lehet automatizálni, a fontosabb use case-ekre érdemes automata tesztet írni, amikor is végigvesszük azokat  az utakat, amelyeket a felhasználó bejárhat. Egy-egy sikeres ágra ez különösen igaz, de például a nagyon speciális eseteket nem feltétlenül éri meg automatizálni.

ITmap: Milyen egyéb területek támogatják még a fejlesztői munkát?

Krassay Péter Sebestyén: Manapság a fejlesztés rendkívül nehézkes lenne DevOps támogatás nélkül. Az ezen a területen dolgozók biztosítják, hogy legyen egy központi hely, ahova felkerülnek a forráskódok, hogy legyenek automatizált folyamatok (ún. pipeline-ok), amelyek például lefordítanak egy backend alkalmazást, lefuttatják a fejlesztői teszteket, kitelepítik egy tesztkörnyezetre, feltöltik előre megadott példaadatokkal stb., vagy mobilalkalmazások esetében a fordítás és a fejlesztői tesztek lefuttatása után feltöltik az alkalmazásokat a megfelelő store-okba. Nagyobb projekteknél, ahol a biztonság még kiemeltebb szerephez jut, érdemes penetration, biztonsági teszteket végezni, hogy az így felfedett esetleges hibákat javíthassuk élesbe állás előtt.

ITmap: Az utóbbi években hogyan változtak meg azok a képességek, amelyekre fejlesztőként szükség van, illetve melyek azok a kompetenciák, amelyek elengedhetetlenek, ha valaki ezen a területen szeretne dolgozni?

Krassay Péter Sebestyén: Nem is olyan egyszerű általánosan szükséges képességeket megfogalmazni, hiszen más kerülhet előtérbe egy mobilalkalmazás fejlesztőnél, egy sitebuildernél vagy egy beágyazott rendszer programozónál. Ami mégis közös metszet lehet, az a hozzáállás: egyik esetben sem kifizetődő az, ha valaki kategorikusan ellenez egy bizonyos technológiát, nem akar egy számára még ismeretlen tudásanyagot elsajátítani. Emellett szinte mindegyik fejlesztői munkakörben megkerülhetetlen az algoritmikus, logikus gondolkodás. Ha egy-két programozási nyelvben otthon van az ember, egy harmadikat már viszonylag gyorsan és könnyen meg lehet tanulni. A programozás alaplogikája a legtöbb nyelvben ugyanaz, vagy legalábbis nagyon hasonló. Egy hozzánk pályázó esetében számomra az a legnagyobb érték, ha valaki nyitott az új dolgok elsajátítására.

ITmap: Megfordítva a kérdést, van olyan, akinek nem javaslod, hogy fejlesztési területre menjen?

Krassay Péter Sebestyén: Akiket megrémít a gyors változás, hogy folyamatosan fejlődni és tanulni kell. Ők nem biztos, hogy hosszú távon megtalálják számításukat ezekben a munkakörökben. Ennek ellenére csak nyerni lehet azzal, ha valaki megismeri ezt a területet, a megszerzett tudást szinte bárhol máshol tudja kamatoztatni. Elég, ha csak arra gondolunk, hogy megtanul automatizálni egy feladatot, ami később számos más munkakörben nagy segítség lehet.

Egy agilis fejlesztési projekt életciklusa

ITmap: Manapság igen megosztó a szükséges képzettség kérdése. Mit tanácsolnál azoknak, akik azon gondolkodnak, hogy elindulnak ezen a pályán?

Krassay Péter Sebestyén: Mindenkinek magának kell eldöntenie, hogy számára az egyetemi képzés, vagy egy bootcamp a leginkább megfelelő. Nagyon sok mindenre láttunk már példát, akár az autodidakta módon megszerzett szükséges tudás révén is lehet valaki nagyon jó szakember. Azonban, ha hiányoznak az erős mérnöki alapok, vagy nincs meg az elsősorban a felsőoktatási képzés kereteiben elsajátítható összefüggések átlátása, akkor egy szint felett nehéz továbblépni.

ITmap: Milyen irányba lehet váltani a fejlesztési területen belül, illetve milyen karrierlehetőségek vannak ma már?

Krassay Péter Sebestyén: A klasszikus utak természetesen a fejlesztésben is megtalálhatók, úgymint junior – medior – szenior fejlesztő, illetve ezt követően érdeklődés, egyéb kompetenciák függvényében el lehet indulni szakértői, illetve vezetői / menedzsment irányba. De ugyanennyire érdekesek a területen belüli, oldalirányú elmozdulási lehetőségek: nekünk is van olyan kollégánk, aki manuális tesztelőként kezdett, egy idő után rájött arra, hogy a kattintgatások egy részét lehet automatizálni, megtanulta azt, majd rájött, hogy szívesen elsajátítaná a programozási ismereteket is. Ha valaki tesztelőből válik fejlesztővé, azért lehet értékes, mert olyan teszteseteket is le tud fedni, amelyekre tesztelői háttér nélkül nem gondolna. Vagy vegyük akár a fejlesztésből a DevOps-ra való váltást, ahol pedig a fejlesztői tudás nagy előny, mert nagyon gyorsan el lehet sajátítani az automatizációhoz szükséges script nyelveket. Természetesen arra is számos példa van akár nálunk is, hogy mobilfejlesztésből backend fejlesztésre vált valaki, vagy fordítva, illetve egy játékfejlesztő, aki VR headsetekre fejleszt, szinte azonnal tud mobilra is fejleszteni. Összességében, aki tesz érte, nyitott a tanulásra, az előtt szinte végtelen lehetőségek állnak.

ITmap: Merre tart ma a fejlesztés, mint iparág?

Krassay Péter Sebestyén: A mobilalkalmazások jelentősége folyamatosan nő, egyre több és komplexebb feladatot tudnak ellátni. A tablet sokaknál már kiváltotta nem csak az asztali gépet, de a laptopot is. A jövő nagy kérdése, hogy milyen irányba fejlődik majd a blockchain alapú technológia, az AR / VR, illetve ezekkel szoros összefüggésben a Meta (korábbi Facebook) által elkezdett irányra is érdemes odafigyelni. A DevOps, illetve cloud technológiák pedig egyre jelentősebb részét teszik ki a területnek.

ITmap: Mi a legnagyobb kihívás, amellyel fejlesztőként általában szembesülni lehet?

Krassay Péter Sebestyén: A folyamatosan változó technológiai környezet sok esetben feladhatja a leckét, azonban visszautalnék a már említett stabil alapokra, amelyek megléte esetén könnyebb áthidalni az ebből fakadó kérdéseket. Az időnyomás sem elhanyagolható tényező, sokszor mindennek már tegnapra meg kellett volna lennie: mindenki próbál optimalizálni, csökkenteni a fejlesztési időt, ezáltal természetesen a költségeket, amellyel nem mindig egyszerű lépést tartani. Mobilfejlesztésben például kihívás, hogy a sokféle Android telefonon változatos hibák jöhetnek elő, ilyenkor nem mindig triviális olyan megoldást találni, hogy az megszüntesse a problémát, és a többi eszközön már működő kódot se rontsa el.

ITmap: Az AutSoft-nál hogyan zajlik a kiválasztási folyamat a fejlesztői pozíciókra?

Krassay Péter Sebestyén: Amit mindenképp nézünk a szakmai tudás mellett, az a problémamegoldó képesség, és ahogy már említettem, a nyitottság, tanulási hajlandóság. Általában elég hamar ki szokott derülni, hogy valaki arra fókuszál-e, hogy megoldást találjon, vagy az akadályokat látja csak. Ezen kívül van egy nagyjából két órát igénybe vevő feladatunk, amelyet otthon szoktak megoldani a jelöltek. Nem tökéletes megoldást várunk, sokkal inkább a gondolkodásmódra vagyunk kíváncsiak: hova tud ennyi idő alatt eljutni, hogyan építi fel az architektúrát, milyen tervezési döntéseket hoz meg, ír-e teszteseteket. Az interjún aztán át is beszéljük ezeket a pontokat, visszajelzést adunk a feladatról.

ITmap: Mit érdemes tudni a Te szakmai utadról, illetve miért szeretsz fejlesztőként dolgozni?

Krassay Péter Sebestyén: Érettségi után egyenesen a BME-VIK-re mentem, ahol a BSc-t és az MSc-t is elvégeztem. A BSc-s tanulmányok utolsó félévétől kezdtem el az AutSoftnál dolgozni, ez közel nyolc éve volt. Azóta sikerült eljutnom az architekt szerepkörig, ha időm engedi, ma is szívesen fejlesztek, de inkább már a projektek összefogása, mások munkájának ellenőrzése a fő feladatom. Az idei évtől a vállalat technikai igazgatójának is segítek a mindennapi munkában. Fejlesztőként azért szerettem, illetve a mai napig szeretek dolgozni, mert óriási sikerélmény, ha valami összeáll, és elkezd működni, mindez hatalmas büszkeségre ad okot.

Ha szívesen dolgoznál Péter csapatában, nézz körül az AutSoft nyitott pozíciói között!

Ha pedig érdekel, hogy a különböző fejlesztői pozíciókban mennyit lehet keresni, regisztrálj az ITmap-re!