Inception Ágil: Passo a Passo Detalhado

No ano passado eu mediei um evento de Inception Ágil no SERPRO Salvador. Foi a primeira inception realizada lá, e todos gostaram muito. Foi legal ver, meses depois, muitos times e clientes pedindo pela realização de inceptions para novos projetos. Para mim, o evento foi ainda mais especial, pois fechou minha última semana de trabalho no SERPRO, antes de eu me dedicar exclusivamente à HE:labs.

De tempos em tempos alguém entra em contato comigo pedindo referências sobre como fazer uma inception, um passo a passo ou outras orientações. Resolvi então registrar aqui tudo isso para facilitar o compartilhamento. Virou um misto de referência, passo a passo e relato (com boas lembranças) de como foi aquela inesquecível semana. Espero que este registro ajude outras pessoas também!

IMG_1104

O que é uma Inception Ágil

Em ambientes que seguem processos mais tradicionais de desenvolviento de software é comum ocorrerem grandes reuniões ou semanas de elicitação de requisitos. Uma inception tem um objetivo semelhante. Porém, ela parte de um princípio diferente e aplica técnicas diferentes.

Para mim, a melhor definição de incpetion é simplesmente dizer que ela é um evento de descoberta de produto. Esta definição já deixa claro que nem o cliente, nem os usuários, nem o time de desenvolvimento sabe exatamente qual produto irá criar.

Um elemento básico da incpetion é que ela precisa ser intensamente colaborativa. É responsabilidade de todos (time de desenvolvimento, cliente e, se possível, usuários e patrocinadores) participar do processo. O nível de interação entre as pessoas é muito grande, e muitas relações são formadas ou fortalecidas na inception, o que aumenta radicalmente as chances de sucesso do projeto.

Outro ponto importante é que uma inception, na verdade, é um mix de diversas técnicas ágeis. Ela pode ser montada com diferentes técnicas conforme o contexto do projeto, time, organização, etc. Sendo assim, este aqui foi o mix que eu escolhi montar para a inception que mediei. Nas referências lá em baixo você poderá ver diversos outros exemplos de inceptions, com tecnicas diferentes, e poderá montar o seu mix, adequado ao seu contexto.

Planejamento

No nosso caso, decidimos investir em uma inception com uma semana de duração, e estabelecemos a seguinte agenda macro:

Segunda

  • Apresentações entre os participantes
  • Explicação rápida sobre a inception e ferramentas que serão utilizadas
  • Dinâmica: Definição de Visão do Produto
  • Dinâmica: Definição de Objetivos e Metas do Produto
  • Dinâmica: Identificação de Personas

Terça

  • Retrospectiva rápida sobre o dia anterior
  • Continuação da dinâmica de identificação de Personas
  • Dinâmica: Identificação das Ações dos Usuários (funcionalidades do produto)
  • Dinâmica: Escrita de Histórias de Usuários

Quarta

  • Retrospectiva rápida sobre o dia anterior
  • Continuação da dinâmica de escrita de histórias de usuários
  • Dinâmica: Identificação de Riscos do Projeto
  • Dinâmica: Desenho dos Principais Fluxos do Produto

Quinta

  • Retrospectiva rápida sobre o dia anterior
  • Dinâmica: Criação de Wireframes das Telas Principais
  • Dinâmica: Estimativa das Histórias
  • Dinâmica: Criação do Mapa de Histórias (User Story Mapping)

Sexta

  • Retrospectiva rápida sobre o dia anterior
  • Continuação da dinâmica de criação do mapa de histórias
  • Dinâmica: Revisão de Histórias Prioritárias para Estarem Ready

IMG_1001 IMG_1069

É muito importante deixar o plano bem visível para todos, e uma técnica legal é criar um Burn-up da Inception conforme imagem acima. Desta forma, todos sabem o que está por vir e, principalmente, como estamos indo, dia a dia durante a semana.

Infra-estrutura

Como a inception é um mix de muitas técnicas, e no ágil usamos e abusamos de recursos visuais, é interessante ter à disposição diversos elementos para realizar um bom evento. Nós conseguimos montar uma “sala de guerra” excelente:

  • Sala grande, reservada para a semana inteira
  • Mesas grandes, usadas o tempo todo
  • Cadeiras com braço, para os momentos individuais das dinâmicas
  • Paredes livres, para colar os templates e resultados das dinâmicas
  • Quadro branco
  • Flipcharts (e muito papel extra)
  • Folhas A4
  • Cartões indexados (aqueles grandes, para fichamento de livros)
  • Post-its de tamanhos e cores variadas (incluindo os post-its grandes e também os bem pequenos, de “marca página de livro”)
  • Canetas de ponta grossa (estilo hidrocor), de diferentes cores
  • Canta piloto para flipchart e quadro branco
  • Projetor e computador
  • Fita adesiva grande
  • Cola bastão
  • Massinha adesiva, para colar as fichas indexadas na parede
  • Lanches

Preparação da “Sala de Guerra”

Para otimizar o uso do tempo, é importante deixar tudo bem preparado com antecedêcia, deixando todas as dinâmicas já pré-preparadas e à disposição dos participantes.

Nesta inception o time de desenvolvimento pôde participar na preparação da sala, e surgiram várias ideias legais. Pontuo aqui algumas coisas que fizemos:

  • Colamos alguns papéis de flipchart juntos, criando um “quadro de papel” na parede. Ele serviu para usarmos como espaço de trabalho para colage de post-its. Nem toda parede cola bem post-its, e com ele também “economizávamos” o quadro branco, deixando-nos livres para usá-lo a todo momento;
  • Criamos templates de algumas dinâmicas (como a de Personas), já mostrando um exemplo do que os participantes iriam criar. Deixamos ele colado na parede para fácil visualização e explicação;
  • Nas dinâmicas que iriam usar algum quadro específico (como a de visão), nós já o deixamos criado e colado na parede, já preparado para o dia que fóssemos usar;
  • Criamos uma “área do lanche”, com um mesinha no canto. As pessoas podiam ir lá e pegar comidas durante as dinâmicas, e nas paradas para o café nós nos reuníamos neste área;
  • Separamos um flipchart chamado de “Lembrar de:”, onde colávamos anotações rápidas sobre elementos técnicos ou de negócio que seriam importantes pesquisarmos ou analisarmos posteriormente;

IMG_0998

Alguns Aprendizados

Durante a semana nós fomos aprendendo e nos adaptando. Seguem algumas práticas que consideramos que ajudaram bastante:

  • Criamos um “crachá” improvisado com post-it, em que cada um escreveu como queria ser chamado (nome ou apelido). Isso ajudou as pessoas a se comunicarem mais facilmente, pois nem todos se conheciam;
  • Fazer as mini-retrospectivas no dia seguinte. Não fizemos todos os dias, mas ajudaram a identificar problemas na execução da inception em sí;
  • Separação dos participantes em mini-grupos. Como estávamos em 12 pessoas, a cada dinâmica formávamos 3 grupos de +/- 4 pessoas. Isso facilitou a chegada em consessos, e na divisão do trabalho;
  • Tirar fotos do resultado das dinâmicas, principalmente das que usaram o quadro branco. Como quase tudo é em papel, tudo já estava colado na parede ou facilmente acesível. Mas o que foi gerado no quadro branco nós tirávamos fotos e, algumas vezes, projetamos na parede para tirar alguma dúvida pontual do que havia sido definido.
  • Conseguir uma infra de lanche para todos faz muita diferença. Começamos a semana com alguns snacks, mas terminamos com café da manhã completo, com direito à uma máquina de expressos e tudo! Completamente organizado pelos participantes. 🙂

IMG_1008 IMG_1065

Definição de Visão do Produto

Nesta dinâmica nós criamos, de forma conjunta, uma visão sobre o produto. Neste momento são respondidas perguntas como principais necessidades, cliente alvo, em qual categoria o produto se encaixará, principais benefícios e diferenciais, etc.

IMG_1009 IMG_1011

Nós dividimos os participantes em 4 sub-grupos, definimos um time-box para eles anotarem em post-its as suas respostas e considerações, e depois outro time-box para eles discutirem internamente e chegarem a um consenso. Depois cada grupo colou suas respostas no quadro de visão, apresentou rapidamente o que pensou sobre aquilo, e fomos montando a visão do produto.

Deixamos o PO por último, para revisar e colocar as considerações dele sobre a visão do produto. Neste momento, fizemos ajustes nos post-its e fechamos o consenso sobre a visão do produto como um todo.

Definição de Objetivos e Metas do Produto

Aqui cada sub-grupo elencou os objetivos e metas que imaginavam. Fomos colando-os na parede e naturalmente agrupando-os em objetivos semelhantes por assuntos. Deixamos o PO por último e ele fez diversas considerações. Com isso, registramos outros objetivos e finalizamos escrevendo macro-objetivos que “resumiam” os grupos de objetivos.

IMG_1013 IMG_1014

Identificação de Personas

Quando lí sobre personas a primeira vez, confesso que achei algo desnecessário. Me pareceu uma simples identificação de atores, mas de uma maneira “moderninha”. Porém, depois que usei a técnica completamente, mudei de opinião. O processo de discussão, o trabalho criativo de imaginar pessoas reais, personificando os tipos de usuários do produto, além de muito divertido, ajuda todos a lembrarem continuamente quem são as pessoas que o sistema visa ajudar. Os problemas reais que ele visa resolver. Após algumas horas de evento, todos já conhecem as Personas e falam simplesmente: “O Fulano vai gostar disso”, “O Ciclano precisa muito disso” e “Isso aqui não combina com Beltrano”. É muito prático.

IMG_1003 IMG_1021

Para facilitar o entendimento de quais características precisávamos “personificar”, criamos um template e colocamos na parede para que todos pudessem ver. Depois fomos direto para o quadro branco e os participantes foram falando características dos usuários e fomos criando as Personas. Naturalmente surgiram nomes, apelidos e imagens de como seriam estas pessoas. Finaizado o quadro, nós passararíamos as caracterísicas para um papel ofício, seguindo o template. Mas percebemos que somente a “frase resumo” de cada Persona já era suficiente para nos lembrarmos deles, e resolvemos deixar somente assim.

Identificação das Ações dos Usuários (funcionalidades do produto)

De posse das Personas e Objetivos do Produto, fizemos uma rápida matriz entre eles para nos ajudar a identificar quais seriam as principais funcionalidades do produto com base na visão de cada Persona. Esta é uma transição interessante, pois ao invés de partimos direto para as histórias de usuário, nós começamos pensando na visão do produto, depois nos seus objetivos, depois nos seus usuários e depois nas funcionalidades que seriam mais importantes para cada um destes usuários.

IMG_1026 IMG_1031

Escrita de Histórias de Usuários

Neste momento já estávamos no meio da semana, e com um conhecimento absurdamente maior sobre o produto, o time e sobre o contexto do negócio. Não dá para descrever a quantidade de aprendizado adquirido em apenas alguns dias, muito menos o nível de amadurecimento das pessoas e das relações pessoais. Só participando de um evento como este para saber. 🙂

IMG_1037 IMG_1056

Escrevemos as histórias seguindo o formato sugerido por Mike Cohn: “As a <type of user>, I want <some goal> so that <some reason>”. Porém, ao invés de escrever todos estes elementos, nós escrevemos apenas o <some goal> em um post-it central, e apontamos o <type of user> para as personas com post-its pequenos e o <some reason> para um dos Objetivos do Produto identificados anteriormente. Desta forma, reaproveitamos as descobertas dos dias anteriores e agilizamos a escrita das histórias em si. Além disto, o resultado fica extremamente colorido e divertido! 🙂

IMG_1046

Identificação de Riscos do Projeto

Ao finalizar a escrita das histórias, o PO ordenou rapidamente os cartões com base na sua visão atual do que era mais importante ou prioritário. Passamos então por cada história e avaliamos riscos técnicos, de negócio, organizacionais, etc. Fomos avaliando em que ponto do gráfico de risco a história estava e íamos anotando elementos para redução ou mitigação dos riscos. Desta dinâmica saíram anotações nos versos dos cartões de histórias, bem como diversos itens a serem avaliados posteriormente à inception.

IMG_1004 IMG_1094

Desenho dos Principais Fluxos do Produto

Aqui cada sub-grupo ficou responsável por um conjunto de funcionalidades. Desenhamos no quadro branco os fluxos, orientados pelas Histórias criadas. Foi bem interessante desenhar o fluxo de navegação do sistema, colando as histórias nos pontos em que elas seriam utilizadas. A dinâmcia foi extremamente proveitosa, pois pudemos discutir vários elementos que não havíamos visto.

IMG_1059 IMG_1064

Criação de Wireframes das Telas Principais

De posse da visão do fluxo de ações no sistema, separamos novamente os participantes em grupos menores, e cada grupo trabalhou no desenho de um sub-conjunto das telas. Naturalmente os grupos se organizaram para ver qual iria desenhar quais telas.

IMG_1071 IMG_1082

Aqui deixamos todos os recursos disponíveis para eles usarem como quisessem. Alguns desenharam no quadro branco, outros no flipchart, alguns usando apenas uma cor e outros fazendo tudo muito colorido. Os resultados foram muito bons, pois a dinâmica gerou novas dúvidas, novos decisões de projeto e novas discussões com o cliente.

Estimativa das Histórias

Nesta etapa nós utilizamos uma técnica de estimativa bastante útil para estimar rapidamente grandes backlogs. Ao invés de usarmos o planning poker, história por história, nós vamos estimando comparativamente, a história atual com as histórias que já estão estimadas na mesa. Estas histórias na mesa são dispostas em colunas, onde cada coluna corresponde a uma pontuação seguindo a sequência de fibonacci.

IMG_1089 IMG_1093

De forma bastante rápida, nós simplesmente avaliamos se a história atual é mais simples, mais complexa ou semelhante à alguma das colunas existentes. Se consideramos que ela está “no meio” de duas colunas, nós simplesmente criamos uma nova coluna e, automaticamente, todas as histórias a frente são repontuadas, pois passaram a estar em colunas de valor maior.

Desta forma, conseguimos avaliar de forma muito rápida todo o backlog, e a cada elemento de dúvida que surgia, discutíamos pontualmente para conseguir estimar melhor.

O legal desta técnica, além de ser extremamente rápida, é que nós pudemos derivar estimativas de prazo instantanemanete para todo o projeto, bastando estimar o valor da nossa velocidade. Com isso, o Cliente pôde fazer na hora, no quadro branco, simulações de prazo para grupos de funcionalidades individualmente, e re-definir elementos estratégicos do projeto rapidamente. Foi realmente fantástico.

Criação do Mapa de Histórias (User Story Mapping)

Para mim, esta é uma das melhores técnicas para identificação, organização e priorização de requisitos, com a vantagem de gerar uma excelente visão macro do produto e planejamento de releases. Já pude aplicar algumas vezes apenas esta técnica (sem toda a inception) e, foi excelente.

Eu considero esta técnica tão importante que vou listar alguns algumas referências exclusivas para ela:

O legal de criar um Mapa de Histórias dentro de uma Inception é que podemos identificar os elementos da mapa de forma progressiva e, no final, “apenas” montar o mapa. No nosso caso, os resultados das dinâmcias abaixo foram usados no mapa:

  • Definição de Objetivos e Metas do Produto
  • Identificação de Personas
  • Identificação das Ações dos Usuários (funcionalidades do produto)
  • Escrita de Histórias de Usuários

IMG_1096 IMG_1100

Com o mapa montado, foi muito fácil separar as macro releases, definindo uma estratégia de lançamento e priorização de grupos de funcionalidades do sistema.

Revisão de Histórias Prioritárias para Estarem Ready

Neste momento, pegamos as histórias mais prioritárias e avaliamos rapidamente se elas estavam realmente prontas para iniciarmos a implementação na primeira iteração do projeto. Também foi um momento importante para escrevermos a primeira versão do que seriam os critérios para uma história ser considerada pronta ser puxada do backlog. Como o tempo da inception já estava acabando, esta etapa acabou sendo realizada de forma muito rápida.

Finalização

Todos comemoraram os resultados alcançados, a experiência diferente e, pelo que me lembro, todos gostaram muito! 🙂 Se você ainda realizada semanas de elucidação de requisitos, e nunca vivenciou um inception, fica minha sugestão para você experimentar. 🙂

IMG_1105

Referências Importantes

O site do Jeff Patton possui muito material sobre inceptions, assim como diversas técnicas ágeis individuais que podem lhe dar várias ideias de mix diferentes. Vou pontuar aqui alguns links que me foram muito úteis:

O blog do Jonathan Rasmusson também conta com muitas dicas de técnicas ágeis específicas, o que me ajudou muito a formular o meu mix.

O blog do Paulo Caroli é uma fonte inestimável de técnicas ágeis e orientações de como aplicá-las, seja em inceptions ou em outros eventos, como retrospectivas. Nos projetos que participei como coach, sempre estávamos experimentando técnicas diferentes vindas de dicas do Caroli. Recomendo muito a leitura.

Anúncios

5 comentários sobre “Inception Ágil: Passo a Passo Detalhado

  1. Parabéns pelo excelente post e compilação (mix) de técnicas ágeis utilizadas dentro de uma sequência lógica, me ajudou muito a entender a Inception.

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s