PDF do tutorial do Ricardo da Silva Coelho sobre o Sprintometer http://sprintometer.com/node/82 Tips in Portuguese Our great acknowledgments to Ricardo da Silva Coelho who is using Sprintometer in his daily work on agile projects and kindly shared with us 'Sprintometer Quick Tips' he prepared in Portuguese language. Parte 1 - Início da Série Parte 2 - Como criar e configurar projetos Parte 3 - Como criar e configurar um sprint Parte 4 - Como definir os recursos humanos do sprint Parte 5 - Como criar as estórias so sprint Parte 6 - Como criar as tarefas do sprint Parte 7 - Como atualizar a evolução das tarefas Parte 8 - Como registrar solicitações de mudança Parte 9 - Como acompanhar e identificar a velocidade da equipe Parte 10 - Como acompanhar o projeto com o gráfico BurnDown Parte 11 - Relatório de acompanhamento de estórias Parte 12 - Relatório de sumário do projeto Parte 13 - Relatório de carga de trabalho Parte 1 - Início da Série Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 1 Nesta quick tip começaremos uma série sobre a ferramenta Sprintometer para controle e acompanhamento de projetos ágeis com SCRUM e XP. O Sprintometer é uma ferramenta que permite o gerenciamento e acompanhamento do desenvolvimento de projetos ágeis. É uma ferramenta bem simples, porém que pode atender muitos projetos. Como principais recursos, podemos citar: Gráfico BurnDown Gráfico de trabalho restante/concluído Monitoramento de sprints/iterações com possibilidade de composição da equipe Monitoramento separado das tarefas de desenvolvimento e teste Monitoramento de alterações de requisitos Calculo de escopo diário a ser desenvolvido e testado Exportação para o Excel de todos os gráficos e planilhas Associação de recursos à tarefas e estórias Primeiramente baixe a versão free do Sprintometer, no link abaixo: http://sprintometer.com/sites/default/files/sprintometer.zip Para usá-lo basta extrair o mesmo e abrir o exe, não é necessário instalação. A página inicial do Sprintometer é a seguinte: Parte 2 - Como criar e configurar projetos Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 2 Nesta quick tip veremos como criar e configurar um projeto no sprintometer. No Sprintometer, temos a seguinte hierarquia de elementos: - Projeto - Sprint - Story - Task Para criar um novo projeto, clique em File-New, conforme demonstrado na figura abaixo. Uma tela será aberta para selecionarmos qual o tipo de projeto, vamos trabalhar com SCRUM no nosso exemplo. Feito isso, temos que definir as configurações básicas do nosso projeto: Como podemos observar, aqui já definimos qual será a unidade de medida de nossas tarefas. Esta configuração será usada para todas as tarefas do projeto. Isso é importante pois diferentes projetos, equipes e empresas adotam unidades diferentes de medição. Isso dá flexibilidade para atender as mais variadas técnicas de medição existentes. Parte 3 - Como criar e configurar um sprint Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 3 Nesta quick tip veremos como criar e configurar um sprint no sprintometer. Com nosso projeto devidamente criado e configurado, precisamos agora criar o nosso sprint. O Sprint é também uma iteração em ambientes XP. No Scrum oi sprint é o período de tempo no qual nos comprometemos a entregar um determinado conjunto de funcionalidades previamente acordado antes do início do sprint. Um sprint constuma durar entre 2 e 4 semanas. Para criarmos nosso sprint basta clicarmos com o botão direito do mouse sobre o nosso projeto, e ir na opção ADD SPRINT. A janela abaixo se abrirá: Nesta primeira aba configuramos o nome do sprint, e as datas de trabalho do mesmo. Selecionamos na combo "Start Date" o início de nosso sprint e em "End Date" a data final da sprint. Ao definirmos isso, o sistema carrega as datas deste intervalo, destacando em vermelho as datas do final de semana. Então selecionamos estas datas e jogamos para a lista da direita ”No Work Dates”, isso será importante para a montagem do burnDown, para que estes dias não sejam considerados. Ao lado esquerdo em “Last Reported Date”, temos a última data cuja evolução do trabalho foi reportada e atualizada no projeto. Vamos definir para um dia antes do início do projeto. Assim sendo, temos a seguinte configuração do nosso sprint. Parte 4 - Como definir os recursos humanos do sprint Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 4 Nesta quick tip veremos como definir os recursos humanos de um sprint no sprintometer. Em um projeto scrum, temos apenas três papéis definidos, Scrum Team, Scrum Master e Product Owner. Sendo que no Scrum Team não temos a divisão de analista, gerente, programador, estágiário etc... No sprintometer também não temos essa divisão, temos apenas a divisão entre Teste e Codificação. Para criarmos os recursos humanos que farão parte do sprint, vá na aba “Resources and Budgets”. Nesta aba iremos definir os membros de nossa equipe que executarão as atividades do nosso sprint. Como podemos ver acima, estamos inserindo o “Ricardo Coelho” para codificação e podemos também determinar o valor/hora do mesmo em “Hourly rate”. Isso é importante para fornecermos resultados sobre investimento do projeto que muitas vezes são solicitados pela direção da empresa. Quando definirmos nossas estórias, poderemos alocar até duas pessoas para as mesmas, seguindo a premissa de que pode haver pair programming no projeto. Vamos configurar mais alguns recursos de forma que fique assim: Parte 5 - Como criar as estórias so sprint Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 5 Nesta quick tip veremos como criar as estórias de nosso sprint no sprintometer. Em projetos ágeis é muito comum termos as estórias dos usuários como sendo um ponto chave do levantamento de requisitos, elas representam uma funcionalidade do sistema em alto nível, informando qual recurso deve ser implementado e como o mesmo deve funcionar, porém sem um detalhamento muito extensivo. As estórias são posteriormente quebradas em tarefas, que serão executadas pela equipe. Para criarmos nossas estórias, clique com o botão direito do mouse sobre o sprint e vá na opção “Add Story”. A tela de criação de estórias é a seguinte: Nesta tela nós definimos o ID da estória, a prioridade, o nome e o conteúdo. No sprintometer nós não definimos as estimativas na estória. As estimativas são definidas mais a frente nas tarefas, sendo que o total das estimativas das tarefas representa a estimativa da estória. Na aba “Tasks” temos uma visão sumarizada das tarefas da estória, voltaremos aqui mais a frente quando tivermos criado nossas tasks e atualizado a evolução das mesmas. Parte 6 - Como criar as tarefas do sprint Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 6 Nesta quick tip veremos como criar as tasks que compõem nossas estórias no sprintometer. . Vimos anteriormente a criação de estórias e comentamos que as mesmas são desmembradas em tasks. Pois então, o ideal é desmembrarmos as estórias em tarefas de menor tamanho possível, quanto menor a tarefa, melhor. Isso nos possibiltia distribuir melhor as tarefas entre a equipe, estimar melhor o tempo da mesma e também acompanhar melhor a evolução do sprint. Normalmente estas tarefas são representadas em Post-it's em um quadro Kanban, onde a equipe tem uma idéia visual a imediata da evolução do sprint. Para criarmos nossas tasks, clique com o botão direito do mouse sobre a estória e vá na opção “Add Task”. A tela de criação de tasks é a seguinte: Nesta tela definimos a estimativa inicial da tarefa, no nosso caso em Story Points(st.p.) pois é a medição que adotamos quando criamos o projeto. Definimos também o nome e a descrição da tarefa, além de associar a mesma a um ou dois executores. Em work type, podemos definir se é uma tarefa de codificação ou teste. Na parte inferior temos um acompanhamento com a evolução diária da tarefa, voltaremos aqui quando falarmos sobre a atualização e acompanhamento da evolução do projeto. Parte 7 - Como atualizar a evolução das tarefas Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 7 Nesta quick tip veremos como atualizar a evolução das tarefas no sprintometer. Mais importante do que criar o projeto, definir os sprints, as estórias e as tarefas, é atualizar e acompanhar a evolução do sprint e do projeto. É com a atualização diária que conseguiremos o acompanhamento ideal do sprint, sabendo se estamos no caminho certo, se conseguiremos entregar no prazo, se precisaremos mudar algo. Como a estimativa e realizada a nível de tarefa, então a atualização da evolução também é a nível das mesmas. Para atualizar as tarefas, nós precisamos atualizar a informação do último dia de atualizações reportadas no sprint, para isso temos que ir no nosso sprint na aba “General”. Conforme figura abaixo: Observe que “Last Reported Date” continua com a definição inicial do dia 07 de Março. Vamos clicar no botão “Select Next Reported Date” para então lançarmos a evolução que tivemos no dia 08. Note que ao clicarmos neste botão a “Last Reported Date” foi alterada para o dia 08 de março. Observe que “Last Reported Date” continua com a definição inicial do dia 07 de Março. Vamos clicar no botão “Select Next Reported Date” para então lançarmos a evolução que tivemos no dia 08. Note que ao clicarmos neste botão a “Last Reported Date” foi alterada para o dia 08 de março. Agora que atualizamos a última data de trabalho do sprint, vamos às tarefas para atualizar a evolução das mesmas. Ao abrirmos a tarefa, observe que na parte inferior, apareceu agora uma coluna para a o dia 08/03, que é a última data de atualização reportada. Para atualizarmos a evolução desta tarefa, basta digitar no campo vermelho pontilhado a quantidade de pontos executados seguido da quantidade de pontos restantes para a conclusão da tarefa. Por exemplo, se executamos 6 pontos e faltam 4 para concluir a tarefa, então devemos digitar 6/4. Esta é uma forma de atualizar cada tarefa, se tivermos muitas tarefas para atualizar, isto pode se tornar um pouco trabalhoso, visto que temos que abrir cada tarefa para fazer a alteração. Para atualizarmos de forma mais dinâmica as tarefas, podemos abrir a estória e acessar a aba “Tasks”, conforme figura abaixo: Observe que temos uma tarefa em azul, é porque é uma tarefa de teste. Observe também que ao digitarmos as horas executadas/pendentes o sistema automaticamente atualiza o status da estória com a evolução (%) da mesma. No exemplo àcima 42% do total da estória foi concluída neste primeiro dia, sendo que 44% do total de codificação e 33% do total de testes. Podemos fazer esta atualização também a nível de sprint, visualizando todas as estórias e suas respectivas tarefas. Para isso basta acessarmos o nosso sprint e irmos na aba Stories, conforme figura abaixo: Para acessarmos rapidamente uma tarefa ou estória, basta clicarmos no seu ID(que está sublinhado). Com isso podemos também acompanhar a evolução diária a nível de tarefa, estória ou sprint. Parte 8 - Como registrar solicitações de mudança Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 8 Nesta quick tip veremos como registrar solicitações de mudanças no sprintometer. Por mais que o Scrum pregue que não é permitida nenhuma alteração nos requisitos após o início do sprint, a realidade que enfrentamos nem sempre nos permite impedir que uma alteração seja feita, algumas vezes conseguimos, outras temos que acabar cedendo. A questão é conseguirmos monitorar isso para não sermos questionados sobre possíveis atrasos ao final do sprint. O Sprintometer nos permite indicar quais tarefas são solicitações de mudanças, com isso podemos rastrear e justificar possíveis atrasos na entrega do sprint. Para isso basta marcamos a opção “Change Request” e definirmos a data da mesma. Conforme figura abaixo: Mais a frente, quando analisarmos o BurnDown, teremos como identificar que houve esta solicitação de mudança no dia 08, causando um possível atraso na entrega do sprint. Também podemos usar este recurso para identificarmos tarefas não previstas, como por exemplo uma alteração necessária na arquitetura devido a um requisito mal detalhado, ou seja, não precisamos nos prender a usar este recurso apenas para registrar as mudanças de requisitos do BackLog. Parte 9 - Como acompanhar e identificar a velocidade da equipe Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 9 Nesta quick tip veremos como acompanhar e identificar a velocidade da equipe no sprintometer. Em qualquer projeto de software, a medida que o projeto vai evoluindo, os prazos vão ficando mais precisos, isso porque a medida que o tempo passa, vamos conhecendo melhor a equipe, conhecendo melhor os problemas, e também conhecendo a capacidade de produção da equipe para solução de problemas e desenvolvimento de novas rotinas. É baseado nessa capacidade de produção, que chamamos de velocidade, que definimos o escopo dos próximos sprints, que avaliamos se conseguiremos entregar o que foi proposto no prazo, e isso nos permite tomar decisões durante o sprint, como por exemplo negociar a entrega de algum recurso menos prioritário, inserindo ele no backlog do próximo sprint O Sprintometer nos fornece um gráfico para identificarmos diária a velocidade da equipe. Para acessarmos o mesmo, basta irmos no sprint, e abrir a aba “Track Chart”. Neste gráfico, a linha verde indica a velocidade da equipe. Ao somarmos a velocidade de todos os dias e dividirmos pela quantidade de dias, encontramos a velocidade média da equipe. Com isso, podemos verificar quanto de escopo ainda falra para ser concluído e avaliar o quanto estamos próximos ou distantes de entregar o escopo prometido no prazo acordado. No gráfico BurnDown que é gerado pelo sprintometer, já é realizada esta previsão, nos indicando qual a previsão de término do escopo, baseando-se nessa velocidade média da equipe. É interessante ressaltar também que este indicador pode nos dizer quando houve algum problema, por exemplo, se temos uma média de conclusão 20 pontos por dia durante 6 dias do sprint e no sétimo dia fazemos apenas 13, indica que alguma coisa fora do planejado ocorreu, talvez uma mudança inesperada, algum ausência na equipe etc... É importante realizarmos o cruzamento dessas informações pois assim não perdemos o controle do andamento do projeto, pois sabemos que a equipe tem uma produção média de X porém em determinado do projeto aconteceu uma fato Y que impactou no desempenho da equipe. Parte 10 - Como acompanhar o projeto com o gráfico BurnDown Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 10 Nesta quick tip veremos como acompanhar o projeto usando o gráfico BurnDown. Um dos gráficos mais usados em projetos ágeis, em SCRUM para ser mais preciso, é o BurnDown. Este gráfico nos permite ter uma visão da evolução diária do projeto, além de nos permitir fazer projeções do término do sprint, baseado na velocidade da equipe. O Sprintometer gera este gráfico para nós automaticamente, baseado nas informações de evolução(s.p concluídos / s.p restantes) que inserimos nas tarefas. Para acessarmos o mesmo, basta abrir o sprint e clicar na aba “Scope Chart”, como na figura abaixo: O burndown àcima nos mostra que nossa a estimativa inicial do sprint era de 24 horas e que após o primeiro dia restaram 20 pontos para serem entregues, sendo que 6 pontos foram de solicitações de mudanças(Parte amarela da barra). Após o segundo dia, restaram 15 pontos, no terceiro 10 e no quarto 9 pontos para o término das funcionalidades. Observe agora a margem branca, esta margem é desenhada de acordo com a velocidade da equipe, tendo como base o menor e o maior desempenho diário da equipe e o desempenho médio. Ou seja, se a equipe mantiver a velocidade média de 6 pontos/dia, o sprint terminará entre o dia 12 e o dia 15(Linha contínua vermelha, no centro da área branca). OBS: Fiz o lançamento de mais alguns dias para facilitar o entendimento do gráfico Parte 11 - Relatório de acompanhamento de estórias Quick Tips: Controlando projetos ágeis com Sprintometer Parte - 11 Nesta quick tip veremos o relatório de acompanhamento de estórias. Este relatório é bastante interessante para os Clientes, pois permite ver quais estórias já estão completas e qual o andamento das que estão em execução. Para acessarmos este relatório, basta irmos no Sprint e acessarmos a aba “Story Readinesse Report”, conforme figura abaixo: Como podemos ver, temos um posicionamento consolidado da evolução de cada estória. Nos permitindo saber qual recurso pode ser entregue ao cliente, qual pode ser entregue à homologação e qual ainda está em desenvolvimento. Parte 12 - Relatório de sumário do projeto Quick Tips: Controlando projetos ágeis com Sprintometer Parte – 12 Nesta quick tip veremos o relatório de sumário do projeto. Este relatório nos fornece indicadores úteis no dia a dia de um projeto ágil. Veremos alguns deles abaixo. Para acessarmos o mesmo basta irmos no Sprint e selecionarmos a aba “Summary Report”. Como podemos ver na figura acima, temos os seguintes indicadores: - “Work Day Left” indica quantos dias restam até o fim do sprint. - “Total done story points for the last day” indica o total de story points concluídos até o ultimo dia de trabalho reportado. - “Overral done %“ indica o percentual do sprint que foi concluído e o percentual de implementação e teste. - “Average story points to do daily to be on track“ indica a media de story points diários necessários para concluir o sprint com sucesso. - “Average tram velocity“ indica a velocidade média da equipe Parte 13 - Relatório de carga de trabalho Quick Tips: Controlando projetos ágeis com Sprintometer Parte – 13 Nesta quick tip veremos o relatório de carga de trabalho. Este relatório nos permite identificar possíveis sobrecargas em determinados membros da equipe, assim como avaliar a média de story points concluídos de cada membro e a quantidade restante. Além disso podemos ver quantos s.p ainda não foram alocados para nenhum executor. Para acessarmos este relatório, basta abrirmos o sprint e selecionarmos a aba WorkLoad Report. Neste relatório, podemos ver na coluna “Assigned” quantos story points foram alocados para cada membro da equipe, na coluna “Done” vemos quantos story points cada membro da equipe concluiu, na Coluna “Average Daily Done” temos a media diária de story points concluídos por cada membro da equipe. Na coluna “To do” temos o restante de pontos que cada membro tem em seu nome. “Average daily to do“ nos fornece quantos pontos por dia em média cada membro da equipe precisa concluir para finalizar todos os story points que estão em seu nome. “Done Last day“ indica quantos story points foram concluídos no último dia de trabalho.