Trendy ve vývoji softwaru a hardwaru
Pokročilé techniky programování, online interakce, týmové programování a robot na testování
Praktiky v odděleních výzkumu a vývoje větších globálních vývojových týmu se neustále vyvíjejí dopředu. Za poslední dva roky ovlivněné covidovou krizí, která způsobila separaci lidí i celých týmů, došlo k významné změně fungování, kdy se většina vývojářů přesunula na home office a dále se do kanceláří nemusí a ve většině případů ani nebudou vracet. Tento trend vyžaduje změnu v myšlení, přístupu, ale také rozšíření nebo zavedení nových nástrojů a vybavení. Nahlédněte na tipy z vývojového týmu naši společnosti, která se zabývá vývojem softwaru, hardwaru, cloudových služeb a 3D tiskových aplikací.
Vizuální kolaborativní nástroj Miro
Tento online kolaborativní nástroj umožňuje interakci prakticky neomezeného počtu lidí v jednom okamžiku, přičemž lze v reálném čase velmi dobře vidět aktivitu připojených lidí, jejich akce, vkládání myšlenek, komentování apod. Zavedení tohoto unikátního nástroje umožnilo efektivní fungování napříč celým oddělením vývoje a výzkumu, umožnilo efektivně pořádat velké schůze (+100 lidí) nezávisle na tom, jestli jsou kolegové dostupní na home office nebo v kanceláři.
Po zavedení tohoto nástroje jsme zjistili, že pro velké schůzky (+100 lidí) je mnohem efektivnější použít tento nástroj, než organizovat tyto debaty onsite v kanceláři. Z našich zkušeností se zkrácení času na vytvoření výstupu může pohybovat v jednotkách i desítkách hodin. Tento nástroj používáme primárně pro organizaci celého vývoje, tzn. plánování, reviews, pro drobnější diskuse, brainstormingy, prezentace nápadů i výsledků.
Pokročilé techniky programování
Stále rozšířenější praktiky programování v oddělení vývoje a výzkumu, kdy je do samotného programování zapojeno v jednom okamžiku více lidí. V pair programmingu typicky programují 2 kolegové, střídají se, učí se od sebe a spolupracují.
Oproti tomu do mob programmingu je zapojeno více vývojářů nebo rovnou celý tým, vývojáři se typicky střídají po vymezené době. Hlavní výhody těchto technik je vzájemné učení se a sdílení znalostí i mimo vlastní tým, včasné nalezení chyb a potenciálních problémů „víc očí si víc všimne“. Zároveň je toto klíčová technika pro rozšiřovaní vysoce specifické znalosti dané části zdrojového kódu, která umožňuje více lidem nebo týmům pracovat na tomto zdrojovém kódu.
Code-review techniky
Při použití Code-review technik je každá změna do zdrojového kódu revidována nejprve automatickými procedurami v rámci vývojových nástrojů a poté důkladnou revizí od dalších kolegů např. samotné implementace, dodržování coding conventions a dokumentace v kódu. Code review je automaticky vyvoláno při každém pull requestu, tzn. pokusu o vložení nového nebo upraveného zdrojového kódu do centrálního repozitáře přes Attlasian nástroje JIRA a bitbucket. Code review je důležitý bezpečnostní prvek, který zlepšuje kvalitu kódu a celého produktu, ale také je klíčové pro udržování znalostí a expertízy napříč oddělením vývoje a výzkumu.
Univerzální zaměření programátora (T shape)
Významným trendem posledních let je multi-technologické zaměření developerů ve vývoji a výzkumu, které spočívá v univerzálnosti programátora a chuti učit se a rozvíjet i v jiných oblastech. Programátor se zaměřuje na svou hlavní expertízu (pro Y Soft typicky programátor v JAVA nebo programátor v .NET), ale zároveň je schopný práce v jiných technologiích a tímto si buduje „univerzální přehled“ a dovednosti programování v různých technologiích a nástrojích. Hlavní klíčová expertíza zůstává a dále roste, ale zároveň rostou znalosti a dovednosti i mimo tuto hlavní oblast. Obrovskou výhodou tohoto přístupu je flexibilita vývojářů a v důsledku také vývojových týmů, a tím pádem vysoká schopnost pře-orientace na potřebnou část produktu, nebo rozšiřování technologií.
Automatický robot na testování
Automatizace robotického testování slouží pro provádění automatických testů integrovaných (embedded) zařízení.
Oddělení vývoje a výzkumu je závislé na přístupu k multifunkčním tiskárnám a dalšímu specifickému HW, což je zajištěno za pomocí Automatického testovacího robota (YSoft AIVA). Vybrané multifunkční tiskárny jsou osazeny robotickou rukou, senzory, kamerami a dalším vybavením. V okamžiku, kdy vývojář potřebuje vyvíjet nebo testovat na vybrané tiskárně, rezervuje si robota a na dálku takto ovládá multifunkční tiskárnu nebo jiný potřebný HW. Oproti obsluze člověkem má tento přístup ještě další výhody, robot je dostupný 24/7, je snadné sdílet jeden model tiskárny napříč celým oddělením vývoje, scénáře jdou jednoduše automatizovat, ukládat a opakovaně je spouštět, a robot umí věci, kterých člověk není schopný (např. opakované přesné měření).
Continuous Integration/Continuous Delivery techniky
Při Continuous Integration/Delivery oddělení výzkumu a vývoje využívá centrálně umístěný zdrojový kód v nástroji Attlasian Bitbucket, který je pravidelně sestavován za pomocí nástroje Attlassian Bamboo. Pro Attlassian Bamboo je trendem posledních let možnost vytvářet a ukládat sestavovací plány ve formě kódu (Build plans as code). Přístup a správa těchto build plánů je pak prakticky stejná jako pro jiný zdrojový kód, je velmi jednoduché build plány měnit, rozšiřovat a kopírovat, dohledat všechny změny do minulosti, platí zde stejná pravidla pro code review, apod.
Jakub Pavlák Autor článku je R&D Manager a Robots innovator ve společnosti Y Soft. |