Data Versão Descrição Autor
20/03/2019 0.0.1 Criação do documento de metodologia Kamilla Costa

   Este documento tem o objetivo de esclarecer as metodologias ágeis adotadas para o projeto **Aix**. Abaixo, encontra-se descrito as metodologias bases (Scrum e Kanban), papeis e artefatos selecionados, suprindo assim, as necessidades de organização e atividades da equipe.

  O Scrum é um framework que preza pela entrega de valor ao cliente de maneira rápida, criativa, onde sua equipe trabalha de forma produtiva.

  Tem como artefatos Product Backlog, Sprint Backlog e incrementos. Atividades, tem as Sprints, Sprints Planning, Daily Scrum, Sprint Review e Retrospectiva da Sprint. E como artefatos temos o Product Backlog e Sprint Backlog.

   Algumas práticas que iremos adotar desta metodologia são: Pair Programming, Integração Contínua, Padrão de Código e Testes.

Papéis

Product Owner

  • Atribuições
    • Organizar o Product Backlog em ordem de prioridade, de forma a entregar valor ao cliente e manter a coesão do produto;
    • Garantir que o Product Backlog esteja de forma clara;
    • Assegurar que os Desenvolvedores entendam o Product Backlog no nível de especificação necessário;
    • Trabalhar a venda do produto de software;
    • Fazer o intermédio entre cliente e equipe;
    • Mostrar a visão do produto em documentos como Canvas.

Scrum Master

  • Atribuições
    • Garantir que o Product Backlog seja feito, de acordo com a priorização do Product Owner, pelos Desenvolvedores;
    • Certificar-se que os rituais ageís sejam realizados por toda a equipe da forma como foi descrito;
    • Mapear o progresso da equipe e do desenvolvimento do produto, assim como suas falhas e questões a melhorar;
    • Documentar o processo de cada Sprint.

Arquiteto de Software

  • Atribuições
    • Mapear, juntamente ao Product Owner e DevOps, a arquitetura necessária para o desenvolvimento do produto;
    • Desenhar e diagramar a arquitetura do produto;
    • Garantir que a arquitetura seja implementada pelos Desenvolvedores.

  • Atribuições
    • Desenhar, juntamente com o Arquiteto, os vários pipelines do produto de software;
    • Implementar a integração contínua;
    • Garantir o deploy contínuo;
    • Facilitar a configuração do ambiente de desenvolvimento da equipe.

      Quality Assurance

  • Atribuições
    • Decidir métricas para avaliar o produto de software e seu desenvolvimento;
    • Coletar e Analisar as métricas do produto de software;
    • Garantir as melhorias das métricas que necessitam dessas melhorias e manter a qualidade, tanto em termos de código, quanto em usabilidade, do produto de software.

      Desenvolvedores

  • Atribuições
    • Desenvolver as funcionalidades priorizadas pelo Product Owner e selecionadas pelo Scrum Master dentro da Sprint;
    • Manter a qualidade do produto em relação a código.

Atividades da Metodologia

Sprint

  • Trata-se de período definido pela equipe, que no caso do projeto é um período de uma semana, onde são realizado as tarefas definidas pelo Scrum Master, mas priorizadas pelo Product Owner.
  • Assim que este período é encerrado, entrega-se um valor ao cliente, como foi definido.

    • No projeto: a Sprint tem início no sábado e seu término no sábado seguinte.

Planejamento da Sprint

  • São reuniões onde o Scrum Master, em conjunto com o Product Owner, decide as funcionalidades e atividades que deverão ser realizadas pela equipe de Desenvolvimento e também avaliadas quais melhorias devem ser feitas.
  • O esforço para realizar cada uma das tarefas é medido com a equipe e assim, essas tarefas serão pontuadas.
  • É definido também, as duplas que trabalharão em conjunto (Pair Programming).

Daily Meeting

  • Reuniões com o tempo determinado de 15 minutos, onde cada membro da equipe fala sobre o andamento da tarefa e seu planejamento para terminá-la.
    • No projeto: estas reuniões ocorrem de segunda a sexta, e possuem duração de, no máximo, 20 minutos.

Sprint Review

  • Discussão das dificuldades, melhorias e pontos positivos durante a Sprint, além do levantamento das tarefas realizadas e não realizadas.
  • A avaliação geral da Sprint é feita pelo Scrum Master, porém todas os pontos (positivos, negativos e a melhorar) é debatido pela equipe.
    • No projeto: a Review ocorre aos sábados, no mesmo dia do Planejamento da Sprint.

Pair Programming

  • Ritual onde dois membros da equipe de Desenvolvimento, trabalham juntos para realizar uma tarefa.
  • A cada 15 minutos, um deles assume o papel de piloto, ou seja, escreve o código, e o outro assume o papel de co-piloto e dita a lógica para realizar a funcionalidade e também auxilia o piloto a pensar na melhor forma de desenvolver essa funcionalidade.

Integração Contínua

  • Prática de testar as modificações do código que foi submetida ao repositorio remoto do projeto.
  • Todo o funcionamento da integração continua é pensado e efeitvado pelo DevOps do projeto.

Padrão de Código

  • É a definição de escrita do código, de maneira a manter a homogeniedade deste.
  • A folha de estilo, documento que define esse padrão, é contruida pelo Quality Assurence.

Testes

  • Toda a funcionalidade desenvolvida, deve ser testada, ou seja, deve ser implementados testes que prevêm funcionamento errôneo ou indesejado da funcionalidade. E esta funcionalidade deve passar em todos os testes escritos.

Kanban

  • Metodologia que consistem em um quadro divido em TO DO, DOING e DONE, e em cada uma destas colunas é colocado as tarefas que devem ser feitas, as que estão no processo de ser feitas e as completas, respectivamente.

    • No projeto, utilizamos o Zenhub para contemplar esta metodologia.

Referências Bibliográficas

GLOSSARY Extreme Programming
Extreme Programming - Conceitos e Práticas
What is Scrum
Lino - Metodologia