Co znamená agilní?
Agilní je termín, který se používá k popisu přístupů k vývoji softwaru, zdůraznění přírůstkového doručování, týmové spolupráce, průběžné plánování a učení. Agilní proces není tak velký, jako je filozofie nebo myšlení pro plánování práce, kterou bude tým provádět. Je založený na iterativním vývoji a pomáhá týmu lépe plánovat a reagovat na nevyhnutelné změny, ke kterým dochází při vývoji softwaru. Sledujme diskusi Mary s Andym po poslední vydané verzi.
Mara se domnívala, že učinila krůčky k tomu, aby vyvolala zájem týmu o DevOps, ale vývoj nějak ustrnul. Tým byl příliš zaneprázdněný opravami chyb v poslední verzi, než aby měl myšlenky na něco jiného.
Vzpomeňte si, že Irwin, produktový manažer, poskytl týmu poměrně kritickou zpětnou vazbu zákazníků na závodní herní web. Vyřešit tyto problémy nebyla žádná legrace. Andy a Mara psali kód a předávali ho Amitě k testování. Amita pokaždé našla nové chyby a musela kód vrátit. Buildovací server selhal. Tim nemohl získat web hry pro práci v produkčním prostředí, i když pracoval ve vývojovém a testovacím prostředí. Všichni pracovali dlouhou dobu a ztratili pár víkendů.
Po odeslání uvolnění se Mara a Andy sedli na kávu. Oba byli unavení. Mara byla odrazována, ale Andy měl jiný postoj.
Andy: Nevím, proč jsi překvapen. Dostat software ven je těžké. Je to vždycky dřina. Bylo to u tebe někdy jiné?
Maro: Mám a myslím, že bychom to mohli usnadnit i tady. Opravdu si myslím, že DevOps by nám mohlo pomoct.
Andy: Pamatuji si, že jsme provedli mapování hodnotového toku, ale co teď? Musíme začít na nové verzi. Myslel jsem, že jsme s DevOps skončili.
Mara: Je toho mnohem víc, co můžeme udělat. Myslím, že bychom měli udělat první krok – nějaké agilní plánování. Azure Boards nám může pomoct.
Andy: Co myslíte agilním?
Mara: Agilní přístup k vývoji softwaru. Pojem Agile (agilní) byl poprvé použit v roce 2001 v prohlášení Manifesto for Agile Software Development. Toto prohlášení zavedlo některé hlavní principy lepšího přístupu k vývoji softwaru. V prohlášení se uvádí:
Větší hodnotu mají:
- Jednotlivci a interakce nad procesy a nástroji.
- Funkční software v komplexní dokumentaci.
- Spolupráce zákazníků přes vyjednávání smluv
- Reagování na změnu podle plánu.
Andy: Podívej, jestli znáte nějaký kouzelný způsob, jak usnadnit život, jsem pro to všechno. Když se vracím domů, moje děti už vždycky spí. Tohle ale vypadá hodně ošemetně, bez jakýchkoli konkrétních řešení.
Mara: Není to magie, ale můžeme to trochu udělat. Azure DevOps poskytuje nástroje, které potřebujeme k implementaci agilních postupů. Teď když chceme plánovat, můžeme použít Azure Boards. Můžeš mi nejdříve vysvětlit proces sestavení a pomoct mi zjistit, jaké jsou největší problémy?
Po spoustě kávy, Mara a Andy identifikují největší problémy v procesu sestavení. Všechny problémy přišly během poslední verze. Když Andy odešel, podívala se Mara na své načmárané poznámky a rozhodla se, že sama provede trochu agilního plánování. Sama použije proces Basic v Azure Boards, aby dostala všechny problémy na jedno místo.
V dalším kroku ukáže panel členům týmu a zapojí je.
Doporučení pro přijetí agilního přístupu
Tým se připravuje, aby se chystal provést první kroky k přijetí agilního přístupu. Tady je několik obecných doporučení, která může každý tým použít k začlenění agilního přístupu do organizace.
Vytvoření organizační struktury, která podporuje agilní postupy
Pro většinu organizací může být přijetí agilního přístupu obtížné. Vyžaduje posun mysli a posun kultury, který čelí mnoha stávajícím zásadám a procesům v rámci organizace. Tradičně většina společností používá vodorovnou strukturu týmu. V praxi to znamená, že týmy odpovídají architektuře softwaru. Může být například tým zodpovědný za uživatelské rozhraní aplikace, jiný tým zodpovědný za data a jiný tým zodpovědný za architekturu zaměřenou na služby.
Vertikální týmy ale poskytují lepší výsledky pro agilní projekty. Vertikální týmy pokrývají architekturu a jsou v souladu s výsledky produktů. Může se například jednat o tým zodpovědný za e-mailovou část aplikace a členové týmu pocházejí ze všech tří dříve zmíněných disciplín. Další výhodou vertikální struktury týmu je, že škálování probíhá přidáním týmů.
Členové týmu Mentor o agilních technikách a postupech
Když se poprvé začnou používat agilní techniky a postupy, některé týmy se rozhodnou najmout externí trenéry. Trenéré můžou dokonce pracovat s více týmy, aby pomohli odstranit organizační překážky a sila, takže často mají jak výuku, tak manažerskou dovednost. Členové týmu můžou také trénovat v agilních technikách, například jak spouštět samostatné schůzky a kontrolovat je. V průběhu času je ale důležité, aby členové týmu vyvinuli schopnost vzájemně se mentorovat. To znamená, že většina práce by měla být provedena společně, a ne jednotlivci, kteří tráví většinu svého času prací sami.
Povolení týmové spolupráce a spolupráce mezi týmy
Pokud je spolupráce klíčem k tomu, aby byla agilní spolupráce úspěšná, jaké jsou některé způsoby, jak ji můžete podpořit? Tady je několik nápadů.
Kulturní změna
Při změně kultury mějte na paměti několik věcí. Je důležité, aby členové týmu měli klidné a pohodlné místo pro práci. Potřebují mezery, kde se mohou soustředit, bez velkého rušivých prvků a hluku.
Schůzky jsou faktem života a mohou mít pocit, že převezmou pracovní život člověka. Aby členové týmu měli větší kontrolu, schůzky potřebují program a striktní časové rámce.
Asynchronní komunikace, jako jsou e-maily a zprávy, můžou být ohromující a lidé často cítí, že musí být okamžitě zodpovězeni. Ujistěte se, že ne všechny tyto komunikace potřebují okamžitou reakci.
Členové vzdáleného týmu jsou teď v mnoha společnostech normou. Všichni se musí cítit pohodlně se všemi členy týmu a zacházet s nimi stejně, ať už jsou v kanceláři nebo pracují mimo pracoviště. Spolupráce prostřednictvím komunikace by se měla stát součástí DNA organizace.
Důležitost dobré komunikace nemůžeme přefaklit, i když se neshodují. Řešení konfliktů je dobrou dovedností pro všechny agilní týmy, které mají.
Týmy napříč funkcemi
Stejně jako je důležité, aby členové týmu spolupracovali, je také důležité, aby týmy vzájemně spolupracovaly. Mezifunkční týmy přidávají nové dovednosti a perspektivy, které můžou rozšířit schopnost všech uživatelů řešit výzvy kreativním způsobem. Týmy napříč funkcemi také ztěžují celou organizaci co nejhesivnější. Snižují turf války a zvyšují smysl, že všichni pracují na společném cíli.
Nástroje pro spolupráci
Dobré nástroje můžou členům agilního týmu pomoct efektivněji spolupracovat, a to jak v rámci týmu, tak i s ostatními týmy. Tady je několik návrhů, které vám pomůžou začít:
- Microsoft Teams: Teams je aplikace, která poskytuje pracoviště pro chat, schůzky, poznámky a úložiště souborů.
- Skype: Skype je snadno použitelný a dobrý nástroj pro obecné účely. Mnoho lidí ho už má nainstalované.
- Slack: Slack poskytuje mnoho samostatných komunikačních kanálů, a to vše od jednoho rozhraní. Tyto kanály můžete uspořádat mnoha způsoby, například podle projektu, týmu nebo tématu. Konverzace se zachovají a jsou prohledávatelné. Přidávání interních i externích členů týmu je snadné. Slack se přímo integruje s mnoha nástroji třetích stran, jako je GitHub pro zdrojový kód.
Mezi další běžné nástroje patří Google Hangouts, Asana, Trello, GoToMeeting a monday.com. Zkuste se seznámit s možnostmi, abyste viděli, které z nich vyhovují potřebám vašeho týmu a vaší společnosti.