Ir para o conteúdo

Metodologia

1. Agile

Nosso grupo optou por utilizar as metodologias ágeis devido a sua simplicidade, e priorizando acima de tudo a comunicação entre a equipe. Dessa forma é estipulado entregas semanais, previamente decididas em reuniões, em que cada participante é delegado a uma função e são decididas as tarefas de todos os membros. Seguindo os princípios do Manifesto Ágil, que defende o planejamento adaptativo por meio de Inteligência Coletiva, nosso time se organiza e foca na melhor maneira de desenvolver o projeto.

Reuniões semanais

As reuniões são agendadas toda semana para dividir tarefas e discutir sobre quais são as melhores maneiras de desenvolver este projeto. Acontecerá principalmente na segunda feira e na quarta feira, de maneira assíncrona com a equipe de EPS e MDS.

Toda semana também, reuniremos com os clientes do Schedula em especial na quarta feira, para que o cliente esteja envolvido no ciclo de desenvolvimento do projeto. Realizando tarefas como validação, priorização e levantamento de novos requisitos.

Criação de Issues

Após as reuniões, são abertas novas Issues listando as tarefas que devem ser concluídas e seus respectivos prazos de entrega. Para isso, foram criadas novas Labels que são responsáveis por informar o status daquela Issue. Quando a tarefa é concluída, a Issue é fechada. Caso o integrante responsável por aquela Issue encontre dificuldades, ele pode utilizar a Label "help wanted" e descrever a situação para que os outros participantes possam ajudá-lo.

Adotamos um template simples para a criação de Issue, no qual é necessário informar uma breve descrição da tarefa a ser realizada e uma lista contendo os objetivos. Também é passado uma lista de critérios de aceitação, para que após finalizada esta issue possa ser avaliada por outro integrante do grupo.

2. XP - Extreme Programming

Para o nosso projeto decidimos utilizar Extreme Programming (XP), que é uma metodologia de desenvolvimento ágil para pequenas e médias equipes que desenvolvem software baseado em requisitos vagos e que se modificam rapidamente. O XP (Extreme Programming ou Programação Extrema) é focada no desenvolvimento de software que possui valores e princípios, onde são fundamentados por um conjunto de práticas. Além disso, o XP também possui funções bem definidas para seus membros.

O XP tem cinco valores muito importantes que formam a base para o desenvolvimento ágil de projetos.

Valores do XP

  • Comunicação: A má comunicação é motivo de insucesso em todo tipo de projeto, inclusive nos projetos de software. Além de atrapalhar o engajamento dos membros no trabalho, aumenta a chance de erros no programa e na junção com as outras partes de outros membros. Por isso uma boa comunicação é fundamental.

  • Simplicidade: Manter a simplicidade é difícil, entretanto, possibilita que tudo esteja no controle. É um dos princípios do XP advindos do JIT.

  • Feedback: Fator altamente importante nos dias atuais, pois permite que outros além do grupo enxergue os erros e dificuldades do programa, melhorando-o cada vez mais.

  • Coragem: Um dos valores mais importantes é ter coragem para testar novas ideias, substituir antigas, mudar o código e corrigir erros.

  • Respeito: Por último, mas não menos importante, ter respeito pela comunidade ao seu redor, pelos membros do grupo e pelo meio social, para manter um ambiente agradável para todos trabalharem.

Práticas do XP

O XP, além dos valores listados acima, possui um conjunto de princípios que devem ser seguidos para que se tenha uma boa prática de desenvolvimento no projeto. Abaixo, foram listadas algumas práticas escolhidas pelo nosso grupo para serem utilizadas.

  • Programação em par: Prática de programar a dois, assim, com duas pessoas olhando o mesmo código fonte, a chance desse mesmo código conter bugs e falhas é diminuída pela metade. Ela é uma das práticas primordiais do XP, pois dois programadores fazendo o trabalho juntos acaba agregando muito para o trabalho em equipe.

  • Ritmo sustentável: Manter um ritmo de trabalho constante com qualidade, onde eles estejam atentos e dispostos.

  • Releases curtas: As liberações de pequenas versões funcionais do projeto auxiliam muito no processo de aceitação por parte do cliente que já pode testar uma parte do sistema. Além de que a chance de reverter os erros/bugs do sistema ficam mais fáceis de consertar por voltar para uma versão mais perto da destinada.

3. Scrum

Scrum é uma metodologia ágil de gerenciamento de projetos que visa aumentar a eficiência, a transparência e a colaboração em equipes de desenvolvimento de software. Foi criada para lidar com projetos complexos e em constante mudança, permitindo a entrega de valor de forma incremental e iterativa.

A metodologia Scrum é baseada em três pilares principais: transparência, inspeção e adaptação. A transparência envolve compartilhar informações relevantes com todos os membros da equipe para garantir uma compreensão comum do projeto e suas metas. A inspeção refere-se à avaliação contínua do progresso e do produto resultante, permitindo que a equipe identifique e corrija problemas ou ajuste o plano conforme necessário. A adaptação envolve a capacidade de ajustar e otimizar o trabalho e o processo à medida que a equipe aprende mais sobre o projeto e suas necessidades.

Promovendo transparência, inspeção e adaptação contínuas, o Scrum permite que as equipes entreguem valor de maneira eficiente e eficaz, adaptando-se às mudanças e necessidades do projeto. A metodologia Scrum define três papéis principais:

  • Scrum Master: Responsável por garantir que o processo seja seguido corretamente, remover obstáculos e facilitar a comunicação.

  • Product Owner: Responsável por definir as prioridades do projeto e garantir que a equipe esteja construindo o produto certo.

  • Equipe de Desenvolvimento: Responsável por realizar o trabalho necessário para entregar as funcionalidades.

4. Versionamento

Data Versão Descrição Autor
09/05/23 1.0 Criação do documento Gabriel Avelino
11/05/23 1.1 Adicionando a metodologia Scrum Ítalo Serra
12/05/23 1.2 Revisor Ian Ferreira
12/05/23 1.3 Ajustes Álvaro Leles

5. Bibliografia

Wells, Don. Extreme Programming: A gentle introduction. Extreme Programming, 1999. Disponível em: http://www.extremeprogramming.org/

VALENTE, M. T. Engenharia de Software Moderna ed. Moderna, 2020.

O que é metodologia Scrum? Gerenciamento de Projetos Scrum. Disponível em: https://www.nimblework.com/pt-br/agile/metodologia-scrum/