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