Skip to main content

Estratégias de Engenharia de Software

3.1 Estratégia priorizada

  • Abordagem: Híbrido
  • Ciclo de Vida: Iterativo Incremental
  • Processo: Scrum + RAD

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, garantindo 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

Após avaliarmos com precisão o que seria o escopo do projeto e a arquitetura mapeada para o mesmo, identificamos uma parte já bem definida (mais estável), e outra em relação a outras consultas dinâmicas e experiência do usuário, que são mais variáveis.

Assim, dada tais caractéristicas do produto, a reutilização de prototipagem rápida, e feedback constante do cliente entre as iterações, foram características deferidas como fortes auxiliadoras, dada a arquitetura mapeada para o projeto utilizando a biblioteca Pandas e o formato de entrega em exe(executável). Além disso, conectada ao nível de maturidade da equipe BASED, a junção com o Scrum promove a colaboratividade e aprendizagem compartilhada durante o processo, e com uma perspectiva mais técnica, iremos utilizar algumas características do XP.

Todos esses fatores se mostram mais oportunos, pelos seguintes fatores:

1. Aprendizagem Contínua

O Scrum promove evolução das habilidades ao longo de todo o projeto. Ideal para equipes de baixa experiência. E com características do XP, por meio de práticas colaborativas, favorece o desenvolvimento técnico e o crescimento da equipe, como o Pair Programming.

2. Controle de Qualidade

Seguindo o processo do RAD, que foca na rapidez da prototipação e na qualidade das entregas, podemos a cada iteração verificar o nosso protótipo, garantindo que cada incremento se conecta com o planejamento do projeto e o valor a ser entregue para o cliente. Além disso, trazendo para as práticas do XP, o Test-Driven Development (TDD) no desenvolvimento backend, testes automatizados e integração contínua, assegura maior confiabilidade ao código. A escolha dessa prática do XP, nos ajuda a reduzir a ocorrência de falhas e garante maior qualidade e previsibilidade no desenvolvimento do sistema, em comparação a somente utilização do 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, contribui para o aumento de produtividade e redução de riscos organizacionais.

4. Releases e Validação Contínua

Com o RAD, as entregas incrementais a cada ciclo iterativo do processo permitem a validação contínua do produto pelo cliente, garantindo que o produto atenda às suas demandas e necessidades reais. Essa prática reduz o risco de retrabalho na entrega final, com a validação de protótipos que refletem a evolução do desenvolvimento do produto.