Ágil em Escala

Framework de Ágil em Escala

Escalar o Ágil não ocorre apenas em processo e metodologia, mas também em cultura, gestão de produtos e serviços. Para isso, é necessário refletir em como escalar os valores e princípios do Manifesto Ágil nas organizações:

Valores do Manifesto Ágil

  • Indivíduos e interações mais que processos e ferramentas;
  • Software em funcionamento mais que documentação abrangente;
  • Colaboração com o cliente mais que negociação de contratos;
  • Responder a mudanças mais que seguir um plano.

Princípios do Manifesto Ágil

  1. Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado.
  2. Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente.
  3. Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo.
  4. Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto.
  5. Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho.
  6. O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face.
  7. Software funcionando é a medida primária de progresso.
  8. Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente.
  9. Contínua atenção à excelência técnica e bom design aumenta a agilidade.
  10. Simplicidade–a arte de maximizar a quantidade de trabalho não realizado–é essencial.
  11. As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis.
  12. Em intervalos regulares, a equipe reflete sobre como  se tornar mais eficaz e então refina e ajusta seu comportamento de acordo.

Como percebemos, muitos dos valores e princípios são relacionados à cultura, e não métodos. Então escalamos ágil tanto em cultura, quanto em processos e produtos.

1. Atributos de Ágil em Escala

Quando diversas pessoas e times trabalham em conjunto, desenvolvendo diversas partes conectadas e integradas do produto final, é necessário realizar a gestão de dependências e sincronizar o trabalho de todos.

1.1 Gestão de Dependências

Este é um princípio importante de ágil em escala. Caso as dependências não sejam geridas pelo próprio processo ou pelas pessoas, muito desperdício haverá, tal como espera, retrabalho e estoque.

Existem diversas práticas de gestão de dependências. Uma delas é o Program Board utilizado pelo SAFe, o qual é criado na PI Planning (planejamento da iteração de programa) com todos os times, e mantido e atualizado ao longo das iterações. As dependências entre os times são mapeadas através das iterações (em vermelho na imagem a seguir).

Program Board do SAFe para Gestão de Dependências

Outra prática é do Spotify, definindo time a time quais tipos de dependências existem entre squads e tribos. Se a dependência é entre tribos, pode ser mais crítica, pois buscam dividir tribos para que não hajam dependências entre elas.

Gestão de Dependências no modelo Spotify

Em Kanban, a prática está em gerir as dependências com gestão visual, tornando o trabalho visível a todos num fluxo de trabalho representado num quadro. Para isso, divide-se os itens em Upstream e Downstream. Upstream representa a descoberta e priorização de itens, enquanto no Downstream o desenvolvimento de cada item puxado. No Kanban Maturity Model (KMM), essa prática de dividir o fluxo em Upstream e Downstream está no Nível de Maturidade ML3: Fit for Purpose, onde o fluxo de trabalho é escalado e adaptado ao que o cliente realmente necessita. Veja na imagem a seguir.

Upstream e Downstream representando a escala do fluxo de trabalho (ref. Kanban Maturity Model)

1.2 Sincronização

Para não haver espera e desperdícios relacionados a dependências, é necessária a sincronização do trabalho. Pode ser planejada em iterações, tal como no SAFe, ou realizada através de priorização em classes de serviço num fluxo contínuo de desenvolvimento, tal como em Kanban.

1.3 Pessoas

O ágil não escala sem a cultura ser disseminada entre as pessoas. De nada adiantará tendo processos e ferramentas ideais, se as pessoas não estiverem seguindo os valores e princípios ágeis.

O Spotify estabelece Guilds e Chapters para escalar ágil de uma forma orgânica tanto dentro das tribos, quanto entre tribos. Uma tribo é uma coleção de squads que trabalham em áreas relacionadas. Dentro das tribos, estabelecem Chapters (Capítulos) para troca de conhecimento especializado e focado na própria tribo. Já entre as tribos, as Guilds (Guildas) para troca de conhecimento organizacional e a nível de produto. Para escalar o ágil, estabelecem Chapters e Guilds de agilistas e agilidade.

Tribos, Squads, Guilds e Chapters no Spotify

2. Escalando Cultura

Escalar cultura está em levar os valores e princípios ágeis para as pessoas da organização. Existe uma grande diferença em fazer ágil e ser ágil. Fazer ágil é seguir processos, e ser ágil é agir e decidir conforme o manifesto ágil. A chave está em ser, além fazer ágil.

Para isso, pode-se estabelecer Agile Centers of Excellence (Agile CoEs), que é um grupo de especialistas em ágil na organização. Geralmente um grupo de agile coaches e agilistas. Na DBC, temos o DBC AGIL, um grupo de Agile Coaches, Scrum Masters e Agilistas com o objetivo de prover melhores serviços ágeis para clientes e projetos. Esse grupo possui uma liderança técnica de um Enterprise Agile Coach.

De uma forma mais orgânica, as Comunidades de Prática são grupos de especialistas ou interessados numa área do conhecimento, focados na mentoria e em troca de conhecimento sobre práticas e ferramentas. No Spotify também é chamado de Guilda (Guild). Na DBC, possuímos a CoP de Agilidade e a CoP de POs, as quais possuem encontros frequentes ou sob demanda própria do grupo.

Para engajamento das pessoas em maestria técnica e no aprender fazendo, a empresa pode patrocinar eventos organizacionais como Exploration Days, Hackathons ou ShipIt Days. Esses eventos podem ser organizados também a nível de times ou departamentos, o que torna mais acessível a realização. Exclusivamente para o time, Mob Programming é uma prática onde todos se reúnem e realizam uma tarefa por vez, gerando muito aprendizado e alinhamento com o trabalho ágil.

3. Escalando Produto

Ao escalar o ágil na organização, é necessário também pensar em formas e estratégias para escalar produtos em relação ao negócio e à qualidade interna do produto.

Para escalar o produto ao negócio, OKRs Objetivos e Resultados-Chave auxiliam a gerenciar metas flexíveis que engajem as pessoas que desenvolvem o produto. MVPs (Produto Mínimo Viável) podem ser desenvolvidos para testar o mercado e evoluir o produto, além coletar feedback dos usuários, numa visão de Lean Startup num ciclo de Construir, Medir, Aprender (Build, Measure, Learn).

Na organização do desenvolvimento de produto, é essencial ter um Backlog Único de Produto visível a todas as pessoas envolvidas. Também ter uma DoD (Definição de Pronto) Base para o produto, e então especializar essa DoD para cada time ou linhas de produto.

Na estruturação dos times e departamentos de produto, as tribos são divididas para desenvolver partes específicas do produto. Chapters auxiliam na melhoria do produto dentro de cada tribo.

Ao escalar um produto é preciso também investir na qualidade interna. “Você não pode escalar código malfeito” (“You can’t scale crappy code”). Essa frase do SAFe resume tudo. Práticas de eXtreme Programming (XP) e DevOps auxiliarão a construir um produto que suporte ser escalado. Diversas práticas de XP e DevOps tais como Design Emergente, YAGNI “You Ain’t Gonna Need It”, KISS “Keep It Simple, Stupid”, DRY “Don’t Repeat Yourself”, Posse Coletiva de Código, Padrão de Codificação, Revisão por Pares, Trabalho em Pares, Agile Testing, Automatização de Testes, Refatoração, Feature Toogles, Integração Contínua, Entrega Contínua, Deploy Contínuo, Monitoração, entre outras.

4. Escalando Processo

Ao escalar ágil na organização, é possível utilizar as estratégias de Gestão de Mudança Top-down ou Bottom-up, ou então de uma forma transversal que venho chamando de Processo Puxado. Top-down é quando a gestão da empresa demanda o ágil de uma forma diretiva (empurrada), através de uma decisão de cima para baixo na hierarquia da empresa. Bottom-up é quando um time inicia com métodos ágil, mostrando resultados e então escalando para outros times e departamentos.

Gestão de Mudanças de Processos de Ágil em Escala.

Processo Puxado é um formato transversal onde as práticas ágeis vão sendo utilizadas e combinadas conforme demanda, através de um ciclo de melhoria contínua. Inicia-se com o mínimo de processo possível, e frequentemente vai se adaptando. Não necessariamente através de retrospectivas, mas através de um processo contínuo de melhoria de processo.

Não há um formato ideal de abordagem para escalar ágil na organização. Tudo depende da estratégia, do contexto, da cultura, além da urgência e do momento que se está.

Agile Fluency Model é um formato bottom-up, onde se inicia com a cultura ágil nos times. Posteriormente, segue-se para a melhoria da entrega dos times, para apenas depois então focar na otimização e fortalecimento da organização. Veja na imagem a seguir.

Agile Fluency Model.

Nexus é framework do Scrum escalado. Segue os mesmos princípios do Scrum, porém para 3 a 9 times desenvolverem um produto único. Uma prática interessante nesse framework é que a reunião de Revisão da Sprint é realizada com todos os times, para reforçar a integração do produto. Algo que se deve estar atento ao utilizar o Nexus é que ele pode ter uma quantidade excessiva de reuniões. Em geral, Nexus é implantado top-down.

O Framework Nexus™ para escalar o Scrum

SAFe, Scaled Agile Framework, é um conjunto de práticas de ágil em escala para portfólio, soluções e sincronização de times. Muito mais que um framework, é um corpo de conhecimento (poderia se chamar de SABOK – Scaled Agile Body of Knowledge).  Em geral, SAFe é implantado top-down.

SAFe, Scaled Agile Framework.

O Kanban Maturity Model (KMM) auxilia na avaliação e na evolução do processo, de nível em nível. Para escalar processos ágeis com Kanban, busca-se implementar o Nível de Maturidade ML3: Fit for Purpose, onde a organização possui um fluxo de valor focado no cliente através de classes de serviço, com processos de sincronização nas linhas de produto e serviços compartilhados. Veja na imagem a seguir os níveis de maturidade de Kanban.

KMM Kanban Maturity Model.

Referências

Agile Fluency Model https://www.agilefluency.org/

Kanban Maturity Model https://www.kanbanmaturitymodel.com/

Manifesto para Desenvolvimento Ágil de Software https://agilemanifesto.org/iso/ptbr/manifesto.html

Nexus https://www.scrum.org/resources/nexus-guide

Scaled Agile Framework https://www.scaledagileframework.com/

Scaling Agile @ Spotify https://blog.crisp.se/wp-content/uploads/2012/11/SpotifyScaling.pdf

Lean Inception is About Making People Awesome

Lean Inception is a method to build a product focusing on Minimum Viable Products. MVPs like Lean Startup. It can help small or large organisations to realise what’s the priority to build next. It addresses a week-planned agenda with Product Development and UX techniques like Elevator Pitch, Personas, User Journeys, Brainstorming and Sequencing of Features, and the Canvas MVP, the proper result of a Lean Inception.

It was developed by the easygoing-geek genius Paulo Caroli from need. With his newborn son in 2011, it was virtually impossible to balance work and family running an old-fashioned Inception for weeks. More constrains, more creativity. Lean Inception was created to accomplish a product inception in a week.

A facilitator leads the process. Key business and product people do a kick-off presentation in the beginning about what shall be about the product, and for who. The team attends the entire 5 days agenda, presenting the results to those interested in the MVP(s).

However, even Lean Inception is a method, it’s not just about to build the next MVPs. As Dwight D. Eisenhower said “Plans are worthless, but planning is everything”. A perfect MVP planned is worthless without people engagement.

Lean Inception is about making people awesome, engaging them to build an awesome product.

Awesome because they are part of the process, part of the product. They feel like owners of the product, because they helped to decide what to build. Even business knows what to build and UX decided for who, it’s very important encouraging the team develop the product too, doing the Elevator Pitch and sketching Personas.

Take a look at the satisfied and happy people after a long day of the serious-fun training of Lean Inception. They are awesome. Photo taken at my first class as a Lean Inception trainer.

Discover more about Lean Inception at martinfowler.com/articles/lean-inception/ or reading the Lean Inception book.

Lean Beer Porto Alegre (Lean Coffee)

Ontem (23/07/2015) realizamos o Lean Beer em Porto Alegre, no mezanino do Lagom Brewery & Pub do bairro Moinhos, unindo o GUMA-RS e o Lean Coffee Porto Alegre. O Lean Beer possui a mesma dinâmica que o Lean Coffee, porém com cerveja! 😉

20150722_213423
Lean Beer Porto Alegre. Da esquerda para a direita: Alejandro Olchik, Diogo Lucas, Dionatan Moura, Eduardo Klein e Cristiano Basso.

O Lean Coffee, ou Lean Beer, é uma forma inovadora de discutir assuntos, um modelo muito enxuto em relação às reuniões tradicionais, que por vezes desperdiça tempo e energia das pessoas, além de dinheiro.

A sensação de participar de um Lean Coffee é a de querer mais, os assuntos fluem com foco de uma maneira muito eficiente.

Assuntos discutidos

IMG-20150723-WA0030
Quadro de kanban com os assuntos discutidos no Lean Beer.

Os assuntos discutidos foram nesta ordem:

  1. Quais os problemas de gestão que mais incomodam?
  2. Como ser criativo mantendo a produtividade no trabalho, com qualidade de vida?
  3. Aplicação de ágil fora da área de software.
  4. Como escalar o Lean Beer?

O único assunto que ficou de fora, por falta de tempo, foi sobre Management 3.0: salários e considerar desempenho?

Como funciona um Lean Coffee?

Basicamente, o grupo de pessoas realiza os passos:

  1. Definir o escopo dos assuntos (normalmente qualquer assunto é válido).
  2. Escrever em post-its os assuntos que desejam discutir;
  3. Colar os post-its num quadro de kanban com as três raias: todo/a discutir, doing/discutindo e done/discutido;
  4. Cada pessoa vota uma numa quantidade fixa de assuntos. Normalmente, são dois a três votos.
  5. Ordenar os post-its no quadro de kanban de acordo com a quantidade de votação. Quanto mais votos, mais no topo estará na raia todo/a discutir.
  6. Movimenta-se o post-it de maior prioridade para a raia doing no quadro de kanban, discutindo-se abertamente o assunto entre o grupo num período cronometrado de 5 a 10 minutos. Preferencialmente, quem deu a ideia do assunto pode fazer um briefing, explicando a importância daquele assunto.
  7. Ao finalizar-se o tempo (5-10min), o grupo vota caso desejar mais um ciclo de 3 a 5 minutos para continuar discutindo o assunto. Caso a maioria vote que não deseja continuar, então o post-it atual é movimentado para a raia done e volta-se ao passo 6 e discutindo o próximo assunto de maior votação.

Onde posso aplicar um Lean Coffee?

É possível utilizá-lo em muitas situações, basta que se encaixe bem no contexto. Eu já utilizei na minha empresa para discutir assuntos gerais e ideias para a própria empresa. Foi uma ótima fonte de incentivar a inovação. Sei que times ágeis que utilizam para realizar retrospectivas, principalmente quando se tem muitos assuntos para conversar. E participei ontem, no Lean Beer.

Como escalar um Lean Coffee?

O que se faz quando houver mais de 15 ou 20 pessoas para discutir os assuntos? Bom, existem diversas alternativas. Eis algumas:

  • Restringir o escopo;
  • Restringir a quantidade de assuntos por pessoa;
  • Restringir o tempo para escrever os assuntos em poucos minutos;
  • Agrupar os assuntos em clusters;
  • Utilizar um fishbowl.

Existem muitas maneiras de escalar, então analise bem o contexto e adapte a dinâmica. 🙂

Mais informações:

XP Big Picture: Visualizando as práticas do eXtreme Programming

Tudo começou na necessidade de mostrar conexão das práticas na primeira turma do curso de eXtreme Programming. Então na retrospectiva do curso, a Jamile e eu fizemos um rascunho das práticas. Foi só para esboçar o começo: Big Picture v0Simples, né? Já que não temos habilidades de desenho (percebe-se hehe), utilizamos ícones gráficos para representarmos cada prática. E surgiu a big picture abaixo: bigpicturePara baixar o PDF da Big Picture, acesse: https://github.com/dsmoura/xp-big-picture Em cada curso, distribuímos essa Big Picture para cada aluno, assim eles podem colar no ambiente de trabalho para lembrar das práticas e da sinergia entre elas.

“Não basta somente ver, tem que enxergar.” Pensamento Lean


Conheça mais sobre o livro de eXtreme Programming

livro xp

Link para o livro www.casadocodigo.com.br/products/livro-xp-extreme-programming

XP Playing Cards: aprendendo eXtreme Programming com muita diversão!

Que tal aprender eXtreme Programming (XP) de um modo bem divertido?

20150420_094518Em 2001, Joshua Kerievsky (Industrial Logic) criou um um baralho de cartas para jogos de XP. Depois de 13 anos, em 2014, a Jamile Alves e eu traduzimos e adaptamos essas cartas para o português, para realizar dinâmicas em turmas do curso de XP, facilitando a leitura aos alunos (e claro, cuidando da relíquia do baralho original da Industrial Logic que ganhei de presente do Rafael Helm).

Tipos das cartas

As cartas são de três tipos:

  • P – Carta de Problema
  • S – Carta de Solução
  • V – Carta de Valor

Screenshot from 2015-05-05 23:10:31
Ilustração das Cartas de Valores.

Baralho em PT-BR para download!

Junto à Industrial Logic, tornamos as cartas traduzidas para PT-BR livres para serem distribuídas, num formato PDF imprimível. Imprimimos numa impressora a laser colorida com uma folha mais grossa que a de ofício, ficou muito legal, é a primeira foto desse post.

Para fazer o download o arquivo do baralho de cartas em PDF, basta acessar: https://github.com/dsmoura/xp-playing-cards

Diversos jogos!

Existem ótimos jogos que podem ser realizados com essas cartas. O jogo que venho utilizando no curso de XP é o de associar soluções a um problema (variação do Explanations). A turma é dividida em grupos pequenos, distribuindo-se as Cartas de Solução igualmente para cada grupo. O facilitador lê uma Carta de Problema, e então o primeiro aluno que falar uma solução (e explicar, se necessário) que possui, descarta a carta. Ganha o grupo que zerar suas cartas de solução. Esse é um jogo que leva uns 45 minutos, com muita diversão. Mas o que mais interessa é que todos reconheçam o porquê de uma prática estar relacionada (ou não) a um problema.

Quer saber mais sobre os jogos da Industrial Logic? Veja no link: http://www.industriallogic.com/blog/xp-playing-cards/

Baralho autografado!

Ah, e no Agile Brazil 2014 eu levei as cartas para tirar foto com o Alexandre Freire, e autografar o baralho, óbvio (haha)!

20141106_123357Bom, esses baralhos viraram relíquia, mas espero que o formato digital seja útil para quem quiser aplicar em times e em cursos para continuar disseminando o eXtreme Programming! 🙂


Conheça mais sobre o livro de eXtreme Programming

livro xp

Link para o livro www.casadocodigo.com.br/products/livro-xp-extreme-programming