Definição da Metodologia
Introdução
Para a realização do projeto de forma organizada a equipe adotou uma metodologia de trabalho Ágil que mescla características de outras metodologias consolidadas, que são: Scrum, XP e Kanban.
Scrum
É a metodologia que abrange a maioria dos ritos estabelecidos pela equipe, oferenco ao time práticas como a adoção de Sprints para delimitar os incrementos realizados pela equipe e o estabelecimento de dos papéis de PO e Scrum Master.
EXtreme Programming (XP)
Metodologia que agrega à equipe a prática de Pair Programming.
Kanban
A equipe optou pela utilização dessa metodologia para visualização dos fluxos de trabalho da equipe ao longo de uma sprint, de forma a separar as atividas de To Do(A Fazer), Doing(Fazendo) e Done(Feito). Para utilizar, na prática, a equipe dispõe da extensão ZenHub do próprio GitHub.
Papéis da Equipe
Para que a equipe garanta um bom gerenciamento do projeto e alcance o objetivo de entregar o produto de forma satisfatória alguns papéis específicos foram definidos para os membros do time.
Product Owner (PO)
Possui as seguintes atribuições dentro do projeto:
- Definir o Backlog do Produto e garantir que seja visível para todos os membros do time.
- Definir os itens com maior valor para o cliente e explicitá-los ao time.
- Vender o produto desenvolvido.
- Possuir visão de negócio.
- Negociar com o time e o cliente as possibilidades de backlog do produto.
- Definir o Canvas do produto.
Scrum Master
Tem como responsabilidades na equipe:
- Garantir que a equipe aprenda, compreenda e siga os valores e práticas do Scrum.
- Definir o Backlog da Sprint de acordo com as prioridades definidas pelo PO.
- Garantir a compreensão do itens do Backlog da Sprint.
- Gerenciar as Daily Meetings.
- Gerenciar a Revisão da Sprint.
- Gerenciar a Retrospectiva da Sprint.
- Remover impedimentos para o bom trabalho da equipe.
- Documentar cada Sprint.
- Definir e analisar métricas e indicadores para garantir o desempenho do time a cada Sprint.
DevOps
Possui como deveres:
- Garantir a integração contínua.
- Garantir o deploy contínuo.
- Automatizar o ambiente de desenvolvimento utilizado pelos membros da equipe.
- Gerenciar os ambientes de desenvolvimento, homologação e produção.
- Organizar o pipelone do produto.
Arquiteto
Possui as seguintes atribuições:
- Determinar a arquitetura que será utilizada para o desenvolvimento do produto.
- Garantir que a equipe de desenvolvimento siga a arquitetura definida.
Desenvolvedores
Os Desenvoldedores da equipe possuem as responsabilidades de:
- Desenvolver os produto de acordo com o Backlog definido a cada Sprint.
- Seguir os valores e práticas do Scrum.
Ritos da Equipe
Os ritos são as práticas adotadas pela equipe para a execução do projeto de acordo com a metodologia definida. A seguir, é possível visualizar os ritos estabelecidos pela equipe do NaturalSearch com suas respectivas descrições e tempo de execução, caso exista.
Sprint
A sprint é o tempo definido para a realização de determinadas atividades pré-definidas que agregam valor ao produto em desenvolvimento.
Objetivo(s):
- Realizar microincrementos ao produto de acordo com o planejamento.
Time Box:
- Segunda à Sábado (6 dias)
Planejamento da Sprint
- O planejamento é uma reunião realizado antes de cada sprint e é guiada pelo Scrum Master.
Objetivo(s):
- Definir o Backlog da sprint de acordo com as prioridades definidas pelo PO.
- Estimar o esforço de cada item do backlog da sprint realizando o planning poker.
- Determinar a organização da equipe para garantir a entrega dos itens definidos para a sprint que se inicia.
Time Box:
- aos sábados durando aproximadamente 1 hora.
Daily Meeting
É uma reunião realizada diariamente entre todo o time Scrum durante uma sprint.
Objetivo(s):
- Garantir a comunicação da equipe, de modo a manter todos os membros informados sobre as atividades sendo realizadas por cada mebro do time.
- Responder a três perguntas básicas:
- O que fez no dia anterior?
- O que fará durante o dia de hoje?
- Há algum impedimento para que possa realizar as atividades da sprint?
Time Box:
- reuniões presenciais:
- terças e quintas com início as 15:45.
- reuniões online:
- segunda, quarta e sexta via hangouts às 20:30.
Duração:
- Aproximadamente 15 minutos.
Pair Programming
Prática utilizada para a divisão do time em duplas de trabalho.
Objetivo(s):
- Garantir a passagem de conhecimento entre os membros do time.
- Minimizar a ocorrência de erros durante o desenvolvimento do produto.
Revisão da Sprint
Reunião realizada ao final de cada sprint.
Objetivo(s):
- Revisar o que foi entregue do Backlog da Sprint.
- Verificar se houve débito do Backlog da Sprint.
- Idenficar possíveis problemas no Backlog da Sprint.
Time Box:
- aos sábados durando aproximadamente 1 hora.
Retrospectiva da Sprint
Reunião realizada ao final de cada sprint.
Objetivo(s):
- Avaliar a Sprint do ponto de vista metodológico e de relacionamento interpessoal da equipe.
- Identificar problemas diversos, como: comunicação, forma de trabalho, etc.
- Propor melhorias para os problemas identificados.
Time Box:
- aos sábados durando aproximadamente 1 hora.