Hétvégén részt vettem egy Lean Poker nevű eseményen, ami egy szakmai workshop volt az Emarsys CraftLab szervezésében. A Lean Poker alapvetően a lean startupból nőtte ki magát és mint olyan, itt is az számít, hogy ki mennyire képes felmérni a piaci helyzetet és reagálni a körülmények változására. Ebből adódóan a workshop célja, hogy fejlessze ezen képességeinket. Az eseményről bővebb infó itt található.
A feladat
Néhány fős csapatokba szerveződve készítettünk csapatonként egy-egy poker robotot, amik folyamatos házibajnokság keretében mérték össze tudásukat egymással szemben. A workshop felépítése kb. 1 órás fejlesztői rész, rövid össznépi élménybeszámoló és szünet hármasok egymásutánjából állt, egy beszélgetős ebédszünettel kibővítve. A beszámolók során minden csapat elmondhatta, hogy mivel küzdött és milyen játékstratégiával próbálkozott. Mivel nem volt tétje a "versenynek", így minden csapat nyugodtan megoszthatta tapasztalatait.
Continuous Integration and Deployment
A workshop során a Continuous Integration and Deploymentbe kóstolhattunk bele, aminek az a lényege, hogy minden változtatás azonnal ki is megy éles környezetbe, feltéve, hogy fordul a kód. Alapvetően tetszik az elgondolás, hogy ezzel elvileg csak kis változtatások történnek, ráadásul maximum néhány órás nagyságrendeken belül meg is van a visszajelzés, hogy bevált-e a módosítás. Valamint elvileg ezzel együtt jár az is, hogy a fejlesztők ennek tudatában mindig csak átgondolt és jól működő változtatásokat csinálnak.
Véleményem szerint egy nagyon hasznos dolog a Continuous Integration System, vagyis egy olyan rendszer, ami minden változtatás esetén rávizsgál, hogy legalább fordul-e a kód. Viszont nem teljesen értek egyet a Continuous Deployment gyakorlati használhatóságával. Számos helyen, például egy 24 órában működő diszpécseri szolgálatnál, ahol jelentős az automatizált működés, egy hibás változtatás sokáig rejtve maradhat, komoly anyagi károkat okozva.
Összefoglalás
Az esemény egyaránt érdekes volt számomra mind emberi, mind szakmai szemszögből nézve. Szeretek gondolkodós feladatokat megoldani, rendszereket tervezni, amit itt aktívan kiélhettem. Megfelelő arányban vették komolyan és lazán a csapattársaim az egész "versenyt", olyan volt a légkör, mintha csak néhány barát ült volna össze egy könnyed kódolásra iszogatás közben.
A csapatunkban éppúgy volt rutinos programozó, mint IT-n kívülről érkezett is. A kezdeti káoszt tovább erősítette az a tény is, hogy szinte mindenki ismeretlenül került össze. Idővel leküzdöttük a káoszt, ami nagyban elősegítette a hatékony munkaszervezést. Ezt követően érezhetően jobban tudtunk együttműködni, ami meglátszott az eredményünkön is: már "csak" stagnált az arányunk a relatív eredménytáblában :)
Összességében jelentős tanulság volt számomra, hogy mennyire fontos az emberi kapcsolat a csapaton belül. Nem elhanyagolhatók egy projekt kapcsán az egyének szakmai kompetenciái, de ennél is fontosabb, hogy tisztában legyünk azzal, kivel milyen formában lehet és kell kommunikálni. Tudni kell, ki mennyire és milyen jellegű feladattal terhelhető, hogy hatékonyan lehessen megosztani a munkát. Igenis kell erre időt szánni a munka elején, főként, ha ismeretlenek a társak tapasztalatai. Másrészről ismét előjött, hogy mennyire lényeges, hogy szánjunk időt a tesztekre, kifejezetten dinamikus nyelvek esetében.
A szervezéssel teljesen meg voltam elégedve, mivel korrekten fel volt építve, hogy mi a menetrend aznapra és szakszerűen le is vezették a terveknek megfelelően. Tetszik a kezdeményezés, mivel azon túlmenően, hogy jó móka, tanít is.