Zastupiteľnosť. Alebo, univerzálny vojak v Agile ako povinnosť?
Ojjjeje. Opäť raz po niekoľkých rokoch od školeniam počujem od človeka, aké nezmysly som im táral na školení, keď som rozprával o agile tíme. Už desať rokov vysvetľujem agile a jedno nepochopenie, resp. nedorozumenie, sa opakuje zakaždým. Roky.
Samozrejme je pre mnohých chyba na strane vysielača, pretože prijímače sú predsa bezchybné. Aj keď, ako zvyknem vravieť, problém je niekedy aj s médiom medzi prijímačom a vysielačom, pričom obidva sú bezchybné. A tak som sa rozhodol toto vysvetlenie dať na „elektronický“ papier a zvečniť ho tak v archívoch veľkého Internetu.
gur
O čom vlastne točím? O ZASTUPITEĽNOSTI. resp. O MULTIDISCIPLÍNNOSTI AGILE TÍMU.
Agile tím „podľa príručiek“
An Agile team is a cross-functional group of people that have everything, and everyone, necessary to produce a working, tested increment of product.
Agilný tím je multi-disciplínna skupina ľudí, ktorí majú všetko a každého potrebného pre produkciu funkčného a otestovaného inkrementu produktu.
https://www.leadingagile.com/2015/02/what-is-an-agile-team-and-how-do-you-form-them/
Podobne ako iní Agile mentori, aj my vysvetľujeme, že práve multi-disciplinarita tímu umožňuje tímu žiť jednoduchšie. Tím je menej závislý na iných tímoch (napr. v tradičnom svete tíme testerov). Tím je samostatnejší a keďže je aj malý, je schopnejší sa rýchlejšie a lepšie dohodnúť. Kto, čo, kedy chce dokončiť. Vie sa dohodnúť aj o jednej veci, ktorú často v tradične riadených tímoch nevidíte.
V tejto vete je multi-disciplinarita zameraná nato, že v tíme máte viaceré roly. No multidisciplínnosť sa dá dosiahnuť aj vedomosťami širšími než len popis vášho jobu.
Príklad multidiscplinárneho tímu zameraného na výsledok
A SEAL platoon consists of two junior officers and 14 enlisted. It is led by the more senior of the two officers, a Navy Lieutenant.
More often, SEALs operate as 8-man Squads or 4-man Fire Teams. All SEALs are BUD/S graduates; are dive, parachute, and demolitions qualified;
V Agile tíme sa viete dohodnúť ČO CHCETE robiť. Nielen stále ten istý druh práce dookola. Máte možnosť sa učiť aj niečo iné. A dokonca nielen o programovaní, ale aj o iných aktivitách potrebných pre vývoj produktu. Analýza, testovanie, release manažment, dokumentácia, atď.
Väčšina ľudí na tréningoch však počuje MUSÍTE robiť všetko. Ak ste tiežo toto počuli, bohužiaľ my sme to nevysielali. Na to si dávame roky pozor! Pred niekoľkými rokmi sme dokonca pridali aj vetu:
Univerzálnych vojakov v agile tíme nehľadajte. Nemôže každý vedieť všetko v rovnakom čase. Je to iba zbožné želanie.
A tu prichádzame ku koreňu tohto nepochopenia. Všimol som si, že ľudí tak prekvapí tvrdenie o multi-disciplinárnosti agile tímu, že vypnú na chvíľu aktívne počúvanie a začnú sa zamýšľať nad tým, ako sa to nedá, aký je to nezmysel, ako sa to týka daného človeka a prečo to v danej firme nie je možné. A počas toho samozrejme človek nedopočúva to ostatné.
Ale toto je samozrejme ospravedlniteľné a napraviteľné. Čo sa aj darí ak sa…..chce.
Chcete?
Kto vlastne chce zastupiteľnosť? Tu je zbierka odpovedí z praxe:
- Kapitalisti. Lebo chcú veľa zarábať a nechcú prijímať nových ľudí.
- Manažéri. Lebo si nevedia vybojovať nových ľudí, a preto je jednoduchšie tlačiť na nás. A majú na to nástroj, dogmu, vieru. Agile.
- Tí hore. Lebo nevedia nájsť ľudí, a tak chcú po nás viac a viac. A za tie isté peniaze. A Agile nás všetkých zmanipuluje.
- Agile mentori. Lebo kážu svoju vieru a nepočúvajú, že je to holý nezmysel. Podobne ako socializmus postavený na kolektívnom duchu.
Každý, len nie ja. Chcete sa zamyslieť?
Prečo by ste mohli chcieť multi-disciplínnosť?
Možno vám ju vôbec netreba. Žijete svoj život, robíte dream job, máte svoju stoličku, kávu, čaj, počítač, mozog, znalosti a vášeň pre technolópgiu, ktorú ovládate dokonale.
Technológie
Dnes je však technológia otázkou „Dokedy?“. Pamätám si ako sme pred desiatim rokmi riešili dilemu. C++, alebo Java. Nič iné nemalo zmysel. Ok, možno PHP. Potom po troch rokoch prišiel .NET a svet sa začal komplikovať.
Zrazu bolo možné robiť v C#, JavaScripte, VBScripte a to na jednej platforme. A vzápätí bum. Web, ASP.NET, mobilné aplikácie, WInForms, WebForms, Web Services, SOAP, všetky tie databázy, ORM nástroje a technológie, LINQ, WPF, WCF, WWF,…… V priebehu niekoľkých, rozumej 2-3 rokov.
A popri tom sa začína pomaly a isto éra web technológií. JavaScript už nie je len na animácie, prichádza Ruby, funkcionálne jazyky, cache, pluginy, nástroje pre continuous integration, deployment, testing, CSS a pod., Jade atď, atď. Vzápätí frameworky ako Angular, React, Vue. Niekoľko tisíc technológií, jazykov a nástrojov.
A potom OMG, mobily. A teraz AI, Machine Learning, voice assistants, big data, cloud, microservices, function as a service, a neviem čo ešte.
Dnes musí dobrý programátor vedieť oveľa viac ako kedykoľvek predtým. A dobrý vývojár cíti zodpovednosť za výsledok. Píše testy, upravuje databázové migračné skripty, mení konfigurácie CI a CD nástrojov keď dopíše nové moduly. Sleduje npm a iné repozitáre.
Ako a kde sa to CHCETE učiť ak nie v práci? Ako a kde ak nie prakticky na vašich projektoch?
Že na čo? Veď robíte v tej istej práci 10-15 rokov a doteraz ste to zvládli? Tak si verte ďalej. Je to určite pohodlnejšie, ale už o pár rokov možno programovanie bude niečo úplne iné ako ho poznáte dnes. Ja sám som pred 20 rokmi písal v hexa kóde a to bolo vtedy pre nás úplne normálne, naša realita. Už taký Assembler bol za totáča malé sci-fi, pretože prekladače neboli len tak dostupné.
A čo nás čaká o zopár rokov? Možno aj toto. A kde sú vaše formuláre?
Osobný život
Expertom sa stávate, keď robíte svoju prácu dlho. Čím dlhšie ju robíte, tým väčší expert ste. A čím ste väčší expert v nejakej oblasti, úplne prirodzene sa začnete správať ako magnet na danú oblasť. Práca si vás nájde. Vždy a všade, najmä na dovolenke.
Čo robia guru? Učia iných stať sa guru, aby oni mali čas na špecialitky. Aby sa neustále a neustále točili v nových témach, oblastiach, ktoré sú kreatívnejšie ako riešenie 458 formulára, Rest JSON, Ruby controllera, view a modelu plus databázového fieldu a migračného skriptu v poradí.
Chcete dovolenku? Chcete zastupiteľnosť.
Osobný rozvoj
Chcete mať znalosti iba z jednej oblasti? Aj to je cesta. No čo ak ste si zvolili oblasť, v ktorej ste síce dobrý, ale po rokoch zistíte, že to mohlo byť lepšie v inej? Nebudete vedieť, pokiaľ nevyskúšate.
Skúšajte, keď máte iných guru okolo seba. Neučte sa sám nasvojich chybách, na to je život krátky.
S dobrým kolegom sa naučíte oveľa rýchlejšie. V Agile tíme dokonca máte na to priestor už v princípoch.
Mimochodom, už aj na Slovensku máme klientov, ktorí majú v DNA osobný rozvoj vo forme rotácie. Medzi rôznymi tímami, business oblasťami, jobmi a lokalitami.
Profesionalita
Frflanie je v našich zemepisných šírkach takou normou. „Načo, nezmysel, neide to, u nás je to tak, neštudoval som preto, aby…“. Profesionál sa podľa môjho názoru stará v prvom rade o kolegov. Potrebuje pochopiť ten „druhý svet“, čo to obnáša v tej inej práci, napr. pre testera. Že tester nie je ten, kto hľadá chyby, ale naopak, ten, kto mi pomáha spraviť môj výsledok lepšie. Ako sa on natrápi keď to hlúpo naprogramujem tak, že sa to nedá jednoducho testovať.
Že zákazníka vôbec nezaujíma váš diplom vývojára, podobne ako vás nezaujíma, či pekár a pomocník majú správne školy a kto presne čo robil. Vás zaujíma teplý a vo)avý chlieb, alebo čerstvé rožky k treske. Výsledok.
A práve takto rozpoznáte profesionála. Človeka, ktorý sa najprv zamyslí nad tým s čím treba pomôcť, a nie nad tým aký ma titul, rolu, popis práce.Samozrejme s akceptáciou toho, čo viete, môžete a predovšetkým čo chcete.
Bodka
A neviem ako Vy, ale mne sa s takýmito ľuďmi robí oveľa lepšie. Pretože netrávim svoj čas diskusiami typu „moja zmluva, rola, zodpovednosti, proces“, ale diskusiami „zákazník nás pochválil, zajtra dorobíme XYZ a môžeme publikovať, toto je super, uff, toto by sme mali zmeniť“. Trávime čas tým čo nás baví.
Stačí iba chcieť. Aspoň o trochu viac. Tak sa nevyhovárajte. Bodka.