nav line

Zavedení systému kontinuální integrace (CI) do praxe 1/2

Praktické přednosti a úskalí zavedení systému kontinuální integrace (CI) nejen do prostředí webového integrátora aneb co jde snadno a co hůř, na co je nutné dát si pozor, ať se již jedná o nástroje, nebo lidi.

V současné době, se silnou konkurencí a vysokým tlakem na udržování jakosti/kvality výstupů, je nezbytnou součástí efektivního vývoje i webových aplikací kontinuální integrace (CI). Zavedení správně nastaveného a uceleného procesu CI nelze provést ze dne na den a není to ani zcela bez překážek. V neposlední řadě je důležitým aspektem i faktická rychlost distribuce změn do různých prostředí, kde kontinuální integrace výrazně pomáhá omezovat chybovost při zajištění dostatečné rychlosti.

Potřebné nástroje

Předmětem tohoto článku není podrobný rozbor z technického pohledu. Pro bližší představu doporučuji předchozí články Výhody kontinuální integrace a automatizovaného deploymentu z pohledu webové integrace a Verzovací systém a webintegrační projekty.

Pro obecnou představu uveďme alespoň základní výčet nástrojů a informačních systémů, které potřebujeme integrovat do výrobního procesu společnosti:

Výhody a nevýhody

Zavedení nových systémů znamená změny v infrastrukturní i procesní rovině a dotýká se principů fungování celé společnosti. Reakce jednotlivých pracovníků na tuto změnu v rámci organizace budou různé. Obecně velké změny nezpůsobují vlnu nadšení napříč celou organizací. Část pracovníků bude zastávat názor, že zaběhnutý systém je dostatečný a budou inklinovat k používání stávajících postupů. Druhá část pracovníků bude nerozhodná a bude čekat, zda budou změny prosazeny a jaké budou jejich důsledky. Tito lidé nebudou hlasovat proti změnám a ani je nebudou aktivně podporovat. A konečně poslední část pracovního kolektivu, nespokojená se současným stavem, bude změny více či méně podporovat. V poslední uvedené skupině je také možné identifikovat členy týmu, který se bude starat o správné nastavení nových systémů a údržbu. Kromě vlastní technické podpory má poslední skupina také značný psychologický vliv na své kolegy, které může přirozeně přesvědčit o pozitivním charakteru změn v pracovních postupech. Nadšení příznivci se budou rádi učit novému systému a přirozeně nakazí svým nadšením kolegy. Změny pak nebudou přijímány čistě jako "shora nadiktované", ale skutečně přínosné. Nechápejme to ovšem špatně. Skupina kritiků se nám nesnaží kazit pokrok, pouze je nutné jasně popsat, co za hodnotu získají výměnou za své dočasné nepohodlí. Nejčastější námitky proti změnám, které přináší implementace infrastruktury a procesu kontinuální integrace:

  1. naučit se ovládat nové nástroje stojí čas navíc,
  2. nové nástroje postrádají funkce těch starých,
  3. změny způsobují nejasnosti v zaběhnutých postupech a vedou k chybám,
  4. přibývají nové standardy a omezení,
  5. automatizací se snižuje kontrola vývojáře nad procesem nasazování a kódem nasazeným do běhového prostředí.

Protiargumenty:

  1. pracovníci zvyšují svoji kvalifikaci a rozšiřují své znalosti,
  2. moderní systémy podporující kontinuální integraci mají většinu vlastností systémů dříve používaných a kromě toho:
    • obsahují doplňky/rozšíření, které mohou částečně až úplně nahradit funkce starého systému,
    • umožňují integraci na další systémy zapojené do procesu kontinuální integrace,
    • umožňují integraci na bug & issue tracking systémy,
    • obsahují nové funkce využitelné pro zefektivnění práce,
  3. krátkodobé zhoršení efektivity je vyváženo dlouhodobě stabilnější úrovní a kvalitnějšími (lépe odhadnutelnými) výstupy směrem ke klientům,
  4. v jasně vymezeném systému jsou standardy pracovníkům zároveň návodem, který určuje vždy opakovatelný postup, větší změny dávají prostor pro zásadnější přepracování dosud zavedených bezpečnostních modelů do kvalitativně lepší podoby,
  5. nahrazení ruční práce automatizovaným nástrojem snižuje prostor pro chyby způsobené lidským faktorem a umožňuje omezení odpovědnosti na menší okruh lidí. Zde je navíc výhodou, že se vývojář nemusí starat po odevzdání své práce o to, zda a kam byla nasazena.

Kde hledat dobrou radu a pomocnou ruku?

Zavedení nových systémů a jejich nastavení pro specifika společnosti představuje nezanedbatelný čas. Některé pokusy mohou skončit nezdarem nebo se určitý směr může ukázat jako slepá ulička. V každém případě ale získáme cennou zkušenost, byť nás to stojí drahocenné zdroje. Zavedení uceleného systému může představovat řádově stovky hodin práce. Kvalitní informace dokáží pracovníkům ušetřit značnou část času potřebného pro osvojení nových dovedností a v neposlední řadě také ušetřit naší nervovou soustavu.

Dostupné zdroje informací:

  • internet – na internetu najdete dokumentaci, návody, osobní zkušenosti jednotlivců i diskuze na dané téma,
  • zákaznická podpora a komunita – pro pomoc můžete využít u komerčních produktů zákaznickou podporu, u open source komunitu vývojářů,
  • semináře, školení – stejně jako v jakémkoliv jiném oboru, i zde lze nalézt školení a semináře,
  • konzultant – subjekt se zkušenostmi.

Výše uvedené možnosti jsou seřazené víceméně podle finanční náročnosti a také odráží kvalitu podpory, kterou získáte. Open source i komerční systémy bývají out-of-the-box řešení přednastavená podle nejběžnějších požadavků uživatelů, takže většinou můžete začít pracovat téměř okamžitě. Řada informací je dostupná zdarma, stačí je pouze umět najít. Čas ovšem není zadarmo a hodiny strávené experimentováním na vlastní pěst může vyvážit osobní konzultace.

Aby byl přechod co nejméně bolestivý, je výhodné zapojit externího konzultanta specializovaného na kontinuální integraci nebo navázání spolupráce se společností z vašeho oboru, která již má systém zavedený a úspěšně ho využívá. Subjekt, který je v přechodu od neřízeného systému ke kontinuální integraci zkušený, vám zprostředkuje:

  • osobní zkušenosti, díky kterým se můžete vydat správným směrem,
  • varování před řadou omylů plynoucích z experimentování s novými nástroji a procesy,
  • pomoc se základním nastavením, které byste museli objevovat vlastními silami,
  • doporučení, jakým způsobem základní nastavení upravit na míru vaší organizaci.

Mimo to bude mentorem a vzorem pro vaše pracovníky, přítomnost takového člověka obvykle zvyšuje náklonost kolektivu ke změnám.

Změny zavádějme postupně

Převrátit všechny systémy naruby není rozumné ani technicky ani organizačně. Například údržba běžících projektů vyžaduje, aby dopad změn byl co nejmenší. Zde doporučujeme vyladit proces na vybraném projektu a pak proces aplikovat na projekty další. Při výběru vhodného kandidáta je dobré zohlednit, aby projekt nebyl příliš malý a generoval dostatečné množství změnových požadavků, na kterých si proces budeme moci ověřit a naučit se jej. Navíc to pro zúčastněné bude představovat menší šok.

I přes veškerou snahu o hladký průběh a maximální efektivitu nebude vše dokonalé, logicky se nedá předcházet veškerým rizikům. Neočekávané události vyžadují při řešení v průběhu vývoje určitou dávkou improvizace a inspirace. Pokud s tímto rizikem ovšem budete dopředu počítat – a obzvlášť pokud zapojíte odborného konzultanta – překlenete období zavádění změn hladce a ke spokojenosti vývojářů, vedení i klientů.

V druhém díle tohoto článku se zaměříme na praktické zkušenosti s nasazením některých z výše uvedených nástrojů a informačních systémů při budování procesu kontinuální integrace v prostředí webového integrátora.

Ohodnoťte článek

Zavedení systému kontinuální integrace (CI) do praxe 1/2

Související články

Vyhledávání na blogu

Webová integrace

Webová integrace jako nová oblast pro business „velkých" webových agentur.

o webové integraci

Profily blogujících