Agi­lis mun­ka­kul­tú­ra - az ős­él­mény

A végcél hangsúlyozása helyett az apró változásokra való fókuszálás, és a folyamat pozitív megélése az, amit ott és akkor tanultam meg értékelni.

Syrius - termékfejlesztés

Az Integral Vision megalapítását megelőzően, másfél évtizeddel ezelőtt a Synergon Üzleti Megoldások divíziójában dolgoztam UX tervezőként. Ennek keretében részt vettem egy több évig tartó szoftverfejlesztésben, mely élmény alapvetően határozta meg az Integral Visionben eddig eltöltött, tizenhárom évet; az ott és akkor megélt folyamatot féltett kincsként őrzöm azóta is.

Abban a különleges helyzetben voltam, hogy részt vettem a korábbi, vízesés modellben fejlesztett, alkalmazás felhasználói felületeinek szépítésében is, amiből aztán egy bukott szoftver lett. Hiábavaló volt minden igyekezet, hajnalokba nyúló pizzázós határidő előtti hajrá, abban a szemléletben, azzal a csapattal nem sikerült működő terméket leszállítani. Annak ellenére vallottunk kudarcot, hogy költséget nem kímélve, jó hírnevű fejlesztőket vontak be a projektbe. Némi vergődés után a divízió vezetője úgy döntött, hogy leállítja a projektet, és felkérte Csutorás Zoltánt, vagy ahogy mi szólítottuk, Csutit, hogy rakja össze azt a csapatot, amellyel újraépülhet a termék.

Mázlim volt, Csuti engem is beválasztott az új csapatba. A már elkészült felületek kliensoldali szépítése helyett ezáltal lehetőséget kaptam arra, hogy nulláról indulva  tervezzem meg a felhasználói felületeket. Egy lendületes fejlesztési folyamatot követően ezt a terméket végül sikerrel bevezették a Magyar Honvédségnél.

Agilitás akkor és ma

A projektet agilis szemléletben, Scrum módszertan szerint  szerveztük. 

Csuti arra törekedett, hogy az adaptivitás maximálisan érvényesülhessen a projekt során. Arra kérte a cégvezetést, hogy biztosítsák a lehetőségét annak, hogy ügyféloldalról is legyen része a csapatnak valaki, aki a Honvédségnél működő iratkezelés minden részletével tisztában van. 

A fejlesztési csapat magját évek óta összeszokott, tapasztalt fejlesztők alkották: Marhefka István, Illés László és Imre Zoltán.. Hozzájuk csatlakozott Gyenis Endre product ownerként, Józsa Kristóf technológiai architektént/fejlesztőként, valamint Gerevich Janó és Szél Dani junior fejlesztőként. Az én szerepem a projekt első néhány hónapjára korlátozódott, amikor a felhasználói felületek megtervezése volt a feladat. Ahogy elkészültek a fő funkcióhoz tartozó tervek, a főbb design patterneket is kialakítottuk, így néhány hónapnyi munka után véget ért a közreműködésem.

Sokat beszéltünk arról, hogy miért dolgozunk így, mit várunk ettől a munkamódszertől és csapattól. Azt a kevés szakirodalmat, ami akkor még csak angol nyelven volt elérhető, sokan elolvastuk a csapatból. Jól illusztrálja a téma iránti elköteleződésünket, hogy Csuti és István lefordította az egyik alapművet, melyet a mai napig első olvasnivalóként küldök át az Integral Vision csapatához újonnan csatlakozók számára.

Az alábbiakban pontokba szedtem azokat az alapelveket, amelyeknek az erejét az iratkezelő szoftver fejlesztése során tapasztaltam meg. 

1. A témában való elmélyülés

Meghatározó fontossággal bír, hogy a téma, amivel foglalkozunk a fejlesztés során, kellő súllyal képviselve legyen a csapatban. A legjobb az, ha van valaki, aki mélyen ért a területhez, és direkt kapcsolata van a fejlesztőkkel. A product owner és a megvalósító csapat közötti kapcsolódás kulcsfontosságú. Nincs olyan, hogy "ügyféligény", amit a fejlesztőknek "meg kell valósítani". 

Ehelyett üzleti célok vannak, és ehhez keresünk megoldásokat. Nem a "mit kell fejleszteni?" kérdésen van a hangsúly, hanem azon, hogy "miért foglalkozzunk egy adott  a témával". Miért fontos ez fejlesztés a termék szempontjából? Miért merült fel a téma, és hogyan járul hozzá a végcél eléréséhez?

Ha iratkezelésről szól a termék, akkor bele kell tudnom helyezni magam a szignáló, ügyintéző, vagy éppen az érkeztető szerepébe, értenem kell, hogy mit miért csinál. 

A product owner nem az igényeket közvetíti, hanem a szükségletekre fókuszál, az elérendő üzleti célokat teszi érthetővé, és megtanít arra, hogy az érintett szereplők milyen cél érdekében hogyan látják el a munkájukat az adott szervezetben. Az iktatóban ezt a tudást Endre jelenléte biztosította, aki több évtizedet dolgozott a Honvédségben, és minden csínját-bínját ismerte a szervezeti iratkezelésnek. Nem csak általánosságban volt tisztában a témával, de a nyugalmazott alezredesként a Honvédség működését is ismerte. 

A vezető fejlesztői feladatokat részben István, részben Laci látta el. Az előbbi nyitott hozzáállása, kíváncsisága mindenkit bemozdított, az utóbbi közvetlensége, baráti gesztusai pedig a bizalmat erősítette a csapatban. István elsősorban a termék üzleti oldalára figyelt , Laci pedig a fejlesztés technológiai részleteire.

A fogalmakkal kapcsolatban elindult a hipotézisek gyártása, ezeket Endrével állandóan ütköztettünk, finomítottunk. Az így kialakított közös fogalmi tér lehetővé tette, hogy fölösleges dokumentálás helyett inkább a szóbeli megértésre fókuszálva lássuk el a feladatainkat. Senki nem “kapott” feladatot, helyette használati esetek voltak, és egy-egy gyűjtőtémára (epic) repültek rá a fejlesztők a technológiai részletek a sprint alatt kitisztultak. A pair programming mindennapos volt, domainvezérelt szoftvertervezés és tesztvezérelt fejlesztési szemlélet uralkodott a csapatban. A téma élő volt mindenki számára, sok élénk beszélgetést folytattunk egy-egy folyamat tisztázása során. Ott álltunk a tábla előtt, és már a sokadik felülettervet rajzoltam fel úgy, hogy közben még két emberrel vitattuk meg a fogalmi részleteket. István vezető fejlesztőként integratív szerepet töltött be, arra fókuszált, hogy előkészítsük a terepet a fejlesztők számára. Ő a fejlesztési komplexitást próbálta lejjebb faragni, én pedig a felhasználói élményt igyekeztem a lehető legjobban egyszerűsíteni. Bevállalta olykor azt is, hogy ha valami nem volt egészen világos, akkor a nem ellenőrzött elképzelés mentén menjünk tovább. Az ilyen esetekben benne van a refaktor kockázata, de fontosabb volt, hogy haladjunk. Nem volt olyan momentum, hogy bárkire vártunk volna. Annyira sok élő téma lógott a levegőben, hogy mindig volt dolgom.. Ha nem volt új téma, akkor valamelyik meglévő felületet finomítottam tovább.

Újra és újra átneveztük a domainhez és felhasználói felületekhez kapcsolódó fogalmakat, és ezáltal egyre világosabb lett a gondolati tér is, amiben mozgunk. István bravúros volt abban, hogy releváns, mélyreható kérdéseket tegyen feli Endrének, úgy, hogy közben újra és újra visszatért a miértekhez. Ezáltal elérte azt, hogy nem az akkori szervezeti működést replikáltuk szolgai módon, hanem  inkább egy vágyott szervezeti folyamatot fedtünk le a szoftver fejlesztésével. Ehhez világosan kellett látni, hogy mi az, ami még megvalósítható a szervezeti átalakulás szintjén is, és mi az, ami már túlságosan ambíciózus cél lenne. Elképesztő volt megtapasztalni azt, hogy egy szervezet életében milyen sokrétű változást tud magával hozni egy jól átgondolt szoftver bevezetése .

* Az Integral Visionben az új megkereséseket közösen kvalifikáljuk. Ilyenkor mindenki kifejezheti a saját érdeklődését az adott téma iránt, és ez hatással van arra, hogy ki miben fog szerepet vállalni. Ugyanakkor komoly nehézség, hogy - bár jó kapcsolatot ápolunk az ügyfelekkel -  a product owner minden esetben távol van, nem szerves része a fejlesztői csapatnak. A mi modellünkben az account manager próbálja áthidalni ezt a távolságot azzal, hogy közös, rendszeres megbeszélések szervezésével az ügyfelet és csapatot egyaránt bevonva, sprintekre tagolva definiálja a szkópot. 

2. A folyamat fontosabb, mint a végeredmény 

Jobb eredményt lehet elérni, ha sprintekre tagolva, kisebb célokat kitűzve haladunk előre. Az a törekvés, hogy a projekt elején tökéletesen meg legyen tervezve minden, a tanulási folyamat ellen hat. Márpedig a legjobb eredmény akkor tud létrejönni, ha kiváló kompetenciával bíró, különböző területeket képviselő emberek képesek együttműködni a közös cél érdekében. 

Az iratkezelő fejlesztése során volt agilis evangelista, technológiai innovátor, domain driven fejlesztés iránt elkötelezett vezető fejlesztő, jól kapcsolódó mentori képességekkel rendelkező senior fejlesztő, UX designer, de lelkesen betanuló junior is. 

* Az Integral Visionben sok terméken dolgozunk egyszerre; jelenleg nincsenek állandó csapatok , de közös megállapodás van arra vonatkozóan, hogy miként tudnak ezek formálódni. Vannak jól működő párok vagy hármas formációk, az új kollégák pedig ezekhez kapcsolódva tudják megtalálni a saját helyüket.

3. A kapcsolódás ereje

A leghatékonyabb csapat tehát az, ahol  a csapattagok sokféle kompetenciát képviselnek  által, és mindenki a saját fókuszát megtartva járul hozzá a közöshöz. Ez sok beszélgetést igényel, közös gondolkodást, és a kritikus hozzáállás mellett ugyanolyan fontos a megengedő, elfogadó, támogató légkör. A hibák iránti tolerancia, a tanulásvágy, lelkesedés abban a közegben tud létrejönni a leginkább, ahol az emberek érdeklődnek egymás iránt, ahol van a munkán túl is kapcsolódás, emberi kompatibilitás.

* A hibrid munkavégzés komoly kihívás elé állítja a közösségünket. A távmunka nem teszi lehetővé azt az elmélyült kapcsolódást, amit az iratkezelő szoftver fejlesztése során megélhettem. A jól dokumentált feladatokra nagy szükség van a hatékony munkavégzéshez, és aki távol van, az azt várja el, hogy részletesen leírt feladatokat kapjon a JIRA-ban. Ez óhatatlanul abba az irányba viszi a folyamatokat, hogy a tervezettség egyre nagyobb hangsúlyt kap, és ez gyengíti azokat a szinergiákat, ami a közös élő munka során megsokszorozza a lelkesedést, és ezáltal az eredményességet is.

Összegzés

Friss élmény volt még az iratkezelő szoftver fejlesztéshez való hozzájárulásom, amikor kiléptem a Synergonból és megalapítottam az Integral Vision-t. Amit abban a csapatban megéltem, ideaként lebegett előttem, és számos alapelv, együttműködéssel kapcsolatos gondolat, melyet az IV-ben a mai napig képviselek, onnan ered. Ha akkor megkérdezett volna valaki arról, hogy mi a legfontosabb tapasztalat, amit magammal viszek, bizonyára azt mondtam volna, hogy az agilitás, a Scrum, a közösség. Visszatekintve most azt mondanám, hogy a végcél hangsúlyozása helyett az apró változásokra való fókuszálás, és a folyamat pozitív megélése az, amit ott és akkor tanultam meg értékelni. Hálás vagyok ezért azoknak az embereknek, akik mellett ezt megélhettem: név szerint Marhefka Istvánnak, Csutorás Zoltánnak, Illés Lacinak, Gyenis Endrének, Józsa Kristófnak, Imre Zolinak, Gerevich Janónak, Szél Daninak.

Kapcsolódó bejegyzések

  1. Marhefka István cikkei ugyanerről a projektről: 

    https://agiluu.hu/az-elso-agilis-elmenyem-1-resz/

    https://agiluu.hu/az-elso-agilis-elmenyem-2-resz

  2. A szoftverfejlesztés művészete (1, 2, 3) - “Mindenképpen azt kell éreznem, hogy az illető, akivel beszélgetek, szenvedéllyel beszél eddigi projekteiről, tapasztalatairól. Az a szikra, amit én keresek, az a "gondolkozásra való készség" fűszerezve egy kis kreativitással, egyéni fantáziával.” - Az interjú Istvánnal készült a közös munka során. Ma már másként fogalmaznék, de a főbb gondolatokat most is érvényesnek tartom.
  3. Scrum és Kanban - Mindkettőből a legjobbat! - Az egyik legjobb bevezető agilis témában.

Oszd meg ismerőseiddel!