Lokální vs. distribuovaný tým

Rozmach XP a Agile metodik s sebou přinesl důraz na usazení všech členů vývojového týmu na stejné místo (collocated team). Na druhou stranu se v posledních pár letech rozmáhá počet firem, kde zaměstnanci pracují většinu času vzdáleně (distributed/virtual team). Který způsob je vlastně lepší?

Argumenty pro lokální tým

  • Efektivnější komunikace.
    Uvádí se, že pouze 7% informací vnímáme z obsahu slov, 38% z hlasu a celých 55% z neverbální části komunikace. Při komunikaci na dálku tak přicházíme minimálně o polovinu informací. Díky fyzické blízkosti navíc dokážeme mnoho informací nasát z konverzací, které probíhají kolem nás. Bez toho, abychom se jich museli účastnit.

    Často se taky stává, že se člověk zapojí do diskuse, která se ho zpočátku netýkala, ale později se dotkla tématu, které je pro nás důležité. Příklad: dva kolegové se vedle mne baví o tom, jak budou implementovat novou funkcionalitu. Náš mozek tuto konverzaci dokáže odfiltrovat jako šum na pozadí a já se tak můžu věnovat svojí práci. Najednou mě však něco z konverzace zaujme – kolega zmínil název třídy/modulu, na kterém teď pracuji. Díky tomu mám možnost se připojit do diskuse, pomoct svými znalostmi nebo předejít situaci, kdy vzniknou dvě konfliktní implementace.

  • Jednoduché nástroje.
    Protože jsme všichni na tom samém místě, můžeme používat jednoduché nástroje z fyzického světa: tabule a fixy, kartičky pro user-stories, nalepovací lístečky (post-it notes) apod. Častokrát se s nimi pracuje daleko efektivněji než s digitálními aplikacemi, navíc nám pomáhají zapojit do práce i pravou stranu mozku, která je po většinu času bohužel odstrčená do pozadí.

  • Sounáležitost.
    V prostředí, kde sedíme všichni spolu, se rychleji vybuduje týmový duch a pocit sounáležitosti.

Argumenty pro distribuovaný tým

  • Méně vyrušování
    Komunikace na dálku nás přirozeně vede k používání kanálů typu e-mail a chat, které jsou asynchronní. Člověk na druhé straně proto není vyrušen/vytržen z kontextu, může nejdřív dokončit rozdělanou práci a až pak se věnovat komunikaci s námi. Zkušenosti dále ukazují, že v distribuovaných týmech se tráví méně času na schůzkách a tak zbývá víc času na opravdovou práci.

  • Svobodná pracovní doba
    V dnešní znalostní ekonomice už nefunguje korelace mezi časem stráveným v práci a dosaženými výsledky. Mnoho nejlepších nápadů vzniká mimo obvyklou pracovní dobu, např. ve sprše. Většina dobrých vývojářů má svůj nejproduktivnější čas v různou denní dobu – někdo brzo ráno, jiný uprostřed noci. V distribuovaném týmu si může každý vybrat čas, který mu nejvíc vyhovuje. Zaměstnavatel dostane víc hodnoty za kratší čas a zaměstnanec má větší prostor, jak skloubit osobní a pracovní život.

  • Méně dojíždění pro ty nejlepší lidi
    Dnešní doba je plná paradoxů. Na jednu stranu mnoho lidí touží po bydlení v přírodě, na druhou stranu většina firem sídlí ve (velkých) městech. Ve výsledku pak mnoho lidí za prací dojíždí, se všemi negativními důsledky – od času zabitého cestováním, přes plné silnice až po dopady na životní prostředí. Práce na dálku dává zaměstnancům svobodu žít na místě, které se jim líbí, a zároveň pracovat tam, kde je to baví. Znamená to taky velkou výhodu pro zaměstnavatele: můžou si vybírat z těch nejlepších talentů po celém světě.

Otevřené body

  • Párové programování
    V tradičním XP týmu se většinu času programuje ve dvou. Kromě přínosu plynoucím ze samotného postupu (rozdělení na řidiče a navigátora, průběžný code-review) pomáhá párové programování lépe řešit vyrušování: jeden člověk se může věnovat rušiteli, druhý udrží kontext, aby se pak dalo rychle vrátit k rozdělané práci. Zajímalo by mě, jak funguje párové programování na dálku. Používá se sdílení obrazovky ala Skype/TeamViewer? Specializovaná aplikace provázaná s IDE? Jak se řeší okna na více monitorech?

  • Zapojení obou polovin mozku
    Mnoho knížek o Agile doporučuje v lokálním týmu používat jednoduché fyzické artefakty (tabule, papír, tužka/fixa). Jak jsem už psal výše, pomáhá to kromě jiného zapojit obě poloviny mozku. Podobně je to se Zónou (neboli Flow): na jednu stranu je příjemné se ponořit do práce tak, že člověk nevnímá okolí. Bohužel při tom opět používáme pouze levou část mozku, jsme jako s klapkami na očích – jdeme rychle svým směrem, ale nemusíme si všimnout, že ten směr není správný. Zatím nemám jasno v tom, jakým způsobem tuto problematiku vyřešit.

Jaká je vaše zkušenost? Která varianta vám vyhovuje víc?

K napsání příspěvku mě inspiroval článek Distributed Teams. Teorii o zapojování pravé části mozku mám z knížky Pragmatic Thinking and Learning: Refactor Your Wetware.

P.S. Znáte někdo lepší český termín pro “collocated team” než je “lokální tým”?

9 thoughts on “Lokální vs. distribuovaný tým
  1. ad collocated: v teorii relativity se používá pěkné “soumístný” (obdoba současný pro prostor), ale asi to není srozumitelnější než lokální :-)

  2. Kolokace je tak trochu české slovo, takže kolokovaný tým, ale to zní, jak reklama na Kolaloku. Tým na jednom místě by se asi dalo taky použít, v případě nutnosti.

  3. @Michal Špaček
    S výrazem “kolokovaný tým” jsem právě původně začal. Znělo to hrozně a navíc jsem měl obavu, že lidi bez znalostí Agile si pod tím představí ustálené slovní spojení místo týmu na jednom místě.

  4. Docela dost jsem se tomuhle tématu věnoval na škole v Helsinkách.

    Lokálně distribuovaný tým je ještě celkem sranda. Zajímavý problémy nastávaji, když je tým distribuovanej přes více zemí (různý kultury) a hlavně časových pásem. Existuje hodně málo firem, kde se to podařilo úspěšně implementovat a obecně se doporučuje to nedělat, pokud to opravdu jinak nejde. Když už se dělá, tak se neustále opakuje “komunikace” jak jen to jde – osobní návštěvy, konference, telefony, chaty, maily.

    Pro mě osobně je práce součástí společenskýho života a home office se může hodit jednou za čas, ale dlouhodobě bych to dělat nechtěl, jakkoliv ta možnost lítat po světě a pracovat po cestě zní lákavě.

  5. Pěkně zpracované téma. Kdo znáte nějaké české firmy, které práci z domova aplikují, sem s nimi.

  6. Pracoval jsem více než půl roku na Homeoffice – se vším dobrým i špatným, co k tomu patří. Hodně mi to dalo. Pracoval jsem mnoho let klasicky – se zbytkem týmu. Dokonce jsem si zkusil i ty šílenosti, co zde popisuje kolega – tým rozházený po světě, kdy je neustále třeba hlídat časová pásma a build hlásí, že tam mám nějaké soubory z budoucnosti a vstávat ve 4 ráno, abych byl zbytku týmu “na blízku”…

    Dneska dělám analytika. Mám chvíle, kdy potřebuju být nerušen a tak zalezu do nory (Homeoffice), necestuji, přes den si zajdu zaběhat do lesa. A mám chvíle, kdy beze mě oni nic neudělají. Moje práce je ze 70 % o vyrušování. Oni mě vyrušují a ptají se a proto mohou pracovat. Takže kompromis, jsem asi 2 dny v týdnu doma, blíž lesu, rodině a 2 dny asi v práci, daleko od domova, blízko týmu a 1 den poletuju bůhví kde.

    Neřekl bych, že je jeden nebo druhý způsob lepší. Ideálně si vzít z každého to lepší :-)

  7. Hezké shrnutí. Myslím, že lokální tým je dobrý termín.

    Řekl bych, že otázka položená v úvodu není správná – spíš než “který způsob je vlastně lepší?” bych se ptal, co je vhodnější v dané situaci, prostředí a kontextu.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax