Documento de Metodologia e Processos
Histórico
Data | Versão | Modificação | Autor(es) |
---|---|---|---|
17/02/2021 | 1.0 | Abertura do Documento | Vitor Lamego e Victor Lima |
17/02/2021 | 1.1 | Descrição das metodologias | Vitor Lamego |
05/05/2021 | 1.2 | Mudança nos papeis de equipe | Carlos Eduardo e Matheus Calixto |
1. Introdução
Este documento possui a finalidade de descrever e explicar quais serão as metodologias utilizadas no projeto. Será feito uma breve introdução das metodologias que serão utilizadas, assim como uma apresentação de quais artefatos e rituais/cerimônias serão realizadas pela equipe.
2. Metodologias de Base
A equipe não irá utilizar somente uma metodologia dentro do projeto, sendo então adotada uma metodologia híbrida, com base no SCRUM, Kanban e XP. A ideia é reunir alguns artefatos e rituais dessas diferentes metodologias e colocá-las em prática no andamento do projeto.
Acreditamos que a utilização de uma metodologia híbrida possa ajudar na oferta de uma maior experiência e contato com diferentes processos já consolidados no mercado, além disso o objetivo da equipe não é estar preso a um processo irreversível, e sim estar apto a conhecer coisas novas e estar disposto a aplicar mudanças dentro do processo de acordo com o que a equipe sentir necessidade. "Respostas às mudanças do que seguir um contrato", como diz um dos valores das Metodologias Ágeis.
2.1 Scrum
O SCRUM é uma metodologia ágil muito conhecida e que já até se expandiu para diversas outras áreas além da Engenharia de Software. Focada no planejamento e gestão de projetos, ocorre de maneira iterativa, onde a iteração é mais conhecida por Sprint, que consiste no período que pode variar de 1 a 4 semanas. Dentro do período da Sprint os membros da equipe devem exercer as tarefas que assim foram demandadas naquele período de tempo.
O SCRUM possui alguns artefatos e rituais que colaboram de maneira significativa para o projeto. Durante a Sprint são realizadas reuniões diariamente conhecidas por Daily Meeting, que servem para alinhar toda a equipe do que vem acontecendo dentro do projeto, são reuniões rápidas e com o sentimento de urgência para que não seja extensa. Outros artefatos muito utilizados e comuns no SCRUM são o Product Backlog que consiste em uma lista com todas as funcionalidades desejadas para o produto, e também o Sprint Backlog que se destina a todas as issues que a equipe se compromete a resolver naquela Sprint.
Além disso, o SCRUM define três papéis dentro da equipe, sendo eles:
- Scrum Master: Responsável por garantir que os valores e práticas do SCRUM estão sendo aplicados pela equipe. Também é responsável por assegurar que a equipe não se comprometa excessivamente durante uma Sprint.
- Product Owner: Responsável por maximizar o valor de produto em desenvolvimento e por priorizar as funcionalidades existentes no Product Backlog.
- Development Team: Responsável por realizar as tarefas que foram lhe designadas para determinada Sprint.
Em relação aos rituais, o SCRUM aplica os seguintes:
- Sprint Planning: Reunião que acontece ao início de toda Sprint com o objetivo de selecionar as funcionalidades presentes no Product Backlog que passarão para o Sprint Backlog. Vale ressaltar que o Product Owner possui importância fundamental nesta reunião para assegurar que o valor do produto esteja sendo maximizado.
- Sprint Review: Ocorre ao final da Sprint. É um momento onde a equipe se atualiza de tudo o que foi produzido na Sprint e de como está o projeto atualmente.
- Sprint Retrospective: É um momento de discussão para a equipe entender o que aconteceu na Sprint que pode ser melhorado para as próximas iterações, e também reforçar aquilo que está funcionando bem, para que seja mantindo.
Dentro da Sprint Planning o grupo utilizará uma estratégia da própria metodologia a fim de estimar o trabalho que determinada issue inserida no Sprint Backlog possui em termos de tempo e esforço, o Planning Poker. Sendo assim o grupo se reúne e cada um estima em valores pré-determinados o trabalho de determinada issue. Essa estratégia foi adotada para facilitar a priorização e a organização das issues entre os membros, a fim de evitar qualquer sobrecarga desnecessária na equipe, além de estar mais uma vez enfatizando o valor de produto ao projeto.
2.1.1 Recursos utilizados do SCRUM
- Scrum Master
- Product Owner
- Development Team
- Sprint Planning
- Sprint Review
- Sprint Retrospective
- Daily Meeting
- Product Backlog
- Sprint Backlog
- Planning Poker
2.2 Kanban
Kanban é outra metodologia ágil, foi criada pela Toyota e ainda hoje é bastante utilizada por diversas empresas e áreas diferentes da de Software por trazer uma organização visual extrema para dentro dos projetos e por ser extremamente fácil de se aplicar. Consiste basicamente em um quadro divido em três principais etapas: To Do, Doing e Done. Desta maneira, as atividades e funcionalidades de um projeto são colocadas na parte de "To Do", assim que começam a ser implementadas passam para o "Doing" e quando finalizadas são colocadas no "Done".
Como se pode perceber é uma metodologia muito simples e que colabora com o alinhamento de toda a equipe do que está ocorrendo dentro do projeto como um todo. Os principais pontos desta metodologia são:
- Evitar procastinação e tempo ocioso;
- Economizar tempo;
- Prático e fácil implementação;
- Hierarquização de tarefas;
- Reduz custo e desperdícios;
- Ajuda a mensurar a produtividade;
- Facilita comunicação.
Desta maneira a equipe irá utilizar um quadro virtual que possuirá estas diferentes etapas e também uma ligação ao Product Backlog e Sprint Backlog do SCRUM.
2.2.1 Recursos utilizados do Kanban
- To Do
- Doing
- Done
2.3 XP
A XP (Extreme Programming) é uma metodologia ágil bastante conhecida também e fortemente ligada a resposta rápidas às mudanças. Se assemelha bastante com os valores do SCRUM e muitas vezes essas duas metodologias são vistas como complementares, onde o SCRUM acaba sendo uma metodologia mais voltada para a área de gerência e a XP para a área de práticas da Engenharia de Software.
O principal objetivo desta metodologia é levar ao extremo algumas boas práticas da Engenharia de Software, sendo principalmente fundada na ideia de que a equipe deve estar apta a mudanças, trabalhando para que o erro dentro do projeto não seja nenhum grande empecilho, mas algo de baixo custo se assim forem seguidas as suas práticas e valores.
E quais são esses valores do Extreme Programming então ? A metodologia possui cinco principais valores, sendo eles: Simplicidade, Feedback, Coragem, Respeito e Comunicação. E seus princípios básicos são: feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade.
Para isso, algumas práticas como o Pareamento, onde dois desenvolvedores trabalham em uma mesma máquina, sendo um escrevendo o código e o outro observando para evitar e remover qualquer tipo de erro, a Refatoração com o objetivo de sempre deixar o código mais simples, mantendo sempre as funcionalidades já desenvolvidas, a prática de Testes onde todo código escrito deve passar por uma bateria de testes para ser validado ou não de acordo com os requisitos para entrar no código principal do projeto, a ideia de Integração Contínua também é altamente utilizada dento do XP.
Como visto, são várias as diferentes práticas exercidas pela XP, e nem todas foram citadas acima. Então a ideia é conseguir reunir, junto da aplicação do SCRUM algumas dessas boas práticas dentro dos rituais e das reuniões para que a equipe tenha um contato com esta metodologia também.
2.3.1 Recursos utilizados do XP
- Pareamento
- Refatoração
3. Papéis da Equipe
Nome do Integrante | Papel |
---|---|
Brenno Oliveira | Product Owner |
Carlos Eduardo | Desenvolvedor / DevOps |
João Pedro | Scrum Master |
Lucas Braun | Desenvolvedor |
Matheus Calixto | Desenvolvedor / DevOps |
Victor Lima | Desenvolvedor |
Vitor Lamego | Desenvolvedor |
4. Referências
Documento de Processo. Disponível em: < https://fga-eps-mds.github.io/2019.2-Acacia/#/project_methodology > Acesso em: 17 de fevereiro de 2021
Kanban. Disponível em: < https://www.digitalhouse.com/br/blog/como-usar-metodologia-kanban > Acesso em: 17 de fevereiro de 2021
SCRUM. Disponível em: < https://www.desenvolvimentoagil.com.br/scrum/ > Acesso em: 17 de fevereiro de 2021
XP. Disponível em: < https://www.devmedia.com.br/introducao-ao-extreme-programming-xp/29249 > Acesso em: 17 de fevereiro de 2021