Egyedül is megy, de párban jobb! – Párprogramozás az Emarsysban

A párprogramozás olyan technika, amit főként az agilis szoftverfejlesztésben alkalmaznak a munka hatékonyságának növelésére. A párprogramozás lényege, hogy ugyanazon a feladaton és gépen egyszerre ketten dolgoznak: az egyikük gépel, a másik pedig figyeli, kiegészíti, ellenőrzi, javítja a társát.  Mindez első hallásra költséges megoldásnak tűnik, az Emarsys azonban a sikerének egyik kulcsát látja benne.

A párprogramozás csapatmunka. A pároknak össze kell csiszolódniuk. Érezni kell egymás rezzenéseit. Ezt a munkamódszert tanulni kell. Ehhez időre és sok türelemre van szükség. Ezért sokan nem vágnak bele. Az Emarsys munkatársainak egy része is csak a felvételi eljárás során tartott próbanapon találkozott vele először. Többen eleinte kicsit kényelmetlenül érezték magukat ebben a szituációban, mert nem voltak hozzászokva, hogy valaki ott ül mellettük munka közben, és figyeli minden mozdulatukat.  Ugyanakkor azt is megfogalmazták, hogy amikor ráéreztek ennek az ízére, rájöttek, hogy a páros munka egyben segítséget és hatalmas élményt is jelet. 

Bánky Dániel, Head of Engineering így emlékszik erre vissza:

A próbanapokon találkoztam vele először és megmondom őszintén, kicsit talán frusztráló is volt, hogy nem jutott eszembe egy függvény, nem jöttek a gondolatok olyan gyorsan, mint ahogy szerettem volna, viszont ott volt valaki, aki tudott segíteni és ez igazából egy pozitív élménybe csapott át. A közös alkotás élménye szerintem sokat ad minden ilyen kreatív munkába.”

Miért jó módszer a párprogramozás?

Lehetőség van azonnali hibajavításra.

Miközben az egyik fejlesztő írja a kódot, a másik olvassa – ez azonnali hibajavítást tesz lehetővé, ugyanis aki figyeli az írást, ő jobban észreveszi a hibákat, mint aki írja, ezért kisebb eséllyel jut el a hiba addig, hogy megakassza a folyamatot.

Garantált a tudás és az élménymegosztás

Az egyedüli programozás monotonitásával szemben a párprogramozás maximálisra járatja a gondolkodást, folyamatos kihívást jelent. Sokan szeretik a ping-pong módszert, amikor az egyikük megírja a tesztet, a másik kijavítja, utána pedig szerepet cserélnek – ez játékot visz a munkába. Amikor egy gép előtt ülnek ketten és adogatják egymásnak a billentyűzetet, miközben összenéznek, az már annak a jele, hogy együtt gondolkodnak, egymást inspirálják és jól tudnak együttműködni.

  „Színes angol-magyar példamondatok” - Miért érdemes online nyelvet tanulni 2. rész

Amit szeretek benne, hogy megosztjuk a tudást, jó praktikákat lesünk  el a másiktól, gondolkodásmódot sőt látásmódot is fejleszt, és az az ownership, ami kialakul, nem pótolható egy sima review-val” (Kimák Krisztián).

Az eredmény: rövidebb idő alatt jobb minőség

Aki egyedül programozik, hajlamos lehet rövidíteni a kódokat, shortcutokat betenni, mert úgy gondolja, hogy „úgyse nézi meg senki”. De ha párban dolgoznak, akkor ez nem áll fenn, mert a párja figyelő szeme miatt fel sem merül benne a rövidítés. A kód minőségét javítja az is, hogy a párok segítik egymást a gondolkodásban, a még jobb megoldások megtalálásában.

Meggyőződésem, hogy rövidebb idő alatt jobb minőségű kód születik, mint egyedül – nincsenek a megakadások, mert a két ember átsegíti ezen  egymást Azt szeretem, amikor kialakul egy flow élmény, az egyik épít a másikra, megy a kód,  jönnek az ötletek  és van egy jó érzés: létrejön egy közös valami és épül a mátrix.” (Makara Csaba)

A türelmet is tanulni kell

A páros munka akkor lehet eredményes, ha a párok összecsiszolódnak. De időt kell hagyni arra, hogy megértsük a másik gondolkodását, hogy megismerjük a munkatempóját és kitaláljuk közösen, mi lenne az ideális munkamódszer. Vannak olyan praktikák, amelyek ezt a folyamatok támogatják.

Előfordulhat, hogy aki szeret gépelni, magához ragadja a billentyűzetet, és ha nem elég vehemens a párja, akkor megoldja a tesztet is maga. A ping-pong módszer bevezetése segíthet ilyen esetekben. Az is konfliktusforrás lehet, ha túl gyors a gépelő programozó, ezért nincs ideje a párjának megérteni, hogy mit csinál, és nem tud hozzátenni semmit. Ilyenkor fontos, hogy megbeszéljék a problémát, illetve figyeljék egymás jelzéseit. Ügyelni kell arra is, hogy a figyelő mikor jelzi, ha a másik valamit elüt.  Ha túl korán szólal meg, az idegesítheti a gépelőt, mert lehet, hogy ő maga is észrevette, csak még nem volt ideje javítani. Az sem a legjobb, ha a végén sorolja fel az észrevett hibákat. A javasolt megoldás szerint 5 mp-et várni kell, mielőtt felhívja a figyelmet a javításra.

  Miért érdemes online úton nyelvet tanulni? - 1. rész

Online is lehet – de nem az igazi!

Amikor a járvány alatt otthoni munkavégzésre kényszerültek az Emarsysnál is, megijedtek attól, hogy elvesztik a párprogramozást, ezért kitalálták, hogy tudják ezt megőrizni. A technikai feltételek adottak az online párprogramozáshoz, sok minden támogatja a kontroll megosztást, egyszerűen átadható a vezénylés, cserélgethető, hogy ki vezet és ki nézi. Azt is kitapasztalták, hogy akkor a leghatékonyabb, ha gyakran cserélik a szerepeket.  Az online munka során az informális metakommunikáció, ami a páros programozás egyik élményeleme, azonban elmarad. A személyes jelenlétet nem lehet pótolni: sokat jelent nem csak a párprogramozásban, de más területen is.

Akit bővebben érdekel a párprogramozás Emarsys módra, hallgassa meg az Emarsys Beertalk podcastját: Pair programming. Első élmények, és azóta. – Devops. Ahogy mi (nem) értjük. https://anchor.fm/craftbeertalk/episodes/Pair-programming–Els-lmnyek–s-azta—-Devops–Ahogy-mi-nem-rtjk-e11onjd

Megosztom