Gerenciamento de projetos com Scrum. Resumo: O framework Scrum permite gerenciar projetos de forma simples, focando nos artefatos e eventos mais importantes ao desenvolvimento do software, reduzindo o tempo utilizado na elaboração de documentos e formalidades desnecessárias. A proximidade e participação do cliente fornecendo informações sobre requisitos durante o desenvolvimento do projeto reduz o tempo gasto produzindo documentos de requisitos e com isso o projeto é concluído em menor tempo. O Framework Scrum. Scrum é um framework de gerenciamento de projetos de desenvolvimento de software caracterizado pela flexibilidade dos requisitos do projeto. O framework Scrum permite o desenvolvimento de projetos onde os requisitos não são completamente conhecidos no início ou mudam durante o desenvolvimento do projeto. Em projetos gerenciados com Scrum acontece maior comunicação entre o cliente, que define os requisitos, e os programadores que o implementam. O framework Scrum organiza os membros do time definindo papéis para eles, suas respectivas atividades e os produtos gerados por elas. Dessa forma, cada membro do time tem um papel definido e o escopo de suas atividades está definido pelo seu papel. Cada membro do time é responsável pelos produtos definidos pelas suas atividades no projeto. Os papéis definidos pelo framework Scrum são: Scrum Product Owner, Scrum Master, and the Scrum Team. A principal função do Scrum Product Owner é gerenciar os requisitos. Os requisitos são todos armazenados em uma fila chamada Backlog. É responsabilidade do Scrum Product Owner organizar os requisitos e definir as prioridades dos mesmos. Os requisitos tem o formato de historias. Um exemplo de historia é o seguinte: “Sendo um usuário autenticado no sistema, eu quero editar um produto do cadastro de produtos.” No exemplo acima, a historia especifica que somente usuarios autenticados devem ter acesso a edição de produtos. Trata-se de um requisito funcional onde o usuário executa uma operação do sistema. Existem outros tipos de historias referentes a requisitos não-funcionais, por exemplo: “Criar script para configurar banco de dados.” Exemplo de Backlog: # História 1 Criar script para configurar banco de dados. 2 Sendo um usuário autenticado no sistema, eu quero editar um produto do cadastro de produtos. Prioridade Estimativa (hrs) alta 2 media 6 O Backlog pode ser alterado pelo Scrum Product Owner em qualquer momento do projeto. Porém, ele deve ser o primeiro a ser criado, antes do projeto começar, pois todas as demais atividades dependem dele. Observe que no momento em que os requisitos são definidos, não há necessidade de documentos completamente detalhados. O Framework Scrum aceita o fato de que os requisitos podem mudar ou não são totalmente conhecidos no início do projeto. Os documentos de baixo nível, como detalhes de formulários ou telas, são fornecidos pelo Scrum Product Owner somente no momento em que eles estão prestes a serem implementados pelos programadores. Isso torna necessária maior comunicação entre o Scrum Product Owner, Scrum Master e os programadores durante a execução dos requisitos. O Scrum Master é outro papel importante no Framework Scrum. Suas principais tarefas são coordenar tecnicamente o trabalho dos programadores eliminando suas duvidas ou quaisquer problemas que estiverem atrapalhando suas tarefas, além de conduzir as reuniões definidas pelo framework Scrum. O número sugerido de membros em um time é 7 pessoas, sendo um Scrum Master e um Scrum product Owner para cada cinco programadores. Se houver a necessidade de maior quantidade de recursos, outros times podem ser criados para executar simultaneamente os requisitos do mesmo Backlog. Neste caso, os Scrum Product Owners dos times serão gerenciados pelo Chief Scrum Product Owner. As reuniões definidas pelo framework Scrum são listadas abaixo e ocorrem na seguinte ordem: 1.Sprint Planning Meeting: As entregas dos produtos da execução dos requisitos são feitas em grupos de requisitos. O grupo de requisitos que serão entregues juntos define a Sprint. A Sprint é a execução de um determinado grupo de requisitos escolhidos de acordo com suas prioridades e tempos necessários para execução (estimativas). Todos os membros do time participam na seleção dos requisitos que serão incluidos na Sprint: O Scrum Master e os programadores definem o tempo necessário para executar cada requisito enquanto o Scrum Product Owner seleciona os requisitos que devem ser priorizados. Este planejamento da Sprint é o primeiro evento de cada Sprint, chamado Sprint Planning Meeting e define o que será feito e como será feito. Os requisitos devem ser selecionados de forma que o tempo necessário para executar a Sprint seja de 2 a 4 semanas. Planning Poker: O Planning Poker permite obter a estimativa por meio de um jogo de cartas, que deve permitir que todos os membros do time participem colocando a sua opiniao de complexidade atraves da carta do baralho. No Planning Poker cada integrante tem a sua disposição um baralho de 13 cartas, numeradas em uma sequência similar a encontrada nos números de Fibonacci. As cartas contém os tamanhos de 0, ½, 1, 2, 3, 5, 8, 13, 20, 40 e 100, havendo ainda uma carta com o símbolo de interrogação no qual representa que o estimador não está apto a estimar. Durante o Planning Poker devem ser realizadas rodadas para obter a estimativa de um requisito a desenvolver. As diferenças que surgirem durante as rodadas deverão ser mediadas por um coordenador, que no Scrum este papel é de responsabilidade do Scrum Master. O Product Owner, é o responsável por explicar o que deverá ser desenvolvido, sendo um importante papel para retirar possíveis dúvidas a respeito do cartão, evitando assim, o retrabalho. 2.Daily Scrum Meeting: Todos os dias, antes de iniciar o trabalho, o time é reunido por 15 minutos, em pé, para cada membro informar os seguintes itens: – O que fez no dia anterior ou depois da ultima reunião. – O que vai fazer no dia. – Se existem problemas que estejam atrapalhando suas tarefas. 3.Sprint Review Meeting: Após os requisitos ou tarefas da Sprint terem sido todos executados ou o prazo ter sido encerrado, o time mostra ao Scrum Product Owner os produtos que foram gerados pela execução dos requisitos. Nesta reunião, o Scrum Product Owner aceita os resultados ou solicita correções e alterações através da criação de novos requisitos no Backlog. 4.Sprint Retrospective Meeting: O limite de requisitos de uma Sprint é restrito ao tempo e quantidade de membros no time. Os requisitos presentes no Backlog não são todos executados em uma unica Sprint. O restante dos requisitos presentes no Backlog são executados propositalmente em Sprints subsequentes para permitir a melhoria continua. Entre a entrega de uma Sprint e o inicio da próxima, acontece a Sprint Retrospective Meeting, onde os erros ou problemas da Sprint anterior são analisados pelo time para que não voltem a acontecer na Sprint seguinte. Características do processo Agile de desenvolvimento de projetos. O framework Scrum possui, portanto, as seguintes características de projetos Agile: • Desenvolvimento incremental e iterativo: cada Sprint, desde seu planejamento até a entrega constitui uma iteração. Ocorrem várias Sprints durante o projeto, sempre incrementando o código já existente. • Realiza entregas de software frequentemente. • Envolve o cliente durante o desenvolvimento do software. • O time possui membros com diferentes funções e se auto organiza na forma que considera mais eficiente. Relatorio de progresso da Sprint: Sprint Burndown. O grafico Sprint Burndown mostra a quantidade de trabalho restando a fazer em horas por dia de trabalho. Esta relação permite calcular a velocidade da equipe e prever o término das tarefas da Sprint. Exemplo de grafico Sprint Burndown. Referencias: http://www.scrum-institute.org http://www.devmedia.com.br Sobre o autor: Gustavo Antonio Toretti ([email protected]), é certificado como Scrum Web Developer, IBM Solution Designer for IBM Rational Unified Process (RUP), entre outras tecnologias utilizadas em desenvolvimento de software e tem mais de 10 anos de experiência desenvolvendo sistemas.