Distribuovaný vývoj

Z Wikipedie, otevřené encyklopedie

Distribuovaný vývoj je projekt výzkumu a vývoje (R&D), který se provádí na několika pracovištích. Je formou R&D, při níž členové spolupracují na projektu, ale vzájemně se pravidelně nesetkávají. Komunikace často probíhá pomocí e-mailu, Internetu a jiných forem rychlé komunikace na dálku.[1] Průkopníkem distribuovaného vývoje se z velké části stala komunita open-source softwaru.[2]

Na rozdíl od outsourcingu, kde jedna organizace zadává práci jiné, pracují při distribuovaném vývoji všechny všechny složky na stejné úrovni. Distribuovaný vývoj se formou podobá virtuálnímu týmu, ale zahrnuje prvek výzkumu.

Charakteristiky distribuovaného vývoje[editovat | editovat zdroj]

Vývojáři jsou rozmístěni v několika lokacích a pracují na stejném projektu nebo výrobku. Na důvodech distribuovanosti nezáleží, může jimi být dostupnost prostředků v různých lokalitách, blízkost určitých uskupení, blízkost zákazníků nebo nákladové výhody.

Lidé se mohou v distribuovaném vývojovém prostředí specializovat, ale aktivně spolupracují na dosažení společného cíle. Součástí projektového řízení musí být vedoucí programu nebo projektový manažer. V distribuovaném prostředí členové projektu sdílejí myšlenky, informace a prostředky. Jedním z klíčových požadavků je, aby veškerá komunikace byla otevřená pro všechny zúčastněné, a neomezovala se pouze na zaměstnance v jedné kancelářské budově. Toho se obvykle dosahuje pomocí online spolupráce. K často používaným komunikačním nástrojům patří GitHub, a wikis.[2]

Distribuovaný vývoj je jednou z nejvyšších forem spolupráce v jakémkoli inženýrském nebo vědeckém výzkumném a vývojovém prostředí. Obvykle není překážkou obchodního úspěchu, ale může způsobovat širokou škálu obtíží od mírné zátěže až po nemožnost jeho dosažení, protože vyžaduje vysoké manažerské schopnosti, výtečné komunikační prostředí, politicky svobodné prostředí, vysoce efektivní infrastrukturu, propracované organizační schéma a časté interakce. Nejdůležitější je, aby vedení věřilo v toto nastavení a zavedlo opatření, která budou odměňovat jeho dodržování, a bylo velmi přísné na ty, kdo ho nedodržují. Podle podnikatele Mitche Kapora provádí mnoho společnosti distribuovaný vývoj úspěšně.[1]

Faktory úspěchu[editovat | editovat zdroj]

Existuje několik nevýhod distribuovaného vývoje. Studie ukázaly, že zaměstnanci, kteří pracují v jedné kanceláři, lépe koordinují svoji práci a jsou produktivnější. Podobně, softwarové aplikace, které jsou striktně integrované, lze velmi těžko vyvíjet s použitím distribuovaného vývoje. Z těchto důvodů mnoho velkých společností, včetně Facebooku, vyžaduje, aby všichni zaměstnanci pracovali ve stejné kanceláři.

Distribuovaný vývoj má několik výhod. Umožňuje společnosti najímat rozmanitější pracovní síly, včetně zaměstnanců, kteří si přejí pracovat z domova nebo se nechtějí stěhovat na velké vzdálenosti. Umožňuje společnosti najímat kvalitní pracovníky za nižší cenu, v porovnání s platy v místech technologických center. Distribuovaný vývoj je často vhodnější pro modulární software, kde lze různé komponenty programu vyvíjet odděleně.[2]

Existují tři hlavní faktory úspěchu distribuovaného vývojového projektu:

  1. Výběr dobrých, silných, vysoce kvalifikovaných lidí.[1][3]
  2. Vynaložení určitých nákladů na osobní setkání, zvláště na začátku každého většího projektu.[3]
  3. Vytvoření organizačního uspořádání, které bude podporovat práci v distribuovaném vývoji, včetně vhodných motivačních systémů.[3]

Zahrnutím těchto činností je možné získat výhody oproti čistému outsourcingu nebo offshoringu, jmenovitě mnohem vyšší motivaci zaměstnanců ve všech složkách distribuované sítě, vyšší retenci a přínosy z diverzity sítě.

Aplikace[editovat | editovat zdroj]

Globální distribuované softwarové inženýrství[editovat | editovat zdroj]

Globální distribuované softwarové inženýrství (Global Distributed Software Engineering, GDSE) je podnikovou aplikací pro distribuovaný vývojový proces. Společnosti mohou pracovat v distribuovaném prostředí kvůli týmům pracujícím na různých místech nebo kvůli outsourcingu nebo offshoringu.[4] Oblíbený přístup k distribuovanému softwarovému inženýrství je distribuovaný agilní vývoj softwaru.

V minulosti téměř veškerý vývoj softwaru prováděly týmy, jejichž všichni členové, vedoucí týmu, designéři, vývojáři a testeři, pracovali na jednom místě.[5] Postupem času se velikost a složitost společností zvětšovala, což je začalo nutit vyvíjet software globálně.[6] Svůj vliv měly také další síly; například ekonomické síly a globalizace začaly proměňovat národní trhy na globální, což s sebou přineslo i větší konkurenci.[6]

Jak bylo vysvětleno v části Faktory úspěchu, vývoj softwaru v distribuovaném prostředí přináší několik výhod, což může být faktorem pro společnosti začínající vyvíjet software globálně, např.:[7]

  • nižší vývojové náklady, například díky nižším platům v jiných oblastech světa
  • časová efektivita, zvýšení počtu pracovních hodin za den
  • přístup k většímu počtu kvalifikovaných pracovních sil
  • větší blízkost k trhu a zákazníkům společnosti.

Globálně distribuované softwarové inženýrství má mnoho úskalí z hlediska komunikace. Studijní obor „komunikace při distribuovaném vývoji softwaru“ se zabývá těmito problémy a zaměřuje se na pomoc podnikům při zajištění spolehlivých komunikačních kanálů bez nedorozumění.[8]

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Distributed development na anglické Wikipedii.

  1. a b c Mitch Kapor, How to Build a Successful Company, lecture to Stanfordova univerzita entrepreneurship students, 2008-01-16.
  2. a b c ASAY, Matt. Distributed Development: You're Still Doing It Wrong. readwrite.com. 2014-06-24. Dostupné online [cit. 2015-01-28]. 
  3. a b c Daniel Ek, A Playlist for Entrepreneurs, přednášky pro studenty podnikatelství na Stanfordově univerzitě v rámci Airbus Group, 2012-05-16.
  4. RICHARDSON, Ita; CASEY, Valentine; BURTON, John; MCCAFFERY, Fergal, 2010. Collaborative Software Engineering. [s.l.]: Springer Berlin Heidelberg. Dostupné online. ISBN 9783642102936. DOI 10.1007/978-3-642-10294-3_2. S. 35–56. (anglicky) 
  5. THISSEN, M. Rita; PAGE, Jean M.; BHARATHI, Madhavi C.; AUSTIN, Toyia L., 2007. Proceedings of the 2007 ACM SIGMIS CPR conference on 2007 computer personnel doctoral consortium and research conference the global information technology workforce - SIGMIS-CPR '07. [s.l.]: [s.n.]. Dostupné online. ISBN 9781595936417. DOI 10.1145/1235000.1235007. S2CID 2741073. S. 28. 
  6. a b EYKELHOFF, Maarten, 2007. Communication in global software development. referaat.cs.utwente.nl. Dostupné online. 
  7. CONCHÚIR, Eoin Ó; \AAGERFALK, Pär J.; OLSSON, Helena H.; FITZGERALD, Brian. Global Software Development: Where Are the Benefits?. Commun. ACM. August 2009, roč. 52, čís. 8, s. 127–131. ISSN 0001-0782. DOI 10.1145/1536616.1536648. S2CID 663043. 
  8. TUTKIMUSKESKUS, Valtion teknillinen, 2012. Global software engineering : challenges and solutions framework. [s.l.]: [s.n.]. ISBN 9789513874599. OCLC 820775844 

Související články[editovat | editovat zdroj]