Skip to main content

Estratégias de Engenharia de Software

3.1 Estratégia priorizada

  • Abordagem: Híbrido ( Dirigido a plano + Ágil )
  • Ciclo de Vida: Adaptativo
  • Processo: Scrum + XP

3.2 Quadro comparativo

CaracterísticasSCRUM + RADSCRUM+XP
Abordagem GeralIterativo e incremental, prototipagem e desenvolvimento rápidoIterativo incremental, TDD (dirigido por testes), feedback contínuo e entregas frequentes.
Foco em ArquiteturaArquitetura focada na prototipação rápida e reutilização de componentesMenor foco inicialmente, mas evoluindo conforme a necessidade e tempo.
Estrutura de ProcessosEstrutura Scrum (sprints, daily e backlog de produto) e fases do RAD: planejamento de requisitos, prototipação (user design), construção, implementação finalEstrutura Scrum (sprints, daily e backlog de produto) e fases do XP: planejamento de requisitos (user stories), planejamento de release, iteração (código, integração, testes), validação (small releases), release final.
Flexibilidade de RequisitosAlta: requisitos definidos que podem mudar de acordo com o feedback do clienteAlta: aborda os requisitos como variáveis, histórias de usuários.
Colaboração com ClienteAlta: feedback contínuo em relação a protótipos.Alta: cliente responsável por validar pequenas entregas.
Complexidade do ProcessoModerada: orientada a protótipo, modularização permite que partes do projeto sejam divididas em equipes RADModerada: Práticas Scrum e XP exigem organização e participação da equipe.
Qualidade TécnicaFoco em protótipos e entregas rápidas pode comprometer a qualidade do código. Sem práticas fortes de testes automatizados.Alta: Prioriza testes automatizados, integração contínua, refatoração.
Práticas de DesenvolvimentoConstrução rápida de protótipos, iterações rápidas com foco em design de usuário.TDD, pair programming, integração contínua.
Adaptação ao Projeto da RX HospitalarIdeal para um cenário com foco em protótiposIdeal para um cenário extremamente dinâmico, garantido qualidade de código.
DocumentaçãoRepresentação informal (protótipos) pode substituir partes da documentação formal. Documentação mínima.Documentação mínima, apenas o necessário para o cliente e equipe.
Controle de QualidadeFeito no ciclo de prototipagem via retorno do usuárioTestes automatizados.
EscalabilidadeApresenta limitações para sistemas de grande escala, melhor para projetos de baixa complexidadeBoa em times pequenos e médios, difícil em times muito grandes.
Suporte a Equipes de DesenvolvimentoA equipe deve ser muito comprometida, deve haver regras claras. Uso do Scrum para organização formal.Práticas XP ajudam na colaboração e manutenção da qualidade em equipes pequenas/médias.

3.3 Justificativa

Considerando a necessidade de alinhar características do software a ser desenvolvido com o nível de maturidade da equipe BASED, o processo ScrumXP se mostrou mais oportuno, pelos seguintes fatores:

1. Aprendizagem Contínua

O ScrumXP, por meio de práticas interativas e colaborativas, favorece o desenvolvimento técnico e o crescimento da equipe. Diferentemente do RAD, que foca em prototipação rápida, o ScrumXP promove evolução das habilidades ao longo de todo o projeto. Ideal para equipes de baixa experiência.

2. Controle de Qualidade

A aplicação de práticas do XP, tais como Test-Driven Development (TDD), testes automatizados e integração contínua, assegura maior confiabilidade ao código. Essa abordagem reduz a ocorrência de falhas e garante maior qualidade em comparação ao RAD, onde a prototipação pode deixar lacunas de qualidades a depender do nível de experiência da equipe.

3. Práticas XP + Scrum

O uso de práticas como pair programming, em conjunto com a estrutura do Scrum (reuniões diárias e retrospectivas), promove colaboração contínua, alinhamento de expectativas e maior eficiência na comunicação. Assim, contribuindo para o aumento de produtividade e redução de riscos organizacionais.

4. Releases e Validação Contínua

As entregas incrementais e frequentes permitem validação contínua do produto pelo cliente, garantindo que o produto atenda suas demandas e necessidades reais. Essa prática reduz o risco de retrabalho na entrega final. Em contrapartida, o RAD utiliza de validação de protótipos, que, a depender da experiência técnica, pode não refletir a complexidade real do sistema.