3. Estratégias de Engenharia de Software
3.1 Estratégia Priorizada
Abordagem de Desenvolvimento de Software: Ágil
Ciclo de vida: Iterativo e Incremental
Processo de Engenharia de Software: Scrum/XP
3.2 Quadro Comparativo
Características | Scrum/XP (eXtreme Programming) | AUP (Agile Unified Process) |
---|---|---|
Abordagem Geral | Iterativo e incremental, com entregas contínuas e feedbacks constantes | Iterativo e incremental, baseado no processo RUP (Rational Unified Process) |
Foco em arquitetura | Arquitetura não é o foco no início do projeto, sendo desenvolvida ao decorrer das iterações e incrementos | Foco em arquitetura baseada em riscos. É proposto identificar uma arquitetura para o projeto na fase de iniciação e na fase de elaboração, a arquitetura é colocada à prova |
Estrutura de Processos | Focada em sprints curtas (1 - 2 semanas) e flexíveis com pequenas entregas ao final de cada sprint | Focado em iterações (1 - 4 semanas) e quatro fases sequenciais: Concepção, Elaboração, Construção e Transição |
Flexibilidade de Requisitos | Alta flexibilidade durante todo o projeto fundamentada pelo feedback constante do cliente | Permite mudanças durante todo o ciclo de vida do projeto |
Colaboração com o cliente | Envolvimento do cliente em todas as sprints, com feedbacks ao final de cada sprint | Envolvimento e feedback do cliente ao longo de todo o projeto durante as frequentes demonstrações |
Complexidade do processo | Processo mais "simples". Com foco menor em documentação, e foco maior na entrega contínua | Complexidade um pouco maior, pois combina a estruturação dos processos do RUP com práticas ágeis |
Controle de Qualidade | Controle de qualidade de acordo com as práticas do XP, como TDD e integração contínua | Incorporta práticas como desenvolvimento orientado a testes, validação contínua e feedbacks do usuário |
Documentação | Documentação mínima, apenas o essencial | Adota o princípio de "documentação suficiente", apenas o necessário para atender às necessidades do projeto |
Escalabilidade | Difícil escalar para projetos maiores, pois é voltado para equipes pequenas | Escalável para projetos médios e grandes |
Suporte a Equipes de Desenvolvimento | Equipes menores e com papéis flexíveis, permite maior adaptação durante o projeto | Menos adequado para equipes inexperientes, recomendado para equipes com experiência mista |
3.3 Justificativa
A escolha do Scrum/XP foi baseada em três principais fatores, sendo eles:
- Cliente disponível na maior do tempo, facilitando as entregas contínuas, oferecendo feedbacks constantes em todas as sprints e podendo participar de todas as sprints review.
- Equipe pequena, papéis flexíveis e pouco conhecimento em desenvolvimento mobile, permitindo que os membros participem de várias etapas e possam se adaptar durante o projeto, sendo mais eficiente que o AUP, voltado para equipes mistas ou com algum conhecimento prévio
- Flexibilidade durante todo o projeto, permitindo que algumas mudanças possam ocorrer sem prejudicar todo o andamento do projeto.
Além disso, utilizamos uma versão adaptada do GUPTA Framework para ajudar na escolha do melhor processo. Segue imagem abaixo:
Obs: caso a imagem esteja pequena, clique nela para visualizar melhor.
Historico de Versão
Data | Versão | Descrição | Autor(es) | Revisor(es) |
---|---|---|---|---|
15/04/2025 | 1.0 | Estratégia priorizada para o projeto | Lucas Guimarães |