Jaké výhody vám nabídne GitHub?

12. 11. 2016

Sdílet

 Autor: © Andreas Haertle - Fotolia.com
Git umožňuje programátorům koordinaci distribuované práce v rámci týmů –-- a GitHub to umožní i všem ostatním.

Existuje důvod, proč vývojáři softwaru jsou před ostatními v různorodě pronikající budoucnosti: Jejich pracovní nástroje vždy byly digitálními výtvory a už od vzniku komunikačních sítí byly jejich pracovní procesy propojené.

Nástroje pro práci vývojářů a kultura obklopující používání těchto nástrojů mají tendenci pronikat i do hlavního proudu lidské společnosti. Ve zpětném pohledu se zdá být zřejmé, proč e-mail a rychlé zprávy (instant messaging) – oboje využívané vývojáři více než kýmkoliv jiným – dosáhly tak masového rozšíření. Tyto způsoby komunikace totiž měly smysl pro každého.

Je však méně zřejmé, že Git, nástroj vynalezený ke koordinaci vývoje linuxového jádra, a GitHub, kultura založená na tomto nástroji, která ho obklopuje, by mohly získat stejnou relevanci.

Většina lidí nepotřebuje pro svůj život programování. S tím, jak pracovní produkty a procesy každé profese stále více procházejí digitalizací, bude mnoho z nás tíhnout k řešením navrženým ke koordinaci naší práce přes sdílené digitální nástroje. To je důvod, proč si Git a GitHub nacházejí cestu do pracovních postupů, které vytvářejí artefakty jiné, než je programový kód, nebo se neomezují jen na něj.

GitHub se používá k řízení na spolupráci založeného vývoje návodů, hudebních partitur, knih, fontů, právních dokumentů, výukových lekcí a programů či datových souborů. Jak je to možné vzhledem k neblaze proslulé složitosti Gitu?

Jedním z důvodů je to, že GitHub postupně zpřístupňoval další základní schopnosti Gitu přes své webové rozhraní. Dalším důvodem je vznik webových aplikací používajících GitHub jako platformu.

A potom je tu kulturní faktor: GitHub ztělesňuje určitý způsob spolupráce. Dave Winer to popisuje slovním spojením „vyprávět svou práci“. Lze se setkat i s pojmem „pozorovatelná práce“, hnutí Responsive Organization zase vychvaluje „transparentnost nad soukromí“ a pro Bena Baltera, evangelistu GitHubu pro vládní sféru, je to „otevřená spolupráce“. 

Blogový příspěvek Baltera je hostován na veřejném repozitáři GitHubu, takže lze příspěvek číst nejen ve formě jeho konceptu, ale také sledovat diskuzi s pozvanými recenzenty a sledovat, jak debata koncept ovlivnila.

Repozitář samozřejmě nemusí být otevřen pro veřejnost, ale každá organizace by měla chtít, aby její interní procesy využívaly tento styl otevřené spolupráce. Podle Briana Dolla, viceprezidenta strategie GitHubu, přesně toto dělá rostoucí počet společností.

Často se v současné době říká, že každá organizace je softwarovou společností. Je to pravda abstraktním způsobem, pokud definujete duševní vlastnictví jako software. Je to však také pravda doslovně u mnoha firem, jejichž hodnota je vtělena do softwaru vyvíjeného interně.

Vždy bylo žádoucí rozšířit účast na tomto vývoji nad rámec tradičních oborů, jako jsou programování kódu, testování, zajištění kvality a dokumentace. Pokud se však váš možný příspěvek zakládal právě na vašem pochopení podniku a zákazníků, nemohli jste se angažovat přímo.

„To je šílené,“ říká Brian Doll. „Jste-li banka, jsou nástroje pro správu majetku používané vašimi zaměstnanci a zákazníky produktem, takže jak je vůbec možné, aby tito lidé neměli přímý vliv na jejich zlepšování?“

GitHub umožňuje, aby se každá zainteresovaná osoba mohla stát účastníkem první třídy. Namísto psaní e-mailů, které obíhají v systému neoficiálně, mohou posílat požadavky a diskutovat o souvisejících otázkách přímo v tomto systému.

 

Zkrocení šelmy Git

Git, decentralizovaný stroj pro řízení verzí pod kapotou GitHubu, pracuje způsobem, který překvapí nejen neprogramátory, ale i programátory, jež jsou zvyklí na centralizovaná řešení.

V těchto systémech je velký problém založit větev v rámci repozitáře kvůli prozkoumání alternativní verze sady artefaktů. Ve větvi Gitu je větev lehká konstrukce, iluze vytvořená přesunem ukazatele namísto dat.

V konvenčním systému by bylo nemyslitelně nákladné vytvořit větev pro změnu jednoho slova v dokumentu. Git takovou manipulaci umožňuje při zanedbatelných nákladech. A GitHub to dokáže integrovat do pracovního postupu (žádost pull), který diskuzi nad změnou zapouzdří a připojí k historii změn dokumentu.

Všestrannost funkcí Gitu z něj udělala laboratoř pro inovace pracovních toků a mnoho přístupů, které se objevily, představuje další vrstvu složitosti. Mechanika větvení a slučování je dost složitá, ale existují také různé přístupy, kdy a jak to činit. To vše je problémem i pro programátory, natož pro většinu ostatních. Jak tedy zkrotit tuto šelmu, aby se mohli zúčastnit i netechničtí zájemci?

Odpovědí GitHubu je zlepšit web pro základní aktivity. Právnička, která chce změnit jedno slovo v důležitém dokumentu, nemusí používat děsivého klienta Gitu a může soubor upravit v prohlížeči.

Tato akce vyvolá požadavek pull v pracovním toku, který automatizuje vytvoření větve vyhrazené pro navrhovanou změnu. Lidé kolem GitHubu rádi říkají, že existuje jen jeden způsob, jak něco změnit. Nikdo sice není povinen toto zlaté pravidlo dodržovat, ale dodržením vzniká cesta nejmenšího odporu.

V důsledku toho může kdokoli ve společnosti, pracující s GitHubem, snadno přijmout tento osvědčený postup. „Namísto reptání u automatu na nápoje, že je software strašný, máte způsob, jak to změnit,“ doporučuje Brian Doll. Každý může použít stejný mechanismus – ať už je příspěvek k této změně v podobě kódu, dokumentace, právní rady nebo jde o obchodní perspektivu či názor zákazníků.

Hodnota takové sdílené metody, pravděpodobně nejvýznamnější inovace GitHubu, je obohacena o dalších metody získané ze sociálních médií. Na Twitteru například můžete upozornit jiného uživatele služby Twitter uvedením jejich uživatelského jména. Tato metoda funguje na GitHubu pro jednotlivce i pro týmy.

K dispozici je také služba GitHub Pages, která hostí weby na vrcholu repozitářů GitHubu. Je oblíbená technickými bloggery, kteří znají Git a jsou ochotni si nainstalovat (a lokálně používat) generátor stránek Jekyll, založený na jazyku Ruby. Jak ale zjistili jiní, nemusíte si Jekyll instalovat – web ve službě GitHub Pages lze totiž kompletně spravovat v prohlížeči a využívat výhod historie verzí a diskuzí k vydání.

Vizualizace změn

Správa verzí a vizualizace změn jsou do práce na vývoji softwaru hluboce zapojené. V současné době by žádný schopný programátor ani nepomyslel na diskuzi nad navrhovanou novou variantou nějakého kódu bez použití nástroje „diff“, který ukazuje přesně to, co se změní...

Tento příspěvek vyšel v Computerworldu 1/2016. Oproti této on-line verzi je výrazně obsáhlejší a přináší další poznatky a tipy, které lze využít při praktické implementaci u vás ve firmě.

ICTS24

Časopis (starší čísla i předplatné těch nadcházejících) si můžete objednat na adrese našeho vydavatelství.