Author Archives: Lukáš Křečan

Poslouchejme

Nemůžete posunout konverzaci pozitivnějším směrem, pokud se váš partner necítí vyslyšen a pochopen.
Douglas Stone

Musím se k něčemu přiznat. Myslel jsem si, že hlavním cílem komunikace je přenos myšlenek z jedné hlavy do druhé. Že když mi někdo něco vysvětluje, tak je jeho hlavním cílem předat mi nějakou myšlenku a mým úkolem je snažit se mu v tom pomoci. V okamžiku, kdy mi tu myšlenku předal, tak mu to musím dát najevo, ujistit se, že jsem to pochopil správně, prohlásit téma za ukončené a přesunout se dál.

Zní to rozumně, plně to odpovídá modelu racionálního člověka a přesto je to naprosto špatně. Ve spoustě situací vám druhý člověk nechce předat informaci, ale chce se jednoduše vypovídat.

Proč to vůbec píšu? Protože je to důležité a hrozně s tím bojuji. Nedávno se mi stalo, že jsem zastavil kolegu po první větě, protože jsem věděl, že to co mi říká, už dávno neplatí. Chyba. Myslel jsem si, že nám tím ušetřím čas, ale nestalo se. Byl rozhozený a následná diskuze byla k ničemu.

Co s tím? Je potřeba poslouchat. Ano, i když vám někdo říká něco co už dávno víte, i tak musíte poslouchat. Ne jenom čekat až ten druhý domluví, inteligentně u toho pokyvovat hlavou a přitom přemýšlet co budu říkat já, až se uráčí vyžbleptnout. Je potřeba ho opravdu naplno poslouchat. Nejen že nám opravdu může říci něco co nevíme. Ale i kdybychom přesně věděli, co nám chce sdělit, tak dokud nebudeme poslouchat my jeho, tak nebude poslouchat on nás. Dostaneme se do situace, kdy budeme vést sériový monolog. Každý si bude mlít to svoje, aniž bychom se navzájem poslouchali.

Abych ocitoval odbornou literaturu: „Důvod proč vás ten druhý neposlouchá není to, že je tvrdohlavý, je to proto, že se necítí být vyslyšen. Jinými slovy, neposlouchá vás ze stejného důvodu proč neposloucháte vy jeho. Myslí si o vás, že jste pomalí a tvrdohlaví. Takže se opakuje, hledá nové cesty jak vám to vysvětlit, zvyšuje hlas a tak dále.“ Nepřipomíná vám to vaší poslední složitou schůzi? Mně jo.

Netvrdím, že poslouchání je jednoduché. Už pár měsíců se to snažím naučit a pořád se mi to nedaří. Ano, umím se naučit parafrázovat, klást doplňující otázky a podobné finty. V tom to ale není. Ten pravý trik je v tom opravdu vnímat co ten druhý říká. Je to hrozná fuška, ale začíná mi docházet, že jinak to nejde.

Je technologie to hlavní?

Představte si IT organizaci. V jejím středu je technologie – počítače, software, sítě tak dál. Technologie je to hlavní, kolem ní se točí všechno ostatní. Hlavně lidi, kteří jí slouží. Všichni ti programátoři, systémoví administrátoři, testeři, síťaři, manažeři, analytici, designéři, prodejci a kdoví kdo ještě. Technologie je evidentně to nejdůležitější, všechno ostatní je druhotné, té technologii podřízené. Když vám konkurence ukradne technologii nebo když vás technologicky předežene, tak jste namydlení, že?

Teď si přestavte houslového virtuóza. Je to fakt špička, má housle od starého mistra za neuvěřitelné peníze. Bez houslí nezahraje vůbec nic, housle jsou to, kolem čeho se točí celý jeho život. Lidé chodí na houslové koncerty, on je houslista. Housle jsou tam to hlavní, že? Blbost. Když mu dáte do ruky slušně udělané housle za pár šupů, tak si toho pravděpodobně většina posluchačů ani nevšimne. Důležitý je tam ten chlapík, housle jsou jen nástroj. Proto se nebojí, že si já koupím drahé housle a tím ho připravím o práci. On moc dobře ví, že se na ně nikdy nenaučím hrát.

Stejné je to i s tou technologií. Ano je důležitá a bez ní to nejde. Hlavní jsou tam ale ti lidé. Lidé jsou to co vás odlišuje od konkurence, lidé jsou to zásadní, to o co musíte pečovat.

Možná je to pro vás samozřejmé, mě osvítil tento týden až náš CEO. Předváděli jsme mu, co se chystáme dělat. Takové to, sem šoupneme Hadoop, sem dáme jinou open source technologii, tady použijeme tuto existující metodiku. Zkrátka jsme popisovali, jak poskládáme věci, které za nás udělal nebo vymyslel někdo jiný. No a náš ředitel se na to podíval a zeptal se, kde tam vidíme naše duševní vlastnictví? Na chvíli zavládlo zděšené ticho, všem to v hlavě šrotovalo, jestli náhodou nenaznačuje, že jsme tam zbyteční. Nakonec to zachránil někdo duchapřítomný, kdo mu řekl, že naše duševní vlastnictví je v tom, jak to všechno umíme škálovat.

To je přesně ono. Naše největší konkurenční výhoda není v tom, že máme technologii, kterou nikdo jiný nemá. To hlavní jsou lidi, kteří ji umí vyrobit, upravit, provozovat, testovat, prodávat a dodávat zákazníkům. Ano, máme tam pár komponent, které jsou unikátní. Když ale konkurence přijde s něčím lepším, tak bude záležet jen na našich lidech, jestli na to dokáží odpovědět. Je to stejné jako s tím houslistou. Housle jsou mi k ničemu, když na ně neumím hrát. Stejně tak je technologie k ničemu, když kolem ní nemám lidi, kteří z ní dokážou vyloudit něco užitečného.

Trochu jsem váhal, jestli můžu dávat na osobní blog nápady svého CEO. Co když je to tajné? Pak mi ale došlo, že mi to různí lidé říkali několikrát, já jsem to jen špatně pochopil.

Vezměme například Peopleware z roku 1987. Teď jsem si ji znovu otevřel a čtu.

Náš úspěch pramení z dobrých vazeb mezi všemi zúčastněnými, naše neúspěchy pramení ze špatných vazeb. Hlavní důvod, proč máme sklon se soustředit spíše na technickou stranu věci než na lidskou není to, že je zásadnější. Je to proto, že je to jednodušší. Nainstalovat nový disk je triviální v porovnání s tím, jak zjistit proč je Horác vynervovaný a proč je Zuzka nespokojená už po pár měsících ve firmě.

Nebo Facts and Falacies of Software Engineering, fakt číslo 1.

Nejdůležitější faktor v práci na software nejsou nástroje a techniky použité programátory, je to kvalita programátorů samotných.

Takhle bych mohl pokračovat dál, třeba přes agilní manifest, ale nic nového bych tím neřekl. Lidé jsou pro tvorbu produktu důležití. To všichni víme.

Co mi došlo až tento týden je to, že lidé jsou natolik pro produkt důležití, že se sami tím produktem stávají. Technologie bez lidí je stejně užitečná jako housle bez houslisty. Jakmile si toto uvědomíte, začne vám dávat spousta věcí smysl. Začne vám dávat smysl celý ten boom kolem Software as a Service. Jeho výhoda je přesně v tom, že dává možnost k software přibalit šikovné lidi. To se u krabicového řešení udělat nedá.

Začne vám dávat smysl všechen ten shelfware v korporacích. To, že si banka za několik milionů koupí SW, který pak ani nenainstaluje. Bez lidí je ten software k ničemu. Kdybych já si koupil stradivárky, měl bych je taky ve vitríně.

Začne vám také dávat smysl, proč Netflix, Facebook, Twitter a další dávají skoro všechnu svoji technologii k dispozici jako open source. Proč se nebojí, že to někdo vezme a začne jim konkurovat? Protože vědí, že technologie není to hlavní. Netflix dobře ví, že i když vezmu všechnu jejich technologii, tak mi bude trvat hrozně dlouho, než vybuduji organizaci, která bude mít stejné know-how, kulturu, kontakty a komunitu, jakou mají oni.

Začne vám dávat smysl, proč spousta skvělých a novátorských technologických nápadů neuspěje. Proč smetanu slízne často někdo jiný. Protože technologie je jenom nástroj, zásadní jsou hlavně lidi kolem.

Conwayův zákon

Pokud máte čtyři skupiny pracující na kompilátoru, dostanete čtyřprůchodový kompilátor.
Eric S. Raymond

V poslední době jsem několikrát narazil na Conwayův zákon. Řekl jsem si, že se o něj s vámi musím podělit.

Každá organizace navrhující systém nevyhnutelně vyprodukuje návrh, jehož struktura bude kopií komunikační struktury této organizace.

Na první pohled je to evidentní. Pokud mám dva moduly, které spolu komunikují, musí spolu zákonitě komunikovat i týmy, které je mají na starost. A naopak, pokud mám týmy, které si spolu nepovídají, nemohou si spolu povídat ani jejich komponenty.

Proč je to zajímavé? Protože to má dopad na architekturu systémů. Zjednodušeně řečeno, o architektuře je rozhodnuto dávno před tím, než se s ní vůbec začne. Řekněme, že chcete co nejlépe navrhnout nový systém. Je to velké, takže práci rozdělíte. Arnoštovi zadáte, aby vymyslel jak budou uložena data a Bedřišce zadáte, ať vymyslí jak je zobrazit. Aniž jste si to uvědomili, už jste rozhodli, že aplikace bude mít dvě oddělené komponenty, frontend a backend. Aneb jak píše sám pan Conway:

… samotný akt organizace navrhujících týmů znamená, že určitá rozhodnutí ohledně návrhu již byla učiněna, ať už explicitně nebo jinak. Ať už jsou týmy organizovány jakkoliv, vždy existuje třída alternativ, které nemohu být touto organizací efektivně následovány, protože neexistují nutné komunikační kanály.

Co z toho plyne? Pokud navrhujete něco nového, odsuňte rozhodnutí o organizaci týmů na co nejpozději. Předčasným rozdělením se připravíte o možná dobrá řešení.

Zajímavé je, že ta věta platí i naopak. Pokud už máte existující systém, musíte kolem něj stavět organizační strukturu. Představme si například, že máte úspěšnou aplikaci, ale tým už se rozrostl nad únosnou mez. Je potřeba ho rozdělit. Kvůli Conwayovu zákonu jsou dvě možnosti jak to může dopadnout. Buď se zároveň rozdělí i aplikace a každý tým dostane na starost jednu část. Nebo týmy zůstanou rozdělené jen na papíře. Lidé pracující na jedné komponentě spolu prostě musí komunikovat natolik intenzivně, že nemohou být rozděleni do víc týmů.

Pokud vás to zaujalo, přečtěte si původní článek. Na to, že byl napsán v roce 1968 je pořád zajímavý.