pontoNETpt
A comunidade PontoNetPT está direccionada a todos os programadores que trabalhem com a plataforma .NET.
SCRUM Overview

Assisti na minha empresa a uma apresentação sobre SCRUM feita pelo Paulo Traça da Logical Software e aproveito para deixar convosco o que pude reter da mesma. 

Tópicos:

 1.O que é?
 2.Porque usar?
 3.Actores
 4.Artefactos
 5.Actividades


1. O que é? 

É um processo ágil ou uma framework para gestão de projectos agéis.
O nome tem origem num evento de Rugby "onde um grupo de pessoas discute educadamente a posse de uma bola" - Ken Schwaber
Dá-se ênfase na transparência e foca-se muito na equipa.
As equipas são pequenas e "Cross functional".
É um processo iterativo e incremental.
O feedback é em loop (Inspect/ Adapt/ Loop).
É um conjunto de boas práticas e algumas regras simples.


2. Porque usar Scrum?

Todos sabemos que ao longo do projecto os requisitos do cliente definidos no ínicio do projecto, são alterados.
Para quem desenvolve essas mudanças não são bem aceites, e para o cliente torna-se dificil definir logo de raiz o que vai necessitar.



Para além de os requisitos do cliente alterarem ao longo do projecto, outros pressupostos também se alteram:

  • Tecnologia
  • Processos de negócio
  • Relevância do negócio da aplicação
  • Mercado

É preciso "abraçar a mudança".

“ O processo de desenvolvimento de software é um caos controlado, é necessário, aceitar o caos, e implementar os mecanismos de controlo.”

O objectivo do Scrum é entregar uma solução de software que cumpra os objectivos do cliente, mas que também seja benéfico para quem a desenvolve. 

3. Actores 



Baseado nesta história, existem dois tipos de pessoas no Scrum:

  - Galinhas - apenas envolvidas com o projecto
  - Porcos - totalmente comprometidos com o projecto 

Estes correspondem ao segundo grupo: 

  Product Owner
  Alguém interno que conheça bem as necessidades do negócio do cliente.
  
É o responsável pelo Product Backlog, organiza e prioritiza os itens do mesmo.
  
Avalia as entregas feitas pela equipa após cada sprint, validando se correspondem ao que foi solicitado pelo cliente.

  Scrum Master
  É aquele que garante que a framework de scrum seja aplicada no projecto, ensina, evangeliza e faz cumprir as práticas e os valores do Scrum.
  
Tem a responsabilidade de remover quaisquer impedimentos que possam surgir durante o desenvolvimento das tarefas da equipa.
 
Deve proteger a equipa de ruídos externos, a equipa não deve ser incomodada durante os sprints.
 
Conjuntamente com o Product Owner organiza e prioritiza o Product Backlog.

  Team Members
  A equipa dever ter entre 6 a 10 membros, idealmente 7.
 
São aqueles que realmente desenvolvem o produto.
 
São os reponsavéis pelo Sprint Backlog, são eles que definem as tarefas que vão ser realizadas durante cada sprint.
 
Qualquer membro deve ser capaz de realizar qualquer tarefa. Não se dá foco a que cada membro tenha uma especialização, mas sim que seja uma equipa "Cross-Functinal".
 
A equipa é um grupo de pessoas que trabalham unidos como uma comunidade de modo a resolverem um problema.

 4. Artefactos 

   Product Backlog
   Uma lista de requisitos do cliente, ordenada e prioritizada. Esta lista deve ser alterada apenas pelo Product Owner. Mas é ordenada e prioritiza em conjunto com o Scrum Master.  

   Sprint Backlog
   Uma lista de tarefas detalhadas que serão realizadas durante o sprint. Estas tarefas são definidas pela equipa em conjunto com o Scrum Master.
   A cada tarefa é atribuída uma "baseline", a duração do seu desenvolvimento, esta pode ser expressa em horas ou em percentagem 

   BurnDown Chart
   Um gráfico que permite ver o desvio do que a equipa tem que fazer e o que já está feito. 

Iteration Wall
Uma parede dividida em 3 ou mais colunas (ex.;To Do, In Progress e Done).
Colocam-se post-its com as tasks desse sprint e movem-se as tasks de uma coluna para outra à medida que o seu estado vai mudando.
A estrutura destas paredes pode variar desde o mais simples até o mais complexo.





5. Actividades
 

   Sprint Planning
   Reunião entre o Scrum Master e a equipa para escolherem entre as tarefas mais prioritárias do ProductBacklog, quais as que irão se comprometer a realizar durante o próximo sprint. 

   Sprint
   É uma iteração com a duração recomendada de 2 a 4 semanas, onde a equipa desenvolve as tarefas com que se comprometeu. Durante este período a equipa não pode ser incomodada e é da responsabilidade do Scrum Master garantir isso. 

   Sprint Review
   Avaliar se o objectivo do Sprint foi cumprido. No fim de cada Sprint o que é entregue está pronto para ser colocado em produção se o cliente assim o desejar. 

   Sprint Retrospective
   Visto que o Scrum é um processo de auto-melhoramento - no fim de cada Sprint a equipa reúne-se e fala sobre as coisas que correram mal, sobre o que correu bem e sobre o que é preciso melhorar no próximo sprint. 

   Daily Scrum
   É uma reunião diária entre o Scrum Master e a equipa, para saber o que cada um fez no dia anterior, o que cada um tem planeado para fazer nesse dia, e que impedimentos precisam de ser removidos pelo Scrum Master.
   Qualquer pessoa pode assistir a essa reunião mas não lhes é permitido falar, nem mostrar de qualquer forma a sua aprovação ou desaprovação, apenas podem ouvir, têm que ser invisivéis.
   A duração recomendada desta reunião é de 15 min.
   O que ajuda a não ultrapassar estes 15 min é fazer a reunião em pé, "Daily Stand Up", e focarem-se apenas nas 3 perguntas chaves.
   Embora se reportem os impedimentos no Daily Scrum, esses não serão resolvidos nessa reunião.

Conclusão

Apesar de o Scrum ser uma excelente framework para gestão de processos, não é recomendado para todo o tipo de projecto.
Cada caso é um caso. Cabe a todos os envolvidos validar se esta framework se adapta ao projecto em questão ou não. 


Sónia Moreira

?>


Posted 12-12-2007 19:26 por Sónia Moreira
Filed under:

Add a Comment

(requerido)  
(opcional)
(requerido)  
Remember Me?
If you can't read this number refresh your screen
Enter the numbers above:  
Powered by Community Server (Commercial Edition), by Telligent Systems