Agilní Architektura

Poslední dobou dostávám hodně otázek na to, jak má fungovat architektura v Agilních týmech. Čistý Scrum roli architekta nemá. Mluví o samoorganizujících se zastupitelných týmech. Když to škálujeme dál, tak se mluví o Scrum of Scrums. Ale architekti nikde. To ale neznamená, že nejsou potřeba.

Jak to tedy vypadá v jednoduchém případě jeden Product Owner, jeden produkt, jeden Scrum tým. Tam je architekt součástí týmu. Je to zkušený vývojář, který se dívá dopředu na celý produkt a pomáhá týmu zvolit takové řešení, které vyhovuje celkové vizi produktu. A protože Scrum má pravidlo, že tým pomáhá Product Ownerovi, pak takový architekt spolupracuje s Product Ownerem na tvorbě Backlogu. Pomáhá mu odstraňovat rizika, dodefinovává akceptační kriteria.

Když to škálujeme na větší produkty, kde je více týmů, pak obvykle máme dva typy architektů. Jednoho – ‘velkého‘ – který je na úrovni celého produktu a stanovuje pro týmy takzvanou runway, v rámci které by se měli držet. Takový architekt je součástí týmu Product Ownera a dívá se spolu s ním klidně i několik let dopředu. Zároveň v každém týmu je takový ‘menší‘ architekt, který týmu pomáhá porozumět dané architektonické runway a dělat v rámci ní každodenní drobná rozhodnutí. Všichni tito architekti jsou samozřejmě v častém kontaktu a společně definují architekturu produktu. Jedna z dobrých best practices je, že na takovýchto velkých projektech dělají týmy nejen review mezi sebou, ale věci zrevidované v rámci týmu posílají na takzvané architecture review ‘velkému‘ architektovi. Ten samozřejmě neprochází v detailu všechny změny, ale dává pozor, aby změny byly konzistentní a odpovídaly dané architektonické runway.

No a jestli chcete o Agilní architektuře vědět víc, přihlaste se na workshop “Architecture with Agility“ který vede Kevlin Henney před konferencí Agile Prague 2014, v pátek 12. září. Nebo na konferenci samotnou 15.-16. září, kde jedna z keynote, kterou přednese Peter Eeles, je na téma “Architecture, Agile and DevOps“.

A co o workshopu píše Kevlin?

  • I will be covering the following topics during the day:
  • Defining software architecture as a service to the business
  • The relationship between development process and software architecture
  • The relationship between architecture and development teams and practices
  • The importance of code habitability
  • Empirical processes and architectural decisions as hypotheses
  • The Worse Is Better approach versus the up-front approach to architecture
  • Dealing with uncertainty and change, and using uncertainty and change to define the architecture
  • Architectural properties and requirements
  • Different architectural styles and patterns and their trade-offs
  • Identifying and managing technical debt
  • Refactoring, rewriting and re-engineering
  • Decoupling and dependency management

Jsou odhady zbytečné? #NoEstimates

Poslední dobou začíná být hodně populární neodhadovat User Stories. Proč? No když je umíte dobře definovat, stačí spočítat počet User Stories za Sprint a máte velocity. Bez dlouhých diskusí o bodech. Umožňuje vám to jak plánovat reálné množství práce, tak předvídatelnost v rámci produktu. Ono na tom něco je, když totiž umíte dobře definovat User Stories, tak to opravdu stačí. Ale… Co když neumíte, a teprve začínáte se Scrumem, nebo Agilem experimentovat? Jste zvyklí na mandays a hodiny, místo User Stories máte klasické requirementy? Pak je tato praktika téměř nereálná. Relativní jednotky – body – vám totiž pomáhají se spoustou věcí. A to číslo je překvapivě jen vedlejším produktem. Není samo o sobě důležité. Takže proč odhadujeme v bodech? Pomáhá nám to soustředit se na hodnotu pro zákazníka a ne na technické komponenty. Pomáhá nám to zvolit takové řešení, abychom co nejsnadněji dosáhli business cíle. Pomáhá nám to učit se komunikovat napříč departmenty (development, testing, business), a všechna ta diskuse, kterou okolo funkcionalit vedeme, z nás dělá dobrý tým. Učíme se dobře definovat funkcionality tak, aby tomu tým rozuměl. Diskuse okolo ohodnocení nám také pomáhají prioritizovat jednotlivé funkcionality. Ze začátku jsou nekonečně dlouhé. Tak byste radši vzali zkratku a než se naučíte chodit, jezdit na kole, lyžích, bruslích byste raději začali rovnou řídit auto nebo pilotovat letadlo. Teoreticky to možné je, ale v praxi takové zkratky moc nefungují. Takže jestli už nejen děláte Agile, ale jste opravdu Agilní, rozumíte Agilnímu mindsetu, máte pravý samoorganizující Scrum tým, tak je možná na čase to zkusit.

Jestli chcete vědět víc, ráda vás pozvu na konferenci Agile Prague 2014, 15.-16. září, kde o tom bude mluvit Vasco Duarte ve své přednášce “How to improve software project estimates – The #NoEstimates view“.