Arquivo

Textos com Etiquetas ‘scrum’

Scrum Management: The Brain Dashboard, Part II

4, janeiro, 2010

This post is a follow up to the first post, regarding our dashboard creation, but before digging into the specifics, I would like to a summarize few goals we had in mind when we (as a team) come up with the current solution we use at our daily scrum lives.

First some background: we are a medium size team, composed of six developers working usually in pairs and doing sprints of 2 to 3 weeks on a project that is already in production, most of our stories are about improving the existing code base while adding some new functionality, and our sprints are usually composed of 20 to 30 stories, demanding quite some space on our dashboard.

A recurrent issue was some small bugs popping up during our client demo, giving them a bad impression about the quality of our code while bringing the team moral down.

Based on these we established some few goals to out new dashboard design:

  • More flexibility: writing your name and status on a story/task is not a good idea, since whose working on it can change over time;
  • Focus on people: enforce the team members importance on the project;
  • A dashboard that would breathe quality: more testing and validation;
  • Sense of accomplishment: it should be pretty visible to see when tasks/stories are completed;
  • Pleasant to the eye, after all we will be using it everyday.
  • Support a good amount of stories/tasks to be done and completed;
  • Impose a limit to our WIP (work in progress);

The result is the following design, that according to Eduardo Moreira, resembles the way a brains operates, concentrating the most important things on the core of the dashboard:

The Brain Dashboard

On the top we have all the stories in a flow that goes from:

To Do To Do: At the beginning of the iteration it has the usual 20 to 30 stories ordered by the Product Owner priority. All the impediments are marked with a red flag, and work should not be started until it is unflagged.
WIP Work In Progress: When a team member starts working on a story it should be moved here. This step contains a much smaller space than the To Do and Completed ones, enforcing the team to work on the fewest stories at the same time, preventing too much unfinished work from happening.
To Validate Done and Waiting Validation: After finishing all the tasks on a story it is moved here, where it waits to be validated by another team member whose do not worked on it. After validation, it then must be marked with a Success or Failure tag, the latter requiring a bug task to be created and placed on the Unexpected space (more on that latter).
Validated Completed: With the same space as the To Do, here is where all the completed stories lie, giving the team a good sense of accomplishment.

On the middle we have pictures of all the team members and their name tags to be stick on whatever they are working on (tasks, validation,…):

Pictures

Lastly there is the bottom, with all the tasks split from the stories on our Spring Planing II:

To Do To Do: Not much different from above but divided into two spaces, a tiny one, to hold all the unexpected tasks (such as bugs) which wore produced during this sprint, and a bigger one, containing all the regular open tasks with the same red flags when suited.
WIP Work In Progress: Same rules as the stories, except that here the team member working on a task must mark it with his tag.
Done Done: When a task is completed, it should be placed here. This step was created, to give the visible difference between work in progress and completed.
Reported Reported: Composed of all the completed tasks reported on the daily meetings.

These should cover most of it, but if you have any doubt or tip to help us improve our dashboard don’t hesitate on dropping a comment.

This post can also be found at my personal blog: blog.pirelenito.org

Paulo Ragonha Ferramentas, Metodologia

What should you deliver?

29, outubro, 2009

What should you, as a developer, deliver at the end of each iteration?

Usually developers using Scrum are concerned with measuring velocity and providing visiblity over the evolution of the iteration by using story points. Therefore, what they are really concerned is to deliver that right amount of story points at the end of the iteration. Is there something wrong with that? Well, maybe! let’s see:

The agile manifesto says that:

Working software is the unique measure of progress.

Most of developers that are starting doing agile strugle to deliver working software every iteration. They also have a speciall attention in doing “correct” estimates, so that they can provide visibility of what is going on. In the other hand, the customer will also be happy due to the fact that he knows that, at the end of the iteration, he will get 35 story points delivered as planned by the team. In fact there is nothing wrong with measuring velocity and keeping a good level of visibility for what is going on your project. The problem happens when you deliver working software that corresponds to the velocity that you’ve estimated, but this working software does not deliver value to the customer.

This sometimes is simply a misunderstading of what value really means to the customer. If the team practices a little bit of empathy, you may get this problem solved very quickly. However, if the problem is caused by a lack of a common vision of the product, you probably are incurring in a much worse problem. If developers are just being told by the product owner customer what to do and they can’t see the whole, they certainly won’t be able to understand what value really is. In this case, a cultural change might be needed in order to deliver value. In both ways, selecting the right priorization criteria will actually determine that value you deliver.

So, the answer for the question is: developers should must deliver value at the end of each iteration, not only story points. Think about that!

A big thank you to David Hussman who gave me these insights at Ágiles2009.

Samuel Crescêncio Metodologia

Amadurecendo o workflow do projeto com práticas do Kanban

18, outubro, 2009

Atualmente, muitas empresas estão adotando metodologias ágeis e em especial o Scrum com o objetivo de melhorar a gestão de seus projetos de software. No inicio, os projetos utilizam um workflow simplificado para sinalizar o andamento da iteração. Esse fluxo normalmente é composto por 3 estados:

  • TO DO: Estórias selecionadas para o backlog da iteração que estão aguardando para serem iniciadas.
  • IN PROGRESS: Estórias em andamento, sendo executadas pelo time no momento.
  • DONE: Estórias prontas para serem entregues.

Segue abaixo um exemplo de um Scrum board com um fluxo simplificado:

1

Com o passar do tempo, surge a necessidade de amadurecer esse workflow, mapeando ações técnicas e de qualidade que reunidas formam o conceito de Definição de Pronto (ou Definition Of Done).

A Definição de Pronto reúne os critérios que o time deve seguir para que uma funcionalidade possa ser realmente considerada pronta, não só técnicamente mas também com qualidade. Essa definição é composta por uma lista de ações como: escrever testes de aceitação, codificar, revisar o código, validar o que foi feito com o product owner, fazer o deploy no servidor de produção ou qualquer outra coisa que precise ser feita para que a funcionalidade possa ser entregue atendendo as necessidades de negócio. Com a evolução do projeto, é importante estar sempre observando e adaptando esses critérios para que eles possam acompanhar a realidade projeto, estando alinhados com as expectativas do cliente.

Os problemas surgem quando algumas ou muitas dessas ações não são executadas corretamente e assim muitas estórias consideradas prontas pela equipe acabam tendo problemas na hora da revisão com o product owner, não sendo aceitas. Um fator que contribui para isso é a utilização de estados nebulosos no workflow do projeto. Decompor o estado “in progress” em estados que representem importantes ações da Definição de Pronto aumenta a visibilidade do time sobre qual etapa do processo está sendo executada e facilita a identificação e remoção de gargalos, aumentando a eficiência do processo.

Segue abaixo um exemplo de Scrum board com um workflow contendo os estados de codificação, revisão de código e deploy :

2

Para manter o fluxo constante, é importante evitar o acumulo excessivo de estórias em cada estado. Estes acumulos criam estoques que diminuem o ritmo e a freqüência de entregas, incentivando um comportamento multitarefa que contribui para um fluxo ineficiente e com desperdícios.

Segue abaixo um exemplo de Scrum board com acumulo de estórias em revisão de código causando a demora do deploy de varias estórias já codificadas:

3

O número de estórias em cada estado é denominado WIP (Work in Progress). Limitar o valor do WIP contribui para impedir a sobrecarga do sistema e faze-lo trabalhar com a sua capacidade real. Assim, as demandas começam a se adequar a capacidade de produção do sistema e não o contrário. Além disso, a ocorrência de impedimentos acaba causando uma interrupção no processo (ou stop the line), afetando o trabalho de toda a equipe e fazendo com que os impedimentos sejam resolvidos rapidamente.

Para entender melhor sobre a dinâmica da teoria das filas que a limitação do WIP proporciona é fundamental acessar uma simulação completa do funcionamento do kanban em: http://blog.crisp.se/henrikkniberg/2009/06/26/1246053060000.html

Segue abaixo um exemplo de Scrum board com limite do WIP em 1 para o estado de codificação, em 1 para o de revisão de código e em 3 para o de deploy. Dessa forma, nunca poderá haver mais de uma estória em codificação, uma estória em revisão de código e três estórias em deploy, aumentando a colaboração da equipe e a utilização de técnicas como o pair programming. Lembrando que esses valores variam dependendo do objetivo e quantidade de pessoas na equipe. A alteração dessas variáveis pode ajustar o processo, afetando a produtividade do sistema.

4

Dessa forma é possível criar um workflow que prioriza a visibilidade do trabalho em execução, evidenciando impedimentos e gargalos, além de manter o sistema estável e constantemente otimizado. Com isso é possível entregar com mais freqüência e com mais qualidade, melhorando a percepção do cliente e criando um ambiente de desenvolvimento melhor para todos.

Segue abaixo alguns links para blogs importantes que falam sobre o assunto:

http://www.limitedwipsociety.org/

http://blog.crisp.se/henrikkniberg/

http://leansoftwareengineering.com/

http://www.alissonvale.com/englishblog/

http://damonpoole.blogspot.com/

Segue também uma lista de ferramentas e padrões utilizados no processo:

  • Value Stream Mapping
  • Visual Management
  • Pull System & Single Piece Flow
  • Limited WIP
  • Buffers & Queue Limits
  • Classes of Service
  • Leveling Work
  • Two tiered Systems (Expand/Collapse)
  • Swimlanes/Expediting
  • Triggers
  • Priority Filters
  • Perpetual Multivote

Rodrigo Branas Ferramentas, Metáforas

OnCast no TáSafo

16, setembro, 2009

Saiu uma entrevisa que o blog Tá Safo! fez com o Samuel durante o Agile Weekend em Porto Alegre.

Blog Tá Safo!

Blog Tá Safo!

O Samuel respondeu perguntas do tipo:

Quais metodologias e práticas usamos?

O que acontece se o time percebe que não vai conseguir entregar o sprint backlog?

Como são funciona a relação de escopo negociável com os clientes no Dynamic Outsourcing?

Confiram o conteúdo da entrevista.

Ficou muito show! Parabéns Jaime!

Adriano Campestrini Outros

Ágiles 2009 em Florianópolis!

22, junho, 2009

banner_pt

Este ano está sendo um ano muito importante para Florianópolis em questão de eventos marcantes e de qualidade. Em Maio de 2009 tivemos um dos maiores eventos de turismo do mundo o 9º Fórum Mundial de Turismo promovido pela WTTC – World Travel & Turism Council. E agora, entre os dias 6 e 9 de Outubro teremos a 2ª Jornada Latino-Americana sobre Metodologias Ágeis, o Ágiles 2009.

OnCast, organizadora do Ágiles2009.

O Ágiles 2009 é um evento sem fins lucrativos que está sendo organizado por profissionais da comunidade latino-americana de metodologias ágeis, juntamente com a participação da OnCast, unidos com o objetivo principal de criar um amplo espaço de discussão sobre o tema Metodologias Ágeis.

Já contamos com a confirmação de algumas pessoas ilustres do mundo ágil, são eles:

foto_brianmarickContaremos com a presença de Brian Marick para a sessão de abertura do evento. É um dos profissionais mais influentes na área de Teste de Software, um dos 17 visionários que assinaram o Manifesto pelo Desenvolvimento Ágil de Software, é um reconhecido consultor da comunidade ágil e já foi membro da diretoria da Agile Alliance. É autor dos livros “The Craft of Software Testing”, “Everyday Scripting with Ruby” e “Programming Cocoa with Ruby”. Brian tem sido a ponte entre a comunidade Ágil e a comunidade de Teste de Software, representando a escola de Testes Orientados a Contexto, ao mesmo tempo que tenta criar um balanceamento entre a cultura vigente em grandes empresas e o modelo Ágil de desenvolvimento.

foto_dianalarsen

Diana Larsen é co-autora do livro “Agile Retrospectives: Making Good Teams Great!”, co-fundadora dos eventos Agile Open Northwest e Retrospective Facilitators Gathering e atual diretora da Agile Alliance Board. Diana é reconhecida como uma das líderes mundiais na facilitação de retrospectivas, o que nos proporcionará para com o fechamento do Ágiles 2009.

Durante o evento serão realizados cursos conduzidos por trainers locais e internacionais, e para eles já temos a confirmação de Alexandre Magno e Alan Cyment. Contaremos também, com a participação dos convidados especiais Matt Gelbwaks e Naresh Jain.

____________________________________________________________________________________

Venha participar do Ágiles 2009 na condição de palestrante!

Queremos ouvir suas idéias, suas experiências e aprender suas técnicas de trabalho. Submeta sua proposta de apresentação para nosso comitê técnico utilizando o formulário.

ATENÇÃO: o prazo de encerramento das submissões é dia 06/07/2009!

Não se esqueça de revisar se o conteúdo do seu trabalho se enquadra no tipo e duração definido para a sessão selecionada antes de submeter o formulário. Você pode enviar tantas propostas quantas quiser, mas não mais de uma sessão por pessoa será aceito no programa final.

Escolha a sua melhor opção - Tipos de sessões:

  • Tutoriais - 90 minutos: Esta trilha incluirá sessões especialmente direcionadas para pessoas que estão no início de seus estudos, ou procurando por um embasamento em Métodos Ágeis.
  • Palestras - 45 minutos: Apresentações focadas num público que está à procura de tópicos específicos para ampliar seu conhecimento sobre Metodologias Ágeis, assim como as melhores práticas utilizadas pela comunidade Ágil.
  • Casos de Uso - 45 minutos: Apresentações que demostram utilização de Agile em projetos reais, sumarizando o que aconteceu no projeto e os principais pontos de aprendizado. Estes relatórios permitirão aos praticantes compartilhar conselhos e lições aprendidas com outros times.
  • Workshops - 90 minutos: Sessões altamente interativas, permitindo aos participantes desenvolverem o conhecimento de forma prática. Esta trilha trará tópicos relacionados a Inovação, resolução de conflitos, liderança, etc.
____________________________________________________________________________________
Patrocinadores

Ágiles 2009 é o maior evento latino-americano de desenvolvimento ágil de software. Este ano esperamos mais de 500 entusiastas da América Latina e de outras regiões do mundo.

Ficaríamos honrados em contar com a sua participação, nos ajudando a construir este ambiente de discussão e crescimento colaborativo.

Convidamos a você a conhecer as Oportunidades de Patrocínio do Ágiles 2009.

Para mais informações, contate-nos aqui.

Contamos com sua participação no Ágiles 2009!

Mirela Rzatki Outros

The Downfall of Agile Hitler

16, junho, 2009

Há algum tempo atrás enviei para os colaboradores da OnCast o vídeo abaixo, e acredito que seja interessante compartilhar aqui no blog para quem ainda não viu.

The Downfall of Agile Hitler

Revendo o vídeo lembrei também de um post no Bliki do Martin Fowler, FlaccidScrum.

Acredito que a leitura desse post é importante para que possamos ter consciência de onde podemos falhar e como. O vídeo ilustrada de uma forma bem-humorada um tipo de problema, onde as equipes não dão a devida atenção a algumas práticas que garantem a qualidade do software, por exemplo técnicas do Extreme Programming.

Enfim além da diversão do vídeo vale a pena refletir sobre o assunto.

André Branco Metáforas

Ferramentas para gestão de projetos Scrum

9, abril, 2009

Para quem sente falta de ferramentas simples para gerenciamento de pequenos projetos com Scrum, aí vão duas dicas:

São opções bem simples, clean e de fácil acesso pois são SaaS, ous seja, não precisam ser instaladas. O Scrum Ninja tem a vantagem de ser grátis para projetos open source ou projetos com até 3 usuários.

Uma opção mais completa, porém não tão simples é o VersionOne. Ferramenta líder de mercado para gestão ágil de projetos, também possui versão SaaS, abrange técnicas de outras metodologias, o que pode ser útil para projetos maiores.

Seja qual for a ferramenta escolhida, sugiro não deixar de usar o dashboard com post-its e o burndown chart desenhado no quadro branco. A parede e o quadro branco são campeões nos quesitos acessibilidade e visibilidade, além disso, tornam o ambiente de trabalho mais dinâmico e humano.

Adriano Campestrini Ferramentas

Iteração 1: Risco à Vista

5, abril, 2009

Preocupado com o burndown da sua primeira iteração?

Se você é um integrante do time e está preocupado com o burndown da primeira iteração do seu projeto, fique sabendo que é muito provável que você falhe.

É isso mesmo! Na primeira iteração o negócio, a tecnologia e o ambiente podem ser novidades, o time ainda não acertou a mão nas estimativas e não está entrosado. Sem falar que nem todos podem estar maduros com o processo, inclusive o Product Onwer, e na ansiedade que isto gera. Para mitigar seus riscos, aí vão algumas dicas do que o ScrumMaster pode fazer antes, durante e depois da primeira iteração:

Antes da primeira iteração:

Invista na sua comunicação com o Product Owner. Você pode organizar uma reunião de kick-off do projeto, para que sejam definidas as regras do jogo. No planejamento da primeira iteração, o Product Owner deve ficar ciente de que as estimativas devem ser “mais erradas” que o normal, para que ele não se surpreenda com uma entrega incompleta (a única certeza que temos das estimativas é que elas estão erradas, mas isto é outra discussão).

Também não é sadio o Product Owner tratar a primeira iteração decisiva quanto a continuidade do trabalho - chame sua atenção para o fato de que o time deve se estabilizar apenas na terceira iteração.

Defina as datas e locais das próximas reuniões de planejamento e explique sua necessidade. Isto irá desencorajar qualquer desculpa para reagendamento.

Não peque por escassez de planejamento e estimativas. Puxe o time para não ter pressa nem preguiça ao receber tanta informação nova. As regras de negócio costumam ser novidade: intercalar reuniões com e sem os conhecedores do negócio ajudam a refinar o entendimento do escopo. Reserve tempo antes de estimar, para analisar a macro-arquitetura e qualidade do código legado, APIs e estudar novas tecnologias.

Durante:

Mantenha o Product Owner sempre informado, mesmo que seja por email, mesmo que ele não responda. Surpreenda-o o mais cedo possível, mesmo em caso de atraso (que é um caso de visibilidade que você preferiria não estar vendo, mas é forçado pelo burndown). Não deixe-o esquecer que tropeços eram esperados na primeira iteração.

Registre cada suposição mal feita durante o planejamento, cada aumento inesperado de escopo e cada impedimento: será útil para o aprendizado do time na retrospectiva.

Time-boxed: é importante aceitar o fim da iteração na data combinada mesmo com burndown no alto. Finalizar as iterações na data combinada é especialmente importante nas primeira iterações: mostra organização, marca o ritmo do processo e disciplina o time a se planejar melhor para entregar tudo com que se compromete. Em caso extremo, com um burndown chart completamente horizontal, ou burn up, considere dar a iteração por encerrada antes do tempo e realize um novo planejamento.

E depois da iteração 1:

Não alcançou o objetivo da iteração? Tudo bem! O importante é não se acomodar e aprender.

É durante a Reunião de Retrospectiva que ocorre o aprendizado, é quando você vai evitar cometer os mesmos erros na iteração 2.

Recomendo evoluir durante a reunião um Value Stream Map ou uma Análise SWOT. Mapear a cadeia de valor irá tornar a forma de trabalho do time mais focada em gerar valor para o cliente. Na análise SWOT, sugiro avaliar o que pode ser feito para melhorar cada ponto elencado como fraqueza ou ameaça. Atenção especial aos erros de estimativas e aos incrementos de escopo descobertos durante a iteração.

No caso de uma insatisfação do Product Owner quanto à entrega, sugiro ao ScrumMaster expôr a ele os pontos relevantes da análise SWOT e, inclusive, dar seu feedback sobre o Product Owner, a fim de que ele melhore continuamente seu desempenho neste papel.
E agora?

Deixe seu comentário contando como foi sua primeira iteração. E bom trabalho na segunda!

Adriano Campestrini Metodologia, Riscos