Pular para conteúdo

3. Estratégias de Engenharia de Software

3.1 Estratégia Priorizada 📕

  • Abordagem: Ágil
  • Ciclo de Vida: Interativo Incremental
  • Processo: RAD

3.2 Quadro Comparativo 📋

O quadro a seguir apresenta características relacionadas ao RAD (Rapid Application Development) e ao Scrum/XP, com ajustes para tornar a comparação mais precisa e útil na escolha do processo mais adequado ao caso da VB.

RAD Scrum/XP
Foco Desenvolvimento rápido com prototipação e ciclos curtos para validação precoce de requisitos. Entrega contínua de valor ao cliente, com ênfase na qualidade do código e adaptação às mudanças.
Foco Principal Prototipagem rápida para validar ideias, requisitos e interfaces com usuários. Entregas incrementais e iterativas que mantêm qualidade técnica (TDD, refatoração, integração contínua).
Estrutura Fases típicas: planejamento de requisitos, design centrado no usuário, construção de protótipos e transição. Menos ênfase em cerimônias formais. Estrutura baseada em papéis (PO, SM, Time), iterações (sprints), backlog, revisões e práticas XP (TDD, pair programming, CI). Cerimônias definidas.
Equipe Geralmente concentrada em especialistas e desenvolvedores focados em protótipos; stakeholders participam intensamente nas fases de validação. Equipe autogerida e multifuncional; colaboração contínua entre desenvolvedores, PO e demais stakeholders.
Arquitetura Planejamento arquitetural inicial reduzido; foco em protótipos para validação rápida. Arquitetura pode precisar ser refeita/ajustada para o produto final. Arquitetura evolutiva e intencional: começa simples e é continuamente refinada para suportar qualidade, escalabilidade e manutenção.
Flexibilidade Alta flexibilidade nos requisitos e no design inicial; porém, sem práticas de engenharia fortes, a qualidade pode ser comprometida em projetos maiores. Alta flexibilidade aliada a disciplina técnica (TDD, CI, refatoração), o que ajuda a manter qualidade mesmo com mudanças frequentes.
Participação do Cliente Muito ativa durante prototipagem e validação de UIs/fluxos; feedback rápido sobre aparência e usabilidade. Participação contínua através de revisões de sprint, refinamento de backlog e feedback frequente sobre funcionalidades entregues.
Riscos Vulnerável a retrabalho se mudanças ocorrerem após a fase de protótipo ou se protótipos forem usados como solução final sem adequada engenharia. Risco reduzido graças a entregas curtas, feedback contínuo e automação de testes; porém requer disciplina do time para manter práticas.
Complexidade Processo geralmente mais simples e informal; entretanto, sistemas grandes podem tornar a abordagem complexa se a arquitetura não for considerada. Práticas e disciplina podem parecer "mais complexas" de início, mas reduzem complexidade técnica a médio/longo prazo (melhor manutenção, menos dívidas técnicas).
Métricas Foco em velocidade de entrega de protótipos, tempo até validação com usuários e taxa de iterações de design. Métricas típicas: velocity, lead time, qualidade do código (dívida técnica), cobertura de testes e taxa de defeitos.
Escalabilidade Geralmente mais indicada para projetos pequenos ou médios; escalar exige disciplina e adaptações arquiteturais. Pode escalar para times grandes com frameworks e práticas adicionais (LeSS, Nexus, SAFe), mantendo práticas XP para qualidade.
Documentação de usuário Protótipos servem como artefatos primários para guiar o usuário; documentação formal reduzida. Documentação funcional mínima e atualizada; ênfase em entrega testada e na comunicação direta com stakeholders.
Velocidade de Implementação Muito rápida nas fases iniciais (prototipagem); velocidade para produto final depende de esforço de engenharia adicional. Ritmo moderado e previsível em sprints; menos rápido que um protótipo, mas entrega valor consistente e sustentável ao longo do tempo.
Documentação Leve, focada em comunicação direta e nos protótipos. Leve e funcional — apenas o necessário para compreensão, manutenção e onboarding.

3.3 Justificativa 🛎️

Considerando o quadro comparativo apresentado, bem como nossas abordagens e ciclo de vida, as vantagens do RAD se mostram mais expressivas em relação ao ScrumXP, especialmente ao avaliarmos fatores como tamanho da equipe, escalabilidade e o perfil do cliente. Neste projeto, o cliente possui conhecimento limitado sobre tecnologias e necessitará de feedbacks constantes e iterações frequentes.

Dessa forma, a adoção do RAD como processo, com seu enfoque em protótipos, representa a opção mais adequada para atender às necessidades do projeto.


Hisórico de Versão 🔄

Data Versão Descrição Autor(es) Revisor(es)