Metodologias
1. Introdução
Esse documento apresenta as metodologias que serão trabalhadas pela equipe durante o desenvolvimento do projeto. Para cada uma delas, a equipe incorporou e decidiu algumas práticas a serem utilizadas. Dessa forma, para cada metodologia, será apresentada brevemente uma descrição dela e como serão aplicadas no projeto.
2. Metodologias
2.1. Scrum
Scrum é um framework dentro do qual pessoas podem tratar e resolver problemas complexos e adaptativos, enquanto produtiva e criativamente entregam produtos com o mais alto valor possível. Ele se baseia em ciclos curtos chamados sprints.
Dessa forma, as práticas aplicadas do Scrum pela equipe são:
- Sprints: Ciclos de desenvolvimento, com tarefas bem definidas tendo início e fim.
- Estruturas de reuniões (Review, Planning e Daily): Podem ser encontradas no plano de comunicação.
- Backlog do Produto: Artefato que contém a lista de requisitos (histórias de usuário) planejadas para o desenvolvimento do produto.
- Backlog da Sprint: Artefato que contém a lista de histórias de usuário planejadas para o desenvolvimento no período de uma sprint.
- Papéis: Os papéis de Scrum Master (facilitador) e Product Owner (dono do projeto), também, são acionados no projeto para poder estruturar melhor a equipe.
Além disso, o pensamento de metodologia ágil com entregas incrementais constantes irá guiar a equipe durante todo o desenvolvimento.
2.2. XP (Extreme Programming)
A Extreme Programming é uma metodologia de programação desenvolvida com a finalidade de otimizar as rotinas de times de desenvolvimento. O que abre espaço para que cada participante seja capaz de cumprir suas tarefas de um modo eficiente, sem gerar atrasos que possam encarecer o projeto.
Dessa forma, as práticas aplicadas da Extreme Programming pela equipe são:
- Programação em Pares: Desenvolvedores trabalharão em pares para melhorar a qualidade do código e compartilhar conhecimento.
- Cliente Presente: O cliente ou representante do cliente está envolvido no processo de desenvolvimento.
- Refatoração: Processo de analisar um algoritmo pouco legível com a finalidade de simplificá-lo, facilitando a sua leitura. Será reforçado pela equipe.
- Testes Contínuos: A cada mudança no código em repositório, os testes (build e deploy) são executados automaticamente para garantir a qualidade do código.
- Releases rápidas: Iterações curtas que resultam em releases (entregas) frequentes.
2.3. Kanban
O Kanban é um sistema de organização e administração de projetos que visa controlar fluxos de maneira eficiente. Por ser altamente adaptável à realidade de diferentes negócios, o Kanban é um método amplamente adotado por setores que vão desde logística à desenvolvimento de software.
Para desenvolvimento de Software, as práticas aplicadas do Kanban pela equipe são:
- Quadro Kanban: Um quadro visual que representa o fluxo de trabalho, com colunas que representam os estados das tarefas.
- Limites de Trabalho em Progresso (WIP): Restrições são aplicadas para controlar o número de tarefas em andamento em cada coluna.
Para o projeto, o quadro Kanban será feito e visualizado por meio da plataforma Zenhub. As seguintes colunas serão as presentes:
- New Issues: Para as tarefas no backlog do produto ainda não iniciadas.
- Epics: Para rastrear os grupos de tarefas que fazem parte dos objetivos de longo prazo, conceitos abragentes.
- Icebox: Para tarefas de prioridade baixa, que não precisam ser realizadas em um futuro próximo (desejos do cliente).
- Product Backlog: Para as tarefas planejadas para o produto durante o seu desenvolvimento atual.
- Sprint Backlog: Para as tarefas planejadas para a sprint.
- In Progress: Para as tarefas já iniciadas e em desenvolvimento na sprint (guiados pelo WIP).
- Review/QA: Tarefas da sprint em revisão para entrega.
- Done: Tarefas da sprint já concluídas.
- Closed: Para tarefas finalizadas, normalmente de sprints passadas já acabadas.
2.4. Lean Inception
O Lean Inception é um método de desenvolvimento de projetos ágeis que visa agilizar o processo de entrega do produto, garantindo maior assertividade e qualidade na sua entrega final.
Trabalha com o conceito de MVP (Produto Mínimo Viável): se refere a versão mais simples possível de um produto. Esta versão é utilizada como ferramenta principal na validação das premissas comerciais iniciais e/ou das expectativas colocadas no produto.
Dessa forma, a equipe aplicou o Lean Inception com o PO, com as seguintes etapas sendo evidenciadas:
- Visão do Produto;
- É, não é; faz, não faz;
- Objetivos do negócio;
- Personas;
- Jornada de usuário;
- Brainstorming de funcionalidades;
- Revisão técnica, de negócio e de UX;
- Sequenciador;
- Canvas MVP.
3. Referências
Ken Schwaber & Jeff Sutherland: O Guia do Scrum. Disponível em: https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Portuguese-European.pdf
Cairo Noleto: Extreme Programming: o que é e quais as boas práticas?. Disponível em: https://blog.betrybe.com/carreira/extreme-programming/
Wagner Hörlle: Lean Inception: O que é e como funciona esse método?. Disponível em: https://blog.csptecnologia.com/lean-inception/
4. Versionamento do Documento
Data | Versão | Descrição | Autor |
---|---|---|---|
31/03/2024 | 1.0 | Versão inicial com pontos 1 a 3 | Victor Hugo Oliveira Leão |
10/04/2024 | 1.1 | Ajuste na padronização do documento | Gabriel Roger Amorim da Cruz |