Metodologias
1. Introdução
Este documento apresenta as metodologias empregadas ao longo do desenvolvimento do projeto. As abordagens metodológicas descritas aqui foram selecionadas com o objetivo de garantir a eficiência, a qualidade e a consistência dos resultados obtidos.
2. Lean Inception
O Lean Inception é um workshop colaborativo que combina princípios do Design Thinking e Lean Startup, e é dividido em várias etapas e atividades para guiar a equipe na definição de um MVP (Produto Mínimo Viável). As atividades incluem:
- Visão do produto: Define e alinha a essência do produto e seu valor para o negócio.
- É, não é; faz, não faz: Classifica os aspectos do produto, determinando o que ele é e não é, e o que faz e não faz.
- Objetivos do negócio: Alinha as perspectivas da equipe e alcança um consenso sobre os objetivos essenciais.
- Personas: Promove o entendimento do contexto dos usuários, ajudando a descrever funcionalidades do ponto de vista de quem irá interagir com o produto.
- Jornada do usuário: Descreve o caminho que um usuário percorre para alcançar um objetivo.
- Brainstorming de funcionalidades: Levanta e descreve funcionalidades com base nas etapas anteriores.
- Revisão técnica, de negócio e de UX: Discute as perspectivas técnicas, de negócio e de experiência do usuário.
- Sequenciador: Estrutura e organiza a ordem de implementação das funcionalidades.
- Canvas MVP: Auxilia no alinhamento estratégico final do MVP.
3. Scrum
Scrum é uma metodologia ágil voltada para a gestão e planejamento de projetos. As principais práticas e características do Scrum implementadas no gerenciamento do projeto incluem:
- Sprints: Ciclos de desenvolvimento com duração definida, tarefas específicas e objetivos claros.
- Planning: Reunião para planejar as tarefas da sprint, definir responsáveis e revisores.
- Daily: Reuniões diárias curtas para acompanhar o progresso das tarefas. Em nosso caso, algumas dessas reuniões ocorrem presencialmente.
- Revisão e retrospectiva de sprint: Reuniões realizadas ao final de cada sprint. A revisão foca na avaliação do produto desenvolvido, enquanto a retrospectiva analisa as práticas da equipe e as situações enfrentadas durante a sprint.
- Product Backlog: Lista de histórias de usuário planejadas para o desenvolvimento do produto.
- Sprint Backlog: Lista de histórias de usuário selecionadas para desenvolvimento durante uma sprint, definida na reunião de planejamento.
4. Programação Extrema
A Programação Extrema (XP) adota os princípios, valores e práticas do manifesto ágil, sendo ideal para equipes de pequeno e médio porte. Este método ágil promove a entrega contínua de software de alta qualidade. Entre os valores do XP, as principais práticas implementadas são:
- Programação em pares: quando possível, tarefas são atribuídas a duplas de programadores, visando aumentar a qualidade do código e promover o compartilhamento de conhecimento;
- Lançamentos Pequenos e Frequentes: entregas frequentes de incrementos funcionais do produto;
- Integração Contínua: códigos são integrados regularmente para garantir que as alterações sejam combinadas e testadas continuamente;
- Cliente Sempre Presente: os proprietários do produto participam ativamente do desenvolvimento, fornecendo feedback constante e esclarecendo requisitos semanalmente;
- Design Simples: o código é mantido simples, evitando complexidade desnecessária;
- Planning Poker: técnica usada para estimar o esforço necessário para concluir itens do backlog, onde a equipe vota usando a sequência de Fibonacci e discute as respostas para chegar a um consenso;
- Testes Automatizados: assegurar uma boa cobertura de testes automatizados.
5. Kanban
Originário do Japão, o termo "Kanban" significa "sinalização" ou "cartão". Esta metodologia é amplamente utilizada para gerenciar fluxos de trabalho e produção, proporcionando uma visão clara das tarefas em andamento. O Kanban utiliza um quadro visual onde cartões representam tarefas específicas, organizadas em colunas que indicam diferentes etapas do processo. Para nossa implementação, adotaremos o Zenhub, uma ferramenta que integra o Kanban diretamente com repositórios de código, facilitando a gestão e o acompanhamento do progresso das tarefas.
Além disso, o Kanban enfatiza alguns princípios fundamentais:
- Visualização do Trabalho: Ter uma representação visual clara das tarefas em andamento, pendentes e concluídas.
- Limitação do Trabalho em Progresso (WIP): Controlar a quantidade de trabalho em cada fase para evitar sobrecarga e garantir um fluxo constante.
- Foco no Fluxo: Identificar e eliminar gargalos no processo para melhorar a eficiência e a produtividade.
- Melhoria Contínua: Avaliar regularmente o processo e implementar mudanças incrementais para otimização contínua.
Referências
EXTREME PROGRAMMING. The Values of Extreme Programming. Disponível em: http://www.extremeprogramming.org/values.html
PROJETO CURUMIM. Metodologia. Diponível em: https://unbarqdsw2021-1.github.io/2021.1_G6_Curumim/base/metodologia/metodologia/
EQUIPE ALECTRION 2023-1. Metodologias. Disponível em: https://fga-eps-mds.github.io/2023-1-Alectrion-DOC/metodologias/
CAROLI, Paulo. Lean Inception: Como alinhar as pessoas e construir o produto certo. 1. ed. atual. São Paulo: Caroli, 2018. ISBN 978-85-94377-06-7. E-book.
SCRUM.ORG. What is Scrum?. Disponível em: https://www.scrum.org/resources/what-is-scrum