Zavádění nové technologie

Někdy to, co hledáte, bude jen malá knihovna, se kterou se seznámíte za večer, druhý den přidáte do projektu a třetí den jste na produkci… Jindy může jít ale i o celý nový programovací stack. Dnes se společně podíváme na proces zavedení nové technologie do našeho Trigama týmu. Čemu jsme čelili a co bylo potřeba řešit vám může naznačit, jakou cestou se vydat a vyvarovat se zbytečnému opakování chyb.

Tento článek vznikl pro firemní blog Trigama International s.r.o., originál najdete zde.

Příčina a důsledek

Náš tým došel zhruba před rokem a půl k tomu, že architektura JS projektů postavených kolem jQuery je dlouhodobě neudržitelná a že kvůli tomu se nám nedaří dělat tak dobře UXově vychytané webové stránky a na mobilní aplikace vlastně může náš tým také zapomenout. Po pečlivém výběru jsme jako tým zvolili React (a s tím související webpack, React Native, Babel, …). Jak ale zajistit, že v tom bude schopen pracovat celý tým?

Jak vyškolit tým?

Zvažovaných možností byla celá řada:

  • Nakoupit senior vývojáře – pomocí nich vytvořit míchaný tým senior vývojářů a zcela juniorních lidí. Když natrefíte na dobré lidi, bude to fungovat výborně, jenže ne všichni senior vývojáři chtějí učit ostatní.
  • Offline kurzy – poslat dosud nepolíbené vývojáře na kurz klíčových technologií. Případně lze zařídit i ve variantě zvaných přednášek a workshopů.
  • Online kurzy – vybrat na internetu dostatečně obsáhlé, pokročilé a aktuální online kurzy a ty potom v celém týmu absolvovat.
  • Odborné knihy – výrazně neinteraktivní a často řešící spíše samotnou technologii než vystavění projektu z ní. Obecně má část vývojářů problém se skrze ně prokousat.
  • Komunitní akce/konference – vyplynulo nám, že fungují spíše jako inspirační zdroje, než že by člověku poskytly ucelenou znalost a schopnost.

Naše cesta

Co jsme provedli a co se nám osvědčilo:

  • Online kurz – vybrali jsme dva kurzy na Udemy a zhruba polovina lidí absolvovala jeden a polovina druhý, vznikl slušný potenciál ke konfrontaci, avšak v některých bodech byla konfrontace udělána příliš pozdě (ptejte se „Proč děláš/používáš toto takto?“).
  • Team-wide – vyberte lidi a z nich utvořte skupinu (nový tým), který bude tuto technologii řešit, založte kanály na Slacku a dejte jim prostor. Naopak se pokuste z tohoto prostoru vystrnadit všechny, kteří vyjadřují vůči příslušnému cíli skepsi, agresi atp.
  • Čas strávený na kurzu je práce – alespoň částečně musí být čas na online kurzu považován za práci, výrazně to zvýší šance, že lidé kurz budou dělat a dokončí jej. Naopak absolvovat 20+ hodin ve svém volném čase není pro zadané či rodinou obdařené členy týmů úplně reálné.
  • Deadline – stanovte si, do kdy by kurz měl být dokončen.
  • Programujte brzy – opravdu programujte přidělené úkoly, zkoušejte si své vlastní drobné experimenty, a jakmile se na to budete aspoň trochu cítit, začněte to používat na nějakém pracovním projektu (i kdyby to bylo v režimu proof of concept).
  • Bavte se – proč se věci dělají, jak se dělají, co je hezčí, použitelnější nebo správnější? Jaké jsou best practices? Co jsou související a podobné technologie? Nehledejte fanaticky správná řešení, nebojte se najít správné věci vyzkoušením špatných a naučte se řešit nerozhodnost.
  • Sledujte technický dluh – obzvláště u prvních projektů, které bude tým s nově nabytými zkušenostmi realizovat, velmi pečlivě sledujte technický dluh (například skrze retrospektivy), a hlavně ho nezapomeňte splácet (z našeho prvního projektu plyne, že pokud není technický dluh v rozmezí 10–15 %, pravděpodobně ho ještě přehlížíte). Ale hlavně – nebojte se ho! Technický dluh zkrátka bude u těchto projektů vznikat, ne všechno vymyslíte správně hned napoprvé, chybami se člověk učí. Mimo jiné se vám krátkodobě propadne efektivita code review a zvýší počet bugů.
  • Vyhodnoťte volbu – s odstupem po realizaci prvního projektu se všichni sejděte a zhodnoťte volbu technologie, jaké možnosti to přineslo/vzalo, kolik to rámcově stálo a co z toho plyne pro další projekty.

Celkově vzato hodnotíme rozšíření znalostí našeho PHP/Nette týmu o znalost React (Native) během roku a půl jako výrazný úspěch, který naší firmě otevírá nové možnosti na poli webových aplikací, progresivních webových aplikací či mobilních aplikací.

 
22. 4. 2020 20:36 programming


Tagy

informace (20), návod (2), mysql (1), užitečné (7), internet (1), komix (99), ironie (1), humor (99), Bůh (2), škola (38), plánování (1), Čas (2), hříchy (1), otroctví (1), esej (4), Erasmus (24), project management (2), programming (17), teamwork (1), bad code (1), práce (2), clean code (1), good architecture (1), společnost (3), rodičovství (2)

Hledání

Odběr zpráv

RSS feed Blog (RSS)