;

Outsourcing: Hledání inspirace u open source

28. 12. 2009
Doba čtení: 7 minut

Sdílet

Outsourcing aplikačního vývoje a vývoj open source nejsou oblasti od sebe tak vzdálené, jak by se mohlo někomu zdát.

Zkušenosti vývojářů open source a IT analytiků přitom ukazují, že firmy outsourcující svůj aplikační vývoj by se mohly od open source komunity naučit řadu užitečných věcí z oblasti managementu a řízení procesů.

Podle Joshe Berkuse, předního PostgreSQL vývojáře a člena open source databázového vývojového týmu společnosti Sun, je jednou z důležitých lekcí, kterou by komunity vývojářů open source mohly dát outsourcujícím společnostem, důraz, jenž kladou na asynchronní metody komunikace – e-mail, systém pro sledování chyb (bug tracking), diskuzní fóra, VCS (Version Control System). Naproti tomu stojí synchronní systémy, hlavně osobní komunikace, telefon, schůze, chat. Někde na pomezí jsou IM (instant messaging) programy, jako je ICQ či MSN, u těch záleží na konkrétním způsobu použití.

Když posíláte e-mail, nezáleží na tom, zda má příjemce zrovna čas komunikovat, ať již z důvodů pracovních či osobních, popřípadě v jakém časovém pásmu se nachází. U synchronních metod, například telefonování, se často může stává, že volaný má něco­ na práci, nemůže odpovídat. Velmi důležitým faktorem je v tomto směru i individuální biorytmus lidí, programátoři mají často ve zvyku pracovat do pozdních nočních hodin, spí potom dopoledne, popřípadě naopak.

Asynchronní metody obsahují vlastní způsob sledování toku informací. E-maily, systémy pro sledování chyb, diskuzní fóra, to vše jsou oblasti s více či méně propracovanou možností sledování toho, kdo co řekl. Lze tím předcházet nejasnostem, sporům i duplicitním dotazům, zvláště pokud je po ruce alespoň průměrný vyhledávací nástroj. Naproti tomu synchronní metody vyžadují nepohodlné způsoby vedení záznamů, nechvalně proslulé jsou různé zápisky ze schůzí. A co teprve hádky o to, co kdo řekl či požadoval v telefonním hovoru?

Vývoj a programování jsou také činnosti, které vyžadují vysokou míru soustředění, a programátoři i analytici často berou nelibě, když jsou vyrušováni telefony či nutností chodit na porady. To samozřejmě narušuje jejich produktivitu. Naprostá většina lidí přitom schůze („meetingy“) nesnáší, často se čeká, až dorazí poslední účastník, takže to okrádá lidi o čas a nezřídka i o pracovní nadšení.

Velmi důležité i v českém prostředí jsou výhody plynoucí z použití asynchronní komunikace při dorozumívání se v cizím jazyce. Jen si představte, že mluvíte například anglicky s francouzským zákazníkem. Znalost psaného textu může být dobrá na obou stranách, nicméně bariéry ve výslovnosti komunikaci znesnadňují. Dotaz položený ve fóru či v e-‑mailu si lze důkladně přečíst, dopřeložit.

Avšak i asynchronní komunikace má své nedostatky. Rozhovor vyžadující rychlou vzájemnou zpětnou vazbu se může z hodiny protáhnout na několik dní. Podle Berkuse to potom vede k tomu, že open source vývojáři musí používat i synchronní komunikaci, popřípadě přejít ke způsobu práce, kdy pracují paralelně na několika úkolech.

 

Problémy s kontrolou a motivací – a jejich řešení

Jay Lyman, open source analytik pracující pro The 451 Group, říká, že společným problémem pro outsourcing i vývoj open source je kontrola. Manažeři open source vývojářských firem mají mnohdy plnou hlavu starostí s tím, jak motivovat lidi, kteří nejsou primárně motivováni penězi.

Podobně je to i s ousourcovaným vývojem. V obou situacích je nutné přistupovat k lidem individuálně a platí, že příliš mnoho kontroly, nutnost vytvářet zprávy, podávat hlášení, to vše může být spíše na škodu vývoji.

Stormy Peters, výkonný ředitel v Gnome Foundation, říká, že zkušenosti z open source komunity lze aplikovat nejen na outsourcing, ale u jakéhokoli virtuálního týmu. Začíná­ to volbou preferovaných komunikačních nástrojů. Podle Peterse se opensourcové projektové týmy spoléhají hlavně na e-‑maily, mailové seznamy a IRC (Internet Relay Chat). Což jim dává v mnoha oblastech výhodu proti týmům komunikujícím hlavně přes schůze a telefon.

 

Mailingové seznamy a IRC chat poskytují vývojářům open source tyto výhody:

  • Transparentnost. Všechna rozhodnutí a diskuze jsou veřejně známé, stejně jako kdo je za co odpovědný, kdo co řekl, slíbil a nařídil.
  • Sledování zásluh. Každý ví, kdo co dělá a jak dobře to dělá, protože výsledky jsou probírány všem přístupným způsobem.
  • Spolurozhodování. Každý má hlas, který je slyšet. Každý se může připojit k mailovému seznamu či k IRC.
  • Záznamy. Je snadné dosledovat, kdo co řekl či navrhl. A také kdy se tak stalo.
  • Snadná synchronizace. E-maily a IRC znamenají méně problémů s individuálními časovými režimy a časovými pásmy. Lidé se do diskuzí zapojí, když jsou vzhůru a nemají něco důležitého na práci.
  • Menší jazyková bariéra. Řada lidí při vývoji softwaru komunikuje v sekundárním jazyce, většinou anglicky. Psanému textu je snadnější porozumět, přitom například telefo­nát v cizím jazyce může být velmi stresující.

Peters dodává, že když se lidé podílejí na spolurozhodování, jsou méně náchylní k tomu zanechat snahy či práce, když nedostanou odpověď na svůj dotaz. Budou se snažit dobrat se výsledku a i jejich motivace je vyšší. Už jen to samo by mělo upoutat pozornost outsourcujících společností. Jejich projekty se velmi často potýkají s náhlými zastaveními a opětovnými starty. Přechod na asynchronní komunikaci často pomůže hladkému chodu celého projektu.

 

Jen to s analogií nepřežeňte

Jedním ze základních rozdílů mezi vývojáři open source a outsourcovaným vývojem je motivace. Analytik Dan Kusnetzky k tomu říká, že open source komunita je poháněna snahou po dokonalosti. Programátoři vidí kus kódu a snaží se ho optimalizovat, odstranit z něj chyby. Naopak poskytovatelé vývojářských služeb jsou lidé pracující do značné míry na projektech, se kterými se vnitřně neidentifikují, pracují na tom, co jim bylo dáno, ne co si sami vybrali. Postupují tedy i tak, jak je jim řečeno, smířeni s tím, že jejich práce nemusí být optimální. Dobře lze tento rozdíl ilustrovat na programátorech, kteří ve svém hlavním zaměstnání programují na zakázku a ve svém volnu, se podílejí na vývoji open source aplikací. Přitom do toho druhého dávají mnohem více nadšení a umu.

bitcoin_skoleni

Dave Neary, jeden z hlavních vývojářů Gnome, říká, že když on či jeho kolegové mluví o „komunitě“, tak tím myslí něco silného, co je motivuje. Jen málokdy je něco podobného k vidění v běžných softwarových vývojářských firmách pracujících na zakázku. Neary se staví proti tomu pokládat za analogický či podobný management outsourcovaného vývoje a open source komunit. Naopak v nich vidí řadu rozdílů. V open source vývoji je pro často neformálně ustanovené manažery naprosto zásadní, aby se zabývali názory členů komunity, co dělají, co si o tom myslí. Pokud se programátoři cítí jako platní členové skupiny své širší rodiny, jsou schopni podávat obdivuhodné výkony. Pokud ne, často odejdou.

Něco takového se nevidí v vývojářských firmách pracujících na zakázku. Zvláště, pokud se jedná o firmy, kde se s lidmi nejedná jako s důležitými členy týmů, ale jako s člověkohodinami, které lze snadno nahradit.