Ir para o conteúdo

Introdução

Este documento tem como objetivo retratar quais foram as metodologias utilizadas pela equipe durante a confecção do projeto, e quais os artefatos foram desenvolvidos a partir delas. Assim, o grupo se baseou em 3 metodologias principais para definir as práticas para o desenvolvimento da aplicação.

Metodologia

Scrum

Baseada nas boas práticas do desenvolvimento ágil, o Scrum foi desenvolvido para auxiliar equipes a trabalharem em conjunto, se organizando para resolverem um problema. Assim, essa metodologia descreve um conjunto de reuniões e cargos entre os integrantes para o gerenciamento do projeto, dividindo uma quantidade predefinida de tasks a serem concluídas dentro de um prazo estipulado que são chamadas Sprints. Dentre as práticas e conceitos do Scrum, o grupo optou em utilizar dos seguintes:

  • Scrum Master: É o profissional responsável por garantir que as normas e regras sejam seguidas por todos os integrantes do grupo e desse modo orientar o grupo na hora do desenvolvimento dos documentos.

  • Sprints: Dividindo quais tasks deveriam ser desenvolvidas no prazo estipulado, assim foram definidos reuniões para definir o planejamento e revisão das Sprints (Review e Retrospective).

  • Daily: O grupo se reunia diariamente durante a semana para discutirem e relatar possíveis problemas, onde aconteciam por meio do Discord ou Telegram.

Utilizando desses conceitos foram desenvolvidos os seguintes artefatos:

  • Product Backlog: Lista com todas as funcionalidades desejadas para o produto.

  • Review e Retrospective: Reuniões para definir como serão as próximas Sprints e revisar o que foi desenvolvido.

Kanban

O Kanban ficou conhecido por ser um "cartão" que sinalizava o fim do processo produtivo, e início de uma nova etapa. Com o objetivo de facilitar o controle de produção e gestão de tarefas, o Kanban se mostrou extremamente útil para definir a prioridade e organização das tasks, por meio de um fluxo de trabalho. O processo pode ser definido como um quadro branco separado por colunas, que permitem aos integrantes dividir o trabalho em segmentos menores por meio de cartões, onde são descritos as tasks, alocados na coluna apropriada. Assim, o grupo utilizou desses aspectos do Kanban através da extensão do ZenHub, onde o progresso de cada card poderia ser visualizado por cada integrante da equipe.

Imagem 1 - Kanban utilizando Zenhub

eXtreme Programming

A terceira e última metodologia que a nossa equipe escolheu é uma que consegue se integrar muito bem com o Scrum e o Kanban: é o eXtreme Programming, popularmente chamado de XP. A ideia principal por trás de utilizá-la é que essa é uma metodologia bastante focada em fazer com que a equipe de desenvolvimento evite falhas no projeto.

Durante o processo de desenvolvimento, essas falhas podem ocorrer em diversos pontos, e elas são causadas principalmente por falhas na comunicação com cliente, não atendimento de expectativas levantadas, falta de testes suficientes e planejamentos mal feitos.

O XP então se encaixa de forma excelente em equipes pequenas, que possuem requisitos relativamente vagos e buscam evitar tais problemas, admitindo que passe diariamente por algumas mudanças, mas que o produto final ainda assim tenha qualidade. E partindo do ponto que o XP preza por ver os integrantes como humanos, entende-se que estão sempre suscetíveis a erros e atrasos. Logo, a ideia é se ter economia, e focar no que é realmente necessário de forma objetiva e menos custosa possível.

Logo, o XP é um conjunto de 5 valores, alguns princípios e várias práticas, que torna o processo de desenvolvimento mais efetivo e eficaz. Esses cinco valores são: comunicação, simplicidade, feedback, coragem e respeito. Esses valores passam por vários princípios, que são, dentre vários, benefício-mútuo, melhoria, diversidade, fluxo, qualidade, passos pequenos, aceitação da responsabilidade, dentre outros. Assim, tais valores e princípios buscam guiar de forma humanizada as práticas em si do XP como metodologia de desenvolvimento, que dentro de quatro esferas enumeram-se para melhorar diretamente o desenvolvimento do código:

  • Gestão: cliente presente, time coeso, ritmo sustentável, posse coletiva;

  • Projeto: metáfora do sistema, projeto simples;

  • Planejamento: histórias de usuário, testes de aceitação, pequenas entregas, spikes de planejamento;

  • Codificação: padrão de codificação, TDD, integração contínua, reuniões diárias em pé, programação em par, refatoração;

Bibliografia

Versionamento

Versão Data Modificação Autor(es)
1.0 31/01/2022 Abertura do documento João Victor e Guilherme de Morais
1.1 02/02/2022 Metodologia Kanban João Victor e Guilherme de Morais
1.2 03/02/2022 Metodologia XP João Victor e Guilherme de Morais