O desenvolvimento de aplicações web envolve uma série de etapas interdependentes, que vão desde a definição dos requisitos do usuário até a implantação e manutenção contínua do sistema. Cada uma dessas etapas requer uma abordagem sistemática e baseada em evidências, a fim de garantir que os objetivos do projeto sejam alcançados de forma eficaz e eficiente.
Nesta metodologia, destacamos a importância de uma abordagem iterativa e incremental, que permite a adaptação às mudanças nos requisitos do usuário e no ambiente tecnológico. Além disso, enfatizamos a importância da colaboração multidisciplinar entre diferentes partes interessadas, incluindo desenvolvedores e usuários finais e especialistas em domínio.
A metodologia escolhida para o desenvolvimento deste projeto é baseada no framework Scrum. O Scrum enfatiza a colaboração, a auto-organização da equipe e a entrega contínua de valor ao cliente.
Para o desenvolvimento desta aplicação, entende-se que o uso do Scrum pode trazer diversos benefícios, tais como:
Entrega Incremental: O Scrum preconiza a entrega de incrementos do produto funcional em curtos períodos de tempo, chamados de sprints. Isso permite que partes do produto sejam entregues e testadas rapidamente, reduzindo o risco de falhas e garantindo que o produto atenda às necessidades do cliente.
Flexibilidade: O Scrum é altamente adaptável a mudanças de requisitos ou de mercado. Como as entregas são frequentes e a equipe revisa o plano a cada sprint, é possível ajustar o curso do projeto de forma ágil e eficiente.
Maior Transparência: O Scrum enfatiza a transparência em todo o processo. Com reuniões diárias (daily standups), reuniões de planejamento e revisão de sprint, todos os membros da equipe e stakeholders têm visibilidade do progresso do projeto e podem colaborar ativamente na tomada de decisões.
Melhoria Contínua: O Scrum incentiva a equipe a refletir sobre seu desempenho ao final de cada sprint, buscando identificar oportunidades de melhoria no processo de desenvolvimento. Isso contribui para a evolução constante da equipe e do produto.
Foco no Cliente: O Scrum coloca o cliente no centro do desenvolvimento, garantindo que as necessidades e expectativas do cliente sejam atendidas de forma prioritária e contínua.
A ferramenta de controle de versão adotada no projeto foi o Git, sendo que o Github foi utilizado para hospedagem do repositório.
O projeto segue a seguinte convenção para o nome de branches:
main
: versão estável já testada do softwareunstable
: versão já testada do software, porém instáveltesting
: versão em testes do softwaredev
: versão de desenvolvimento do software
Quanto à gerência de issues, o projeto adota a seguinte convenção para etiquetas:
documentation
: melhorias ou acréscimos à documentaçãobug
: uma funcionalidade encontra-se com problemasenhancement
: uma funcionalidade precisa ser melhoradafeature
: uma nova funcionalidade precisa ser introduzida
- Product Owner - Responsável pela visão do que irá ser construído ou entregue no projeto
- Scrum Master - Orientar a equipe em relação à estrutura de processos do Scrum
- Equipe desenvolvimento - Responsável por pegar a visão do Product Owner e transformá-la em realidade
A metodologia Scrum foi escolhida pois aborda de forma ágil o gerenciamento de projetos. Ela envolve a divisão do trabalho em sprints, que são períodos de tempo fixos nos quais são entregues incrementos do produto. Como ferramenta de gestão de tarefas escolhemos o Pipefy, pois permite criar fluxos de trabalho personalizados para gerenciar desde a concepção até a entrega do produto final. É possível criar etapas específicas do processo de desenvolvimento, como planejamento da sprint, desenvolvimento, teste e entrega, e movimentar as tarefas entre essas etapas de forma visual e colaborativa. No geral, a combinação do Scrum como metodologia de trabalho e o Pipefy como ferramenta de gestão ajudará a equipe a manter o foco nas entregas, acompanhar o progresso do projeto de forma transparente e adaptar-se às mudanças de forma ágil, garantindo assim a qualidade e sucesso do projeto.
As ferramentas empregadas no projeto são:
- Visual Studio Code - Editor de código que possui uma integração com o sistema de versão
- Microsoft Teams - Ferramentas de comunicação
- Pipefy - Ferramenta de gerenciamento do projeto
- Figma - Ferramentas de desenho de tela (wireframing) para criar diagramas para melhor captar as necessidades da nossa solução e pela facilidade de uso.