2015. március 10., kedd

Agile - Az ellenállás nyomában

Ha arra szeretnénk a lehető legtömörebben rávilágítani miért övezi oly gyakran ellenállás és elutasítás az agilis gondolatot, akkor nehezen találhatnánk kifejezőbb ábrát, mint ez itt.







Mert az Agile lényege a változás. A tökéletességre való törekvés egy végtelen, soha véget nem érő utazás, ahol minden domb, minden hegycsúcs mögött újabb meghódítandó távlatok sejlenek fel. Lehetne még jobban csinálni? Tesszük fel szüntelen a kérdést, és megpróbáljuk. A hasznosnak bizonyult dolgoknak örülünk, azok lesznek a mi “legjobb gyakorlataink”. És nem félünk megválni a haszontalanoktól, a károsaktól, a hátráltató tényezőktől. Szerencsére sosem a nulláról indulunk, mert aki erre az útra lépett, az általában szívesen osztja meg a saját történetét. Mert a felfedezés örömét továbbajándékozni mindenkor nagyszerű érzés.

Az Agile minden szereplőre feladatot ró, és mindenkitől ugyanazt várja el: fejlődj és légy egyre jobb, egyre hasznosabb. Nem vagy tökéletes, és ha azt hiszed már nincs hová fejlődnöd, akkor valószínűleg valójában már olyan alacsonyan vagy, ahonnan nem fog többé kirángatni sem az Agile, sem más.
A változást nem elég a körülötted lévőktől elvárnod. Magaddal kell kezdened! Légy akárhol a hierarchiában. Meg kell változnod, és ezt már nem odázhatód tovább el!    

Agilis bárki remekül lehet egymagában. De az igazi erő egy agilis csapatban lakik. Egyrészt mert az ember (még a legintrovertáltabb programozó arc is!) alapvetően szociális lény. És bizony nincs annál nagyobb inspiráció, amikor látod, hogy így, ezzel az attitűddel dolgoznak körülötted, és az egésznek hasznos és tevékeny részese vagy. A közös erőfeszítéssel elért siker képes összekovácsolni az embereket, és nagyszerű élményt adhat a résztvevőknek. Csodálatos érzés a közös alkotás öröme. Így lesz egymás mellé sodródott emberekből igazi csapat. Idáig eljutni, maga a változás.

De minden egyes szereplő, aki nem képes felnőni ehhez a szinthez, az egyben már a puszta jelenlétével is tönkreteszi az egész játékot. (Ezért mondják, hogy nem lehet csak a csapat egy része agilis…)
A valóság azonban ennél is sokkal kegyetlenebb, mert a nem agilis szereplők ritkán érik be a “puszta jelenléttel” való tönkretétellel, hiszen általában fenyegetésként azonosítanak majd. Mert szükségszerűen vagy - a hozzáállásod révén - sokkal jobb náluk.

Ezzel meg is érkeztünk az egyik okhoz, ami miatt az Agile gyakran ellenállásba ütközik. Egy hagyományos cég gyakran rendkívül primitív szellemiséggel rendelkezik. A "pozícióban lévők" az Agile egyik legfontosabb paradigmaváltását gyakran nem értik, nem élik és nem érzik át. Ez pedig a kiáltvány azon része, amely azt mondja hogy az "egyének" a fontosabbak.  Közérthetőbben vagy félreérthetetlenebbül megfogalmazva: a szoftverfejlesztés (mint bármely más kreatív alkotómunka) nem sorozatos reprodukció, nem betanítható műveletsorok pontos, tervszerű ismétlése, hanem kompetencia alapú alkotó tevékenység. Mindennek tetejében a világ jelenleg legnagyobb ütemben fejlődő, leggyorsabban változó, átalakuló kompetencia halmazára épül.
Ezért a programozó nem helyettesíthető bármikor egy másik, az adott műveletsorra betanított személlyel. Ez a szemlélet egyértelműen megbukott a szoftverfejlesztésben immár évtizedekkel ezelőtt. Az Agile egész mást mond, és a végletekig egyértelműen fogalmaz a legtöbb idevágó metodikai módszer is: általában kis létszámú, produktív és önszerveződő csapatról beszélnek. Ez a csapat önmagában produktív, annak révén, hogy együttesen birtokolják a termék előállításhoz szükséges kulcs kompetenciák összességét. Tehát minden személy egyformán fontos a team-ben, bedrótozottan inkább mellérendelő viszony van. (Ideális csapatban minden szereplő szuper-kompetens a saját területén.)

Mindez alól nem képeznek kivételt a menedzsmentet alkotó és a követelményeket szállító szereplők sem. Értéküket kizárólag két elsődleges tényező határozza meg: a produktivitásban és a termékminőség (termék-hasznosság) elérésében betöltött szerepük. A menedzser vagy a szervező nem főnöke magától érthetően senkinek sem a team-ben! Illetve a hierarchiát, és az egyes szereplők értékét a birtokolt kompetenciáik fontossága, azok minősége határozza meg. Továbbá a produktivitás, legtöbb esetben a csapatmunka szempontjából hasznos személyes, emberi tulajdonságaik összessége. A szerepek pedig az önszerveződés révén, menet közben alakulnak ki, kompetencia alapon és nem autoriter módon. Ezt legszebben eddig egy angol nyelvű preziben láttam leírva, amely a codereview-ról szólt: 
"The only true authority stems from knowledge, not from position."
És a lényeg tulajdonképpen ennyi. Ezt az egy mondatot kéne megérteni, felfogni, és komolyan venni. Egy hagyományos cég gyakran sokkal alacsonyabb szellemiséget birtokol annál, hogy mindezt megértse. A hagyományos (szoftverfejlsztő) cégekben a menedzsment gyakran pozícióért megküzdött egykori "öreg" fejlesztőkből áll, akik gyakran egy primitív és téves karrierképen szocializálódtak. Ez  azt sugallja, hogy a "kitört" fejlesztőkből idővel menedzser, szervező lesz, és a lúzerek maradnak csak programozók. Ezzel szemben én azt tapasztaltam, hogy az ilyen környezetben a nem megfelelő kompetenciákkal rendelkező, vagy lusta, de persze erőszakos személyiségjegyeket mutató, törtető  programozók mennek el az említett irányokba. (Egyik előbb felsorolt tulajdonság sem hasznos egy igazi Agilis-csapat számára!) És általában szükségszerűen nem megfelelően látják el a feladatukat (hiszen eleve a munka elől menekültek oda). És valójában egészen más elsődleges képességeket igényel az ezekben a szerepekben való sikeresség, mint ami a programozáshoz szükséges.

Mindez gyakran azzal a tévképzettel párosul, hogy a “jobb” programozók egy idővel már “csak” terveznek, és nem "kódolnak", azt majd a tervek alapján “beverik” a "kóderek". (Aki valóban követi egyes mai fontosabb keretrendszerek, eszközök, nyelvek fejlődését annak aligha kell magyarázni mindennek a nonszensz voltát.) Ha nem programozol akkor exponenciálisan növekvő ütemben tudsz majd semmit a valódi, élő programozásról. A programozás egy olyan gyakorlati tudomány, amelyben a gyakorlat és az elmélet a lehető legnagyobb átfedést mutatja. És iszonyatos tempóban fejlődik... 
Általában valami pontosan meg nem határozott követelményeket kielégítő, legtöbbször több generációnyi programozás-elméleti lemaradást mutató, szöveges leírások és ábrák (jobb esetben UML-diagramok), egyvelegeként előálló katyvasz szokott lenni a "terv". Ami persze nem specifikál egy csomó implementációs igényű részletet, már csak azért sem mert a nagyszerű "kiemelkedett" programozó kolléga már évek óta nem írt egy sor programot sem, és gyakran az alapvető dolgokkal sincs tisztában az ez idő alatt meg pofátlanul és hihetetlen mértékben tovább fejlődött fejlesztőeszközök, keretrendszerek és programozási technológiák vonatkozásában. Így egy idő után már nem is nagyon szoktak erőlködni, ha mégis, hát abban is ritkán van köszönet... Az ilyesmiben kódolva van a bukás, ha egy picit belegondolunk, és nem csak azért mert teljesen ellentmond az összes elterjedt Agilis elemnek/módszertannak...

Na, egy ilyen környezetben az Agile halálra van ítélve, mert ezek az emberek nem fognak lemondani a kiváltságaikról, és ki tudja hány év kényelmes lustálkodás után keményen dolgozni egy olyan környezetben, amelyben deklaráltan a produktivitás szempontjából hasznos kompetenciák birtoklása révén juthatnak csak kulcspozíciókba.
De egy ilyen szervezet maga is halálra van ítélve. Amint megjelenik egy megfelelő szintű vállalati kultúrát mutató konkurrens szereplő, természetesen esélyük sem lesz felvenni a versenyt velük.

És nem véletlenül beszélek ezen a ponton már vállalati kultúráról. Ki akar megváltozni? Aki nem teszi fel a kezét, arra nincs szükségünk. Ha tulajdonos, esetleg felső vezető vagy, az Agile nem kímél téged sem. Feladatokat ró rád! Hogyan tehetnénk még jobbá? Egy ponton túl már a világról, az életről, az egészről beszélünk. Minél komolyabb ember vagy, annál több a kötelesség, annál több a kötelezettség... Mindezt persze már nem az Agile “találta fel”. De végső soron ez az egész mozgalom emberileg, erkölcsileg, olyan viselkedésformákat és magatartást kényszerít, amelyekről évezredek óta tudja az emberiség jobbik fele, hogy helyes.

Éppen ezért azok a bizonyos "modern vállalatok" nem irigyek. Nem hiszik azt, hogy a tudást ők birtokolják és nem a személyek, akik a produktív szervezetet alkotják. Ezért tisztességesen bánnak a szereplőkkel. Nagyon gyakori, például, hogy felkarolják a munkatársaik ötleteit, arra bátorítják őket, hogy álljanak a saját lábukra, alapítsanak saját céget, dolgozzanak “főállásban” azon, amiben megtalálják önmagukat, a kihívást, az örömüket, az életüket. Miért teszik, ezt a látszólag logikátlan lépést? Mert látják a nagyobb képet a háttérben. Nem félnek nagyban játszani. És nem félnek áldozatot hozni a nagy célok érdekében. Nagyon gyakran anyagilag is áldoznak minderre, vagy egyéb társadalmi jobbító célokra.  
Egy hagyományos vállalat, gyakran nagyon messze van mindettől a szinttől. Különösképpen igaz mindez, egy olyan speciális (posztkommunista) környezetben, ahol a nemrég végbement “eredeti tőkefelhalmozás” folyamata még nagyon erős társadalmi és vállalati torzító tényezőként jelentkezik.    

Ezért indulnak lépéselőnyből az ilyen környezetben azok az általában kizárólag kompetencia alapú, gyakran egyetlen erős innovatív ötleten alapuló, és többnyire súlyos tőkehiánnyal küzdő, induló vállalkozások, amelyeket Startup-nak szokás nevezni. Ezek szervezeti felépítését nem köti gúzsba egy megkövült és gyakran hamis, szervezeti hierarchia. A kompetencia alapú önszerveződésnek nem állja útját, a mozdíthatatlan status quo-k átláthatatlan és hasznossági kritériumoknak ritkán alávetett rendszere.
Ezek a fiatal vállalatok természetes módon szerveződnek Agile-szerűen. És talán ez az oka, hogy az igazán nagy sikereket hazánkban nem azok a tőkeerős vállalatok érték el, amelyek minden izzadtsága ellenére sem sikerül világszínvonalút és igazán maradandót alkotniuk. Hanem kompetens és elkötelezett szereplők csapattá szerveződése révén alakuló névtelen, induló vállalkozások. Bizonyára nem kell senkinek bemutatni a Prezi-t, a UStream-et, vagy a hazai startup éra többi ismert szereplőjét. És már itt is van az újabb magyar világsiker a L!BER8, amely tanítanivalóan profi szervezés után, egy nap alatt behúzta a 40 000 $-ros Indiegogo kampányát és jelenleg valahol 200%-on áll!

Mert vannak területek, ahol az elkötelezettség, a kompetencia, és persze az ezekre épülő ötlet, többet ér bármilyen szervezetnél, és infrastruktúránál. És szerencsére a szoftveripar és határterületei mindennek a közepébe esnek. Az Agile pedig segít minket a helyes gondolkodás és vislelkedési formák kilakításában. Nem ismerem a L!BER8 csapatát, de így kívülről elnézve az egészet nem lepne meg, ha a résztvevők közül jónéhányan közelebbi barátságot ápolnának az Agilitással és az ehhez kapcsolódó vállalatszervezési elvekkel.
Végső soron az lett volna mindennek a poszt sorozatnak a célja, hogy mindenkit egy ilyen baráti viszony kialakítására bátorítsak. Különösen azokat, akik szoftver fejlesztéssel foglalkoznának...

Nincsenek megjegyzések:

Megjegyzés küldése