Estratégias de Engenharia de Software
Estratégia Priorizada
Abordagem: Ágil
Ciclo de Vida: Incremental e Iterativo
Processo: ScrumXP
Quadro Comparativo
O quadro a seguir, apresenta algumas características relacionadas ao RAD e ao ScrumXP, visando auxiliar no entendimento e justificativa da escolha do processo mais adequado ao caso da Ideia Space.
Características | RAD | ScrumXP |
---|---|---|
Abordagem Geral | Iterativo e incremental orientado à prototipagem e adaptação. | Iterativo e incremental com foco em entregas rápidas e feedback contínuo. |
Foco em Arquitetura | Arquitetura básica e flexível que pode ser rapidamente adaptada. A estrutura arquitetural inicial tende a ser simples, permitindo ajustes conforme as necessidades surgem ao longo do desenvolvimento. | Arquitetura que evolui gradualmente, adaptando-se ao longo dos sprints. O foco é garantir uma estrutura flexível que responda às mudanças sem precisar de uma definição completa logo no início. |
Estrutura de Processos | Organiza o processo em fases rápidas: planejamento, design, construção e implementação. Visa colocar uma versão funcional do produto nas mãos dos usuários o quanto antes. | Estruturado em sprints de 2-4 semanas, com entregas incrementais e feedback contínuo. |
Flexibilidade de Requisitos | Permite alterações de requisitos rapidamente entre as fases, adaptando-se ao feedback dos usuários e às mudanças de demanda sem um processo rígido de controle de escopo. | Alta flexibilidade, permitindo mudanças de requisitos a cada sprint com base no feedback obtido. |
Colaboração com Cliente | O cliente é envolvido diretamente em cada fase de prototipagem, revisando as versões iniciais do produto e fornecendo feedback para orientar melhorias e ajustes imediatos. | Envolve o cliente continuamente, buscando seu feedback ao final de cada sprint para garantir que o produto evolua conforme as expectativas e necessidades. |
Complexidade do Processo | Simples e rápido, com foco na prototipagem e na entrega de resultados visíveis em menor tempo. Reduz etapas complexas de planejamento e documentação. | Leve e ágil, com foco na entrega funcional e menos foco na documentação formal. Papéis e etapas bem definidos, facilitando a adaptação e o gerenciamento de tarefas. |
Qualidade Técnica | A velocidade do RAD pode resultar em uma menor atenção inicial à qualidade técnica. A prioridade está em alcançar rapidamente uma versão funcional, e revisões de qualidade são feitas posteriormente. | Inclui práticas de qualidade como TDD (Test-Driven Development), integração contínua e pair programming, que garantem um código limpo e funcional. |
Práticas de Desenvolvimento | A prototipagem rápida é o foco central, com práticas de desenvolvimento centradas em construir versões funcionais e viáveis, visando adaptações e melhorias ágeis durante o processo. | Inclui práticas técnicas robustas como TDD, refatoração contínua, integração contínua e pair programming,promovendo alta qualidade no código. |
Adaptação ao Projeto da Ideia Space | Ideal para projetos que precisam de uma primeira versão rápida e visualizável para validação inicial, ideal para um ambiente em que o feedback imediato pode acelerar decisões de produto. | Ideal para projetos que exigem interação e adaptação contínuas, pois permite responder a mudanças de forma rápida, mantendo o cliente envolvido em cada ciclo de desenvolvimento. |
Documentação | Documentação leve, com pouca estrutura formal, priorizando rapidez. | Documentação mínima e essencial, focada em comunicação ágil e feedback. |
Controle de Qualidade | Feito após a prototipagem inicial. A ênfase é em revisar o produto após cada fase, possibilitando ajustes incrementais para refinar a qualidade conforme necessário. | Controle de qualidade embutido nas práticas do XP e em revisões em cada sprint, garantindo que o software seja testado a cada nova funcionalidade. |
Escalabilidade | Mais adequado para equipes pequenas e projetos de menor escala, onde uma coordenação mais leve e rápida é viável. | Escalável, mas mais indicado para equipes menores e médias devido à sua abordagem colaborativa e interativa constante. |
Suporte a Equipes de Desenvolvimento | Funciona bem em equipes pequenas, com desenvolvedores envolvidos diretamente nas fases rápidas de prototipagem. Não há papéis definidos formalmente, incentivando uma estrutura de trabalho colaborativa e ágil. | Suporta equipes menores e mais colaborativas, com papéis mais flexíveis, permitindo maior adaptação ao ritmo do projeto. |
Referências
- GOMES, ANDRÉ. Scrum: o Framework Mínimo Viável. Disponível em: LinkedIn
- SCHWABER, KEN. SCRUM Development Process. Disponível em: JeffSutherland
- CIPULLO, GIOVANNA. RAD: você sabe como funciona o desenvolvimento ágil de aplicações? Disponível em: Korp
Justificativa
-
Maior Escalabilidade: ScrumXP é mais adequado para equipes com projetos em crescimento. Ele possui papéis e processos bem definidos que permitem uma expansão maior do projeto. RAD, por outro lado, tende a se ajustar melhor a projetos pequenos, fazendo com que a sua expansão seja limitada .
-
Maior Flexibilidade nos Requisitos: ScrumXP permite revisões e ajustes de requisitos a cada sprint, essencial para um projeto que precisa se adaptar rapidamente ao feedback e às demandas do cliente. RAD, por focar em protótipos rápidos, pode não acompanhar mudanças frequentes no mesmo nível de detalhe.
-
Integração Contínua com o Cliente: ScrumXP envolve o cliente de forma constante, promovendo feedback a cada sprint. No RAD, o feedback do cliente é mais pontual e menos estruturado, o que pode resultar em um desalinhamento nos requisitos ao longo do projeto.