Az élet szabadúszó fejlesztőként

Már jó pár éve dolgozom fejlesztőként. Abban a szerencsés helyzetben vagyok, hogy a munkám egyben a hobbim is. Igazából a programozást inkább érzem valamiféle művészetnek, ahol ugyanúgy jelen van az intuíció, az ihlet, a kód, az algoritmusok, és a komplett megoldások szépsége, mint más művészeti ágak esetén. Persze mivel ebből kell megélnem, ez sokszor amolyan megélhetési művészet, de akkor is művészet. Mikor kikerültem a főiskoláról a fejlesztők szokásos útját kezdtem járni. Egy fejlesztő cégnél helyezkedtem el viszonylag jó kezdőfizetésért. Bizonyos magánéleti okok miatt, és mivel nem találtam elég kreatívnak a munkát, 1 év után az MTA Számítástechnikai Kutatóintézetére váltottam. Itt kisebb nagyobb külföldi és magyar projekteken dolgoztam, konferenciákon vettem részt, rendszerek tervezését és fejlesztésének vezetését végezhettem, így ez a munkakör már jobban kielégítette az igényeimet. Néhány év után viszont a SZTAKI-t is magam mögött hagytam. Alapvetően jó fejlesztőnek tartom magam, és továbbléphettem volna a "jó fejlesztők" szokásos útján. Elhelyezkedhettem volna egy külföldi multinál (elvileg a Google-hez is lett volna egy kis hátszelem) valami zsíros fizetésért, mégis egy sokkal bizonytalanabb, bár annál több lehetőséget magában rejtő utat választottam. Otthagytam a biztos állásomat, és vidékre költöztem a barátnőmmel (aki azóta már a feleségem), hogy otthonról szabadúszó fejlesztőként távmunkában dolgozzak változatos projekteken. Gondoltam, hogy nem lesz olyan egyszerű a dolog, és hát tényleg nem is az ...

Általában az a baj, hogy a cégek fix fejlesztőket keresnek napi 8 órás munkaviszonyba. Az ember azt gondolná, hogy a szoftverfejlesztés tipikusan az a munkakör, amit ideálisan lehetne végezni otthonról távmunkában (ami különben tényleg igaz), érdekes módon mégis csak több-kevesebb nehézség árán talál magának az ember ilyen otthonról végezhető projektmunkát. Sokáig próbáltam megérteni, hogy mi ennek az oka, és végül tapasztalatból mondhatom, hogy ez egyszerűen nem más, mint rossz beidegződés, hiszen szabadúszó fejlesztők alkalmazásának rengeteg előnye van az alkalmazottakkal szemben ...

Az első és talán legegyértelműbb előny, hogy ha a fejlesztő otthonról dolgozik, úgy nincs szükség semmilyen infrastruktúra fenntartására. Nem kell irodát bérelni, nem kell számítógépeket, irodabútorokat biztosítani, nem kell áramért, fűtésért, vízért, stb. fizetni, így egy ilyen fejlesztő összességében sokkal kevesebbe kerül, mint egy alkalmazott. Amennyire tudom, a SZTAKI-ban a bevétel felét vitte el a rezsiköltség, amit egy szabadúszó fejlesztő esetén megspórolhat az őt alkalmazó cég. Negatívumnak igazából csak a személyes kontaktus hiányát lehetne felhozni, de erre viszont ott a Skype, a videokonferencia rendszerek, stb. A SZTAKI-ban több nemzetközi projektben is részt vettünk, ahol értelemszerűen nem lehetett biztosítani a személyes kontaktust. Tapasztalatból mondhatom, hogy a videokonferencia rendszerek alkalmazása vagy a Skype meetingek teljes mértékben kiváltották a személyes találkozókat.

A másik nagy előny, hogy ha az ember szabadúszó fejlesztőkkel dolgozik, a megbízónak nincs semmi kötöttsége. Egy alkalmazott esetén annak folyamatosan fizetést kell adni, aminek egyfelől adminisztrációs vonzata van (bérszámfejtés, járulékok fizetése, ha elégedetlenek a munkájával, és ki kell rúgni, akkor végkielégítés, stb.), másfelől a fix alkalmazottnak havonta kell fizetést adni, amit folyamatosan ki kell termelni. Ez egyfelől plusz terhet ró a megbízóra (könyvelés, fejlesztő eltartása), másfelől mivel a szabadúszó fejlesztők cégekként számlára dolgoznak, általában sokkal optimálisabban tudják elszámolni a költségeket, így végső soron olcsóbbak, mint egy fix fejlesztő. E mellett mivel projekt alapon történik az alkalmazás, ha az alkalmazó elégedetlen a fejlesztő munkájával, akkor a következő alkalommal nem veszi igénybe azt, nem kell neki végkielégítést fizetni, stb.

Mivel az alkalmazó cégek maguk általában projekt alapon dolgoznak, a fix alkalmazottakat viszont folyamatosan fizetni kell, ezért sokszor olyan helyzet alakul ki, hogy vagy nincs munka, és az alkalmazottak erőforrásai nincsenek lekötve, vagy (és általában ez a gyakoribb) túl sok a munka 1 emberre, és az alkalmazottak túl vannak terhelve. Én is több ilyen esetre emlékszem, mikor egyik hónapban csak tébláboltunk, mert nem nagyon volt mit csinálni, a másik hónapban viszont többször is hajnalig bent kellett maradni, hogy tartani tudjuk a határidőket. Ez sem az alkalmazónak,sem az alkalmazottnak nem jó. Van aki nem is bírja az ilyen egyenetlen terhelést, és előbb-utóbb otthagyja a munkahelyet emiatt, pedig ezt a problémát dinamikusan allokálható fejlesztőkkel nagyon könnyen át lehetne hidalni. Valójában erre építenek a mostanában egyre divatosabb outsourcing cégek is, viszont ezek a cégek meglehetősen nagy jutalékokkal dolgoznak, és mivel ők már alkalmazottakat foglalkoztatnak, sokkal drágább ez a megoldás, mint közvetlenül a fejlesztővel dolgoztatni. Az outsourcing cégeknél persze megvan az az előny, hogy biztosan megbízható fejlesztőket kap a megbízó, viszont megfelelő ütemezéssel egy szabadúszó fejlesztőről is hamar eldönthető, hogy megbízható-e, vagy nem.

Az eddigiek alapján tehát szerintem egyértelműen látszik, hogy ez a modell több szempontból is sokkal hatékonyabb mind az alkalmazó cég, mind a fejlesztő számára. Mindennek ellenére azt tapasztalom, hogy az emberek még nagyon bizalmatlanok ezzel szemben, és szabadúszó fejlesztőként nem olyan egyszerű projektet találni. Bár külföldi tapasztalatom nincs a dologgal kapcsolatban, de Magyarországon bizonyosan ez a helyzet, az ok pedig szerintem nem más, mint egy egyszerű beidegződés, egy minta, aminek megtartása a jelenlegi technikai környezetben már nem indokolt, és nem is optimális. Mára már egy cég teljes infrastruktúrája kiszervezhető, Internet kapcsolattal már mindenki rendelkezik, és egy alkalmazó cég semmivel sem tud jobb infrastruktúrát biztosítani, mint az otthoni környezet. A VPN-nek, videókonferenciának, feladat kezelő rendszereknek köszönhetően igazából teljesen mellékes, hogy a fejlesztők egymás melletti irodákban, vagy éppen külön kontinensen dolgoznak. A jelenlegi helyzet engem arra emlékeztet, ami mostanában a cloud computing (felhő infrastruktúra) körül történik. A cloud computing napjaink egyik divatszava, és tulajdonképpen az infrastruktúra bérlését jelenti egy elosztott rendszerben saját szerverek helyett. Sokáig az volt a szokványos módszer, hogy minden feladatra külön szervert állított be a cég. Így rengeteg gép dolgozik még ma is kis terheltséggel teljesen feleslegesen. A cloud computing segítségével sok funkció, vagy akár az egész géppark a cloud-ra költöztethető, így a fenntartása nagyságrendekkel olcsóbb, és biztonságosabb is, a cégek mégis bizalmatlanok a technológiával szemben. Ez a trend napjainkban kezd megfordulni, kezdik elfogadni a cégek a cloud computingot, kezdenek megbízni benne, és kezdik felismerni az ebben rejlő lehetőségeket. Úgy gondolom, hogy néhány év múlva már a cloud computing lesz a vezető irányzat, ha más nem, azért, mert a cég másképp nem lesz versenyképes, képtelen lesz a piacon versenyben maradni úgy, hogy közben ki kell termelnie saját infrastruktúrájának fenntartási költségeit. Valami hasonlót látok a munkaerő vonatkozásában is. A saját szerverek fenntartása az alkalmazottak foglalkoztatásával hozható párhuzamba, míg a cloud computingnak köszönhető erőforrás kihelyezés a szabadúszó fejlesztők foglalkoztatásának felel meg. Látszanak az erre való törekvések, az outsourcing már egészen elfogadott megoldás, és tulajdonképpen ennek a közvetlenebb, "p2p" változata a szabadúszó fejlesztők alkalmazása. A különbség annyi, hogy a cloud computing már a küszöbön van, a szabadúszó fejlesztők elfogadásához, és a jelenlegi "beidegződések" elhagyásához pedig még kell némi idő. Mint oly sokszor már, a környezet már most is adott, egyszerűen fejben kellene csak utolérni a technológiát, és élni a lehetőségekkel, aki pedig időben lép, az egyértelmű piaci előnyökké konvertálhatja a lehetőségeket.