2009-04-29

Deszantos programozás

Már régen össze akartam szedni a gondolataimat ezzel a témával kapcsolatban és most ahogy közeledik a munka ünnepe, meg is ragadom az alkalmat. Egy régi főnökömtől hallottam a kifejezést azokra a programozókra, akiket ledobnak "ejtőernyővel" egy idegen irodában / idegen városban, esetleg idegen országban és szoftvert fejlesztenek. Lassan 6 éve én is ilyen formán nyomom az ipart és megtapasztaltam az előnyeit és a hátrányait. Ennek az ellentéte, amikor valaki be van betonozva egy adott irodába évekre. (Ott néha az ülésrendet szokták megvariálni, hogy ne forduljon be teljesen az alkalmazott az évek alatt.) Ebben is volt részem egyébként.

De miért is van szükség rá, hogy "odamenjen valahova" a programozó, miért van szükség onsite fejlesztésre, amikor ez a szakma elvileg távolról is jól végezhető lenne a modern kommunikációs formák használatával. Bizonyos esetekben szerintem is indokolt összejönni, hogy mindenki beszéljen mindenkivel, használhassa a gesztusait, ugyanabban a környezetben létezzen. De bizonyos esetekben -úgy érzem- csak a bizalom hiánya vagy a hatalmi helyzet kifejezése az ok. "Ha nem itt vannak ezek a rövidujjú pólós gyerekek, lehet hogy nem is dolgoznak csak egész nap CS-znek. Így legalább rajtuk tartjuk a szemünket. Van itt egy üres sarok, végülis tudunk nekik helyet szorítani. Sokat fizetünk, ennyi pénzért megmondhatjuk hol dolgozzanak."

És meg is van az első sarokpont, az iroda: egy ilyen helyen sosem a legjobb helyre ültetik az idegenlégiósokat. Biztos hogy a legrosszabb széket és asztalt kapod meg. Biztos azt a helyet kapod ahova eddig senki más nem akart ülni. Ha gép is kell akkor meglehet hogy valami összeguberált vacakot kapsz, de mostanában azért már illik mindenhova notebook-kal odamenni (erre még visszatérek), mert a programozáshoz nem mindig elég egy ad hoc összeszedett gép. Vannak speciális esetek, pl. ha clean desk policy van. Akkor akárhova leülhetsz, főleg ha te érsz be leghamarabb. Úgy láttam ott is kialakulnak a szokásos kedvenc helyek, "nem illik" olyan helyre ülni ahol más szokott, különben szikrázó tekintet van. Nem mindegy hogy mivel foglalkoznak az adott helyen. Ha szoftverfejlesztéssel az jó, mert jó eséllyel hasonló munkakörülményekre van szükségük az embereknek, de olyan helyre kerülni szívás, ahol folyamatosan dumálnak, jönnek-mennek az ügyfelek, csörögnek a telefonok.

Kis kitérő: múltkor feltettem egy kérdést, hogy "Neked milyen hangviszonyok kellenek hozzá, hogy produktív legyél? Többet is be lehet jelölni. " Az eredmények:

  • Tökéletes csend 75%
  • Enyhe IT témájú neszek 37%
  • Rádió slágerek hírek 12%
  • Metál, rockzene 50%
  • Szociális párbeszédek 0%
  • Nem technikai zsibongás 0%
  • Telefoncsörgés, telefonálás 0%
  • Ki-be mászkálás 0%
Magáért beszélnek az eredmények. (Érdekes mennyien szeretik a rockzenét.)

Visszatérve: Néha alkalmazkodni kell a helyi dress code-hoz, ami néha sajnos öltöny-nyakkendő. Találkoztam olyannal ahol beszóltak, hogy ez a külsősökre is vonatkozik. Ha meetingelni vagy reprezentálni kell akkor oké, de így elég nehéz volt beletörődnöm, hogy majom jelmezben kell kódolnom. Pénzintézeteknél külön szépség lehet a paranoid belső internet használat, pedig programozáshoz szerintem internet ma már elengedhetetlen. Nem lehet kiguglizni egy ismeretlen hibaüzenetet, egy idegen API dokumentációt. Az időnyilvántartó rendszerrel szintén jól kell manőverezni. Mennyire szeretnek túlóráztatni, hétvégézni és ezt az anyacég mennyire honorálja?

Következő pont a tágabb környezet. Ha az épület lepukkantabb mint a saját céges iroda vagy történetesen egy építkezés folyik a szomszédban az ciki. Annak is kicsi az esélye, hogy közelebb van a kiszállós hely mint a saját iroda, vagy jobbak a közlekedési viszonyok. Ha kocsival vagy arra ne nagyon számíts, hogy biztosítanak neked egy parkolóhelyet a sajátok között. Vannak viszont pozitívumok: ha távolabbra kell menni. A fizetett utazás és a hotelek, városnézés (ez már saját zsebre) nekem eddig bejött. Lehet hogy ha mindig ezt kellene csinálnom már nem tetszene, de két-három hét erejéig szerettem.

A társaság is lehet pozitív tényező: rengeteg emberrel meg lehet ismerkedni. Ha szoftverfejlesztők közé kell beülni az külön jó az eszmecserék szempontjából. De ha másfélékkel kell keveredni, az nem mindig szórakoztató. Pl. banki alkalmazottakkal nem nagyon tudok egy húron pendülni. Nem lehet velük beszélgetésbe elegyedni arról, hogy az Oracle felvásárolta a Sun-t, engem viszont nem érdekelnek a kamatlábak. A legnagyobb közös érdeklődési halmaz kb az időjárás. Azért ezzel együtt is szórakoztató: nem mindennap ugyanazt a munkatársat kell néznem, hanem jönnek-mennek, vannak lányok-asszonyok.

Szakmai szempontból egyértelmű pozitívum, hogy nem ragadok le egy dolognál. Hallottam olyanokról akik évek óta ugyanazt a projektet nyűvik. Panaszkodnak hogy nagyon unalmas és félnek, hogy ha váltani akarnak nem lesz versenyképes tudásuk. Deszantos programozásnál ahány projekt, annyi webes keretrendszer, annyi adatbázis, annyi architektúra - még jó ha J2SE-n vagy J2EE-n belül maradunk. Kicsit zavar hogy elég ritkán vagyok ott a kickoff-oknál, amikor leteszik a projekt alapjait, így meglehet hogy ki kell tolatni egy-két zsákutcából, félretervezésből. Sőt nem ritka, hogy eleve egy elcsúszott projekthez hívnak plusz embernek, "problémamegoldónak". (Ezek a melók a Daily WTF-nek korlátlan mennyiségű anyagot jelentének.) Rendszerint a pezsgőbontásból is kimaradok a projekt lezárásánál, bár elég kevés ilyen van a gyakorlatban, mert "egy szoftver sosincs készen".

Mivel sokféle komponenst kell használni és illik saját gépet használni, a sajátgép nyakig meg van tömve mindenfélével. Nálam most pl. van négyféle adatbázismotor és négyféle Eclipse különféleképpen felpluginezve. A régi projekteket sem lehet letörölni, mert bejöhet még javítási vagy fejlesztési kérelem. Minden helyen alkalmazkodni kell a saját policy-khoz, néha fell kell tenni valami speckó szoftvert. De végülis nem vészes, eddig még bírja a gép.

Akartam még olyanokról írni, hogy a fix belsős fejlesztők tudásának karbantartására jobban odafigyelnek, de jobban belegondolva ez egyáltalán nem törvényszerű. Illetve tudok ellenpéldákat mondani, illetve olyan példákat amikor beülős embereket küldenek el szakmai tréningekre.

Azt hiszem kiveséztem a témát. Nagy megmondást nem akarok a végére: a negatívumok ellenére nekem tetszik ez a munkamódszer. Legközelebb viszont már valami technológiaközelibb dologról próbálok majd írni.