Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mini-palestra Produto Owner

Mini-palestra Produto Owner

Apresentação no Universidade MinhaVida sobre Product Owner e Story Mapping.

Reinaldo Bazzeo Camargo

March 17, 2016
Tweet

More Decks by Reinaldo Bazzeo Camargo

Other Decks in Technology

Transcript

  1. página ‹nº› O papel e a importância do PO Especialista

    no assunto Ele deve conhecer o domínio do negócio o suficiente para criar a visão do produto Responder a questões técnicas no domínio daqueles que estão criando o produto Defensor do usuário final Descrever o produto com conhecimento de usuários e de uso e que o produto atenda a ambos Defensor do cliente (stakeholders) Entender a necessidade do negócio selecionando um mix de funcionalidades que adicionarão valor ao cliente Defensor do negócio Entender a necessidade da organização que está financiando a construção do produto e selecionar um conjunto de funcionalidades que irá servir aos seus propósitos Comunicador Capaz de comunicar a visão e a intenção – oferecendo especificação detalhada da funcionalidade e decisões de design Tomador de decisões Dada a variedade de objetivos e opiniões conflitantes, é necessário colocar um ponto final quando se trata de uma decisão de produto difícil
  2. página ‹nº› Responsabilidades do PO Ajustar os objetivos da Sprint

    (ou interação) Priorizar e manter o Product Backlog List Participar da reunião de planejamento da sprint Elaborar US “just- in-time” quando necessário com o time Aceitar/Rejeitar US entregues Aceitar/Rejeitar a entrega da sprint Conduzir e planejar os releases
  3. página ‹nº› O que é esperado de um PO nas

    diversas fases de uma iteração?
  4. página ‹nº› O que é esperado de um PO nas

    diversas fases de uma iteração? Pré-Reunião de Planejamento • Maior elaboração de uma história de alta prioridade • Coordenar qualquer objetivo em comum e dependências com outros POs ou stakeholders • Revisar e repriorizar o Product Backlog. Isso inclui: 1. Itens que já estavam no Product Backlog 2. Itens que tiveram falhas nos critérios de aceitação da iteração passada 3. Itens que foram gerados por defeitos ou Bugs • Considerar refactoring necessários, Bugs e dependências • Ter conhecimento da velocidade do time para a próxima iteração
  5. página ‹nº› O que é esperado de um PO nas

    diversas fases de uma iteração? Reunião de Planejamento • O PO apresenta os items do Product Backlog para discussão • O time discute cada item até que esteja claro o que deve ser feito e qual o objetivo de cada item para que ele possa quebrar e estimar as tarefas necessárias para implementar essa história Durante a execução da iteração • O PO deve trabalhar com o time para elaborar novas histórias “just-in-time” caso seja necessário • Modificar o escopo onde for necessário para cumprir os objetivos da Sprint • Participar das Daily Meetings • Homologar as histórias que já estão disponibilizadas para tal • Aceitar/ Recusar histórias que tiveram/não tiveram seus critérios de aceitação satisfeitos
  6. página ‹nº› O que é esperado de um PO nas

    diversas fases de uma iteração? Reunião de Revisão • Apresentar cada item da iteração em funcionamento • Discussão e feedback de todos os envolvidos • Mudar o estado de uma história para “Aceito” (se já não foi feito) ou deixa-la caso esteja incompleta • Ao final revisar se o objetivo da Sprint foi alcançado e aceitar a iteração com base no trabalho que o time todo fez (incluindo o próprio PO) Reunião de Retrospectiva • Há uma discussão entre autores e processos com relação à essa parte • Alguns defendem que o PO não participa dessa reunião. Já outros que ele pode participar como qualquer outro membro do time
  7. página ‹nº› Cinco atributos essenciais de um bom PO Habilidade

    de comunicação O PO é a “cola” que gruda os stakeholders com o time de desenvolvimento. Sendo assim é necessário boas habilidades de comunicação pois ele deve traduzir os objetivos de negócio e de usuários para um nível de detalhamento específico para o desenvolvimento.
  8. página ‹nº› Cinco atributos essenciais de um bom PO Bom

    senso de negócio O foco do Agile é entregar valor. Isso demanda que o PO tenha um bom conhecimento no domínio do negócio. Nesse sentido ele consegue entender e elaborar US de maneira que possa entregar real valor ao usuário. Ele também deve ser capaz de estabelecer prioridades e negociar funcionalidades do sistema e de performance. Ele deve ser capaz de balancear as necessidades do usuário com o do negócio.
  9. página ‹nº› Cinco atributos essenciais de um bom PO Conhecimento

    técnico Se o PO possui conhecimentos técnicos, mesmo que básicos, ele consegue avaliar melhor certas requisições. A habilidade de priorizar (de forma inteligente) refactors, Bugs e débitos técnicos versus histórias que irão agregar um novo valor requer compreensão e respeito pelos desafios técnicos que o time enfrenta.
  10. página ‹nº› Cinco atributos essenciais de um bom PO Decisivo

    Com a velocidade que o desenvolvimento ágil proporciona, “sem decisão” é pior do que qualquer decisão. O PO deve ser capaz de tomar decisões, todos os dias, mesmo estando longe do conhecimento perfeito. Isso requer coragem e habilidade de reconhecer quando errou. Mas isso é Agile apesar de tudo – aprendemos mais com os erros do que com os acertos.
  11. página ‹nº› Cinco atributos essenciais de um bom PO Confiável

    Uma vez que a priorização e gerenciamento do que deve ou não deve ser feito está sob a guarda desse papel, a característica mais importante é a confiança. O time deve confiar no PO que ele será capaz de fazer decisões difíceis como defender a qualidade técnica e funcionalidade quando for necessário; e os stakeholders devem confiar no PO para representar fielmente as prioridades para o time.
  12. página ‹nº› PO Bottlenecks: Part-Time POs, PO Proxies, PO Teams

    Part-Time POs Priorizar e gerenciar o backlog, especificar histórias, participar ativamente da Sprint esclarecendo dúvidas, adicionar histórias “just-in time”, aceitar histórias, entender necessidades, calcular valor de negócio das funcionalidades, etc... Há inúmeras tarefas que o PO deve desempenhar e é muito difícil uma pessoa dividir seu tempo em PO e uma outra função sem que nenhuma delas saia prejudicada. PO Proxies Um PO mais de um time. Se fazer tudo o que foi descrito para um único time imagine para 3 ou 4 times? PO quase não toma decisão sempre tem que perguntar para outra pessoa. PO Teams “The product owner is one person, not a committee” [Schwaber and Beedle , 2002]. “Each teams needs exactly one product owner” [Cohn, 2010]
  13. página ‹nº› Atividade 1) Pense em todas as tarefas que

    você fez desde que acordou até chegar ao trabalho. Transcreva cada tarefa em um post-it 2) Dividam-se em grupos de 4 pessoas. Tentem agrupar essas tarefas e dar um nome à esse agrupamento. Eliminem tarefas iguais. Ordene-as da esquerda para a direita de uma maneira que faça sentido para o time 4) Quais itens eram comuns daqueles que você escreveu? Quais eram diferentes? Os modelos criados pelos grupos variaram muito do que o seu grupo criou? 3) Dêem uma olhada nos modelos criados pelos outros grupos.
  14. página ‹nº› Definição de Story Mapping Deixar visível o workflow

    ou a cadeia de valor Mostrar o relacionamento entre user stories maiores com suas filhas Ajudar a confirmar o cumprimento do seu backlog Oferecer um contexto útil para a priorização Ajudar a planejar releases completos e/ou incrementos de funcionalidades que adicionam valor
  15. página ‹nº› User Tasks • “Tijolos” do Story Mapping •

    Tarefas requerem ação intencional em nome de usuário • Tarefas têm um objetivo que pode ser alcançado • Tarefas podem ser decompostas em tarefas menores • Tarefas muitas vezes podem ser agrupadas em atividades de tarefas relacionadas • User tasks fazem as melhores User stories “Ler um email” é uma tarefa. “Gerenciar email” é uma atividade Gerenciar email Ler email Enviar email Deletar email Criar pastas Colocar email na pasta
  16. página ‹nº› Níveis de abstração de uma User Task Funcionalidade

    ou “Sea level” Eu razoavelmente espero concluir isso em uma única sessão. SubFuncionalidade ou “Fish level” Pequenas tarefas que, por si só, não significam muito. Vou fazer várias destas antes de eu chegar a um objetivo nível funcional Atividade ou “Kite level” Metas de longo prazo, muitas vezes sem fim preciso. Vou executar várias tarefas funcionais, no contexto de uma atividade. Muito abstrato Muito detalhado Pense na experiência de usuário nesse nível * from Cockburn’s Writing Effective Use Cases
  17. página ‹nº› Overview User Story • User stories são: Necessidade

    de um usuário Descrição de um produto Item de planejamento Lembrete de discussão * Kent Beck coined the term user stories in Extreme Programming Explained 1st Edition, 1999
  18. página ‹nº› Overview User Story 1) Comece com um título

    2) Adicione uma descrição concisa, você pode utilizar o famoso template: “Como [usuário] Gostaria de [ação] Para que [alcançar um objetivo]” 4) Adicione outras notas relevantes, especificações, imagens, rascunhos, wireframes 3) Escreva os critérios de aceitação de uma forma objetiva. (Como sabemos que terminamos?)
  19. página ‹nº› Montando um Story Mapping 1) Vamos imaginar que

    iremos criar um sistema para streaming de programas de tv e filmes. 2) Pensem em todas as atividades (kite level) que um usuário pode realizar no sistema. Utilizem um post-it grande (ou de uma única cor) para sinalizar essas atividades. 3) Desenhem uma linha com sentido da esquerda para a direita e organizem os post-it das atividades em uma ordem de maneira que responda a pergunta “O que a pessoa faz com o sistema?” time
  20. página ‹nº› Montando um Story Mapping 4) Agora pensem nas

    user tasks de cada uma dessas atividades. Escreva cada uma delas em post-it de outra cor (ou tamanho menor) e coloque-as abaixo de cada atividade. Uma user task deve ter um título bem visível e objetivo. Utilizem apenas o verbo principal da tarefa para o título time
  21. página ‹nº› Montando um Story Mapping 5) Agora posicionem as

    tarefas verticalmente se o usuário pudesse fazer várias tarefas ao mesmo tempo e horizontalmente caso seja uma consequência • Se contando a história eu digo que o usuário do sistema poderia fazer isso “ou” aquilo os “ou” devem ficar vertical. • Caso seja “e então” tal coisa, a tarefa deve ser colocada horizontalmente. time Abaixo de cada atividade estão as tarefas que fazem aquela atividade acontecer
  22. página ‹nº› Montando um Story Mapping 6) Agora adicionem um

    eixo y no Story Mapping que indica Necessidade e mova as tarefas pra cima ou pra baixo de acordo com “quão necessário aquilo é para alcançar o objetivo da atividade” • Para que o usuário alcance o objetivo da atividade, é necessário que ele faça essa tarefa? Se não é absolutamente necessário, o quão crítico ela é? time necessity
  23. página ‹nº› Montando um Story Mapping 7) Teste a Story

    Map tentando contar a história por ela • Escolha uma atividade para começar • Quando ler da esquerda para direita use “e então” para conectar os post-its na história • Para post-its na mesma coluna utilize “ou” para conectá-los • Para post-its no topo do eixo y (necessidade) utilize “absolutamente necessário” e utilize “opcionalmente” para mostrar opção • Escolha um nome concreto para o usuário para ajudar na história time necessity “Sansa Stark faz o login e então na busca pesquisa pelo título do filme . Opcionalmente, ela pode pesquisar pelo diretor ou pelos atores. E então, após ver os títulos retornados da busca, Sansa Stark vê os detalhes​​, e então, ela assiste o filme ou adiciona aos favoritos.”
  24. página ‹nº› Anatomia de uma Story Mapping © Jeff Patton,

    all rights reserved, www.AgileProductDesign.com O backbone da aplicação é a lista de atividades essenciais que a aplicação deve suportar O walking skeleton é o software que construímos que suporta o menor número de tarefas necessárias em toda a extensão da experiência do usuário time necessity The backbone The walking skeleton
  25. página ‹nº› Anatomia de uma Story Mapping Encontre tarefas alternativas

    O que mais usuários do Sistema podem fazer que não apareceu nos cenários? Encontre exceções O que poderia dar errado e o que o usuário poderia fazer para se resolver? Considere outros usuários Que outros tipos de usuários fazem para alcançar seus objetivos?
  26. página ‹nº› Selecionando releases Produto Quais objetivos de negócio o

    produto irá preencher? Product Goals, User Personas Release Como iremos adicionar valor incrementalmente? Quais subsets de objetivos de negócio iremos alcançar com cada release? Quais capacidades (Epics/Atividades) a release irá oferecer? Release RoadMap Sprint O que especificamente iremos construir? (User Stories) Como essa interação irá nos levar para o objetivo do release? Interation Goal Desenvolvimento das tarefas US (Backlog Item) A US vai de encontro com o que os stakeholders precisam? Quais comportamentos, especificamente, isso irá ter? O que determina que isso foi alcançado (completado)? US Scenaries, Acceptance Criteria, Acceptance Tests Produto Release Sprint User Story Portifólio do produto Estratégia de Negócio
  27. página ‹nº› Selecionando releases Escolha grupos coerentes de tarefas que

    consideram a extensão da funcionalidade de negócios e atividades do usuário Apoiar todas as atividades necessárias com o primeiro lançamento Melhorar o apoio à atividade e adicionar atividades adicionais com versões posteriores tempo necessidade necessário Menos opcional Mais opcional primeira release segunda release terceira release
  28. página ‹nº› Selecionando releases Para ter um melhor benefício de

    um release regularmente, temos que pensar de forma iterativa e incremental. Qual a diferença entre um e outro?
  29. página ‹nº› Selecionando releases • Incremental constrói um pedaço por

    vez • A utilização incremental pode ser usada quando há uma total ideia do que deve ser feito. • Então, fazer isso no tempo exato requer uma estimativa muito afiada 1 2 3 4 5
  30. página ‹nº› Selecionando releases 1 2 3 4 5 •

    Iterativo constrói uma versão mínima, que depois é validada e, então, pouco a pouco melhorada • A utilização iterativa permite que você se mova da vaga ideia para a concretização fazendo ajustes no caminho “on the fly”
  31. página ‹nº› Selecionando releases fe at ur es release engine

    transmission suspension brakes exterior body Interior seating tires sprint 1 2 3 4 Imaginem que vamos montar um ônibus de maneira incremental em apenas 4 sprints. ?
  32. página ‹nº› Selecionando releases us er ta sk s to

    su pp ort release D D D D D I I B- C C- D D D D A- B B- B B B B- A- A B A A- A- B- sprint 1 2 3 4 Nós sabemos que cada história pode ser dividida em pelo menos 4 partes As primeiras iterações são para construir as necessidades básicas, depois disso vai aumentando o valor da funcionalidade
  33. página ‹nº› Material de estudo • http://www.agileproductdesign.com/ Jeff Patton •

    http://channel9.msdn.com/Events/ALM-Summit/ALM-Summit-3 • Agile Software Requirements – Dean Leffingwell