Estratégias de Engenharia de Software
Estratégia Priorizada¶
- Abordagem: Ágil
- Ciclo de Vida: Ágil
- Processo: ScrumXP
Quadro Comparativo¶
Características | ScrumXP | RAD (Rapid Application Development) |
---|---|---|
Abordagem Geral | Iterativo e incremental com foco em entregas rápidas e feedback contínuo. | Metodologia centrada em ciclos rápidos de desenvolvimento, com ênfase na criação e validação de protótipos. |
Complexidade do Processo | Mais leve e ágil, com menos documentação formal e foco na entrega funcional. | Processo simplificado, com menos formalidade e foco na criação rápida de funcionalidades essenciais. |
Qualidade Técnica | Alta ênfase em qualidade, utilizando práticas como TDD, pair programming e integração contínua. | Qualidade aprimorada com base em feedback contínuo durante as revisões dos protótipos e iterações. |
Práticas de Desenvolvimento | Inclui práticas robustas como TDD, refatoração contínua e pair programming. | Concentra-se em iterações curtas e ajustes colaborativos, com foco na rápida implementação e refinamento das ideias. |
Adaptação ao Projeto | Ideal para projetos que necessitam de evolução contínua e alta interação com o cliente. | Adequado para projetos com requisitos em constante mudança e que beneficiam-se de protótipos ágeis e flexíveis. |
Documentação | Minimiza a documentação formal, com foco em comunicação e feedback. | Documentação enxuta, que prioriza a agilidade e apenas os registros essenciais para guiar o desenvolvimento. |
Controle de Qualidade | Controlado através de práticas como TDD e integração contínua, garantindo testes frequentes. | Baseado em revisões e feedback constantes, permitindo ajustes rápidos para corrigir falhas identificadas nos protótipos. |
Escalabilidade | Mais indicado para equipes menores e médias, devido à colaboração intensa. | Melhor para projetos menores ou de médio porte, onde a flexibilidade e mudanças rápidas são necessárias. |
Suporte a Equipes | Suporta equipes menores e colaborativas, com papéis flexíveis. | Ideal para equipes compactas, promovendo integração e colaboração próximas entre os membros. |
Justificativa¶
-
Diferença de conhecimentos da equipe: A escolha pelo ScrumXP foi influenciada pela heterogeneidade nos conhecimentos da equipe, onde cada membro possui diferentes níveis de experiência e especializações. O ScrumXP se destaca por promover a colaboração constante e o compartilhamento de conhecimentos por meio de práticas como pares de programação e revisão de código. Esse aspecto facilita a distribuição e o nivelamento de conhecimentos entre todos, garantindo que mesmo os membros com menos experiência possam evoluir rápido e contribuir de forma efetiva para o projeto. Por outro lado, metodologias como o RAD podem falhar em integrar e gerenciar equipes com diferentes níveis de conhecimento de maneira tão eficiente.
-
Disponibilidade da Pro Injeção: A ampla disponibilidade da Pro Injeção, que atua como um stakeholder crucial para o desenvolvimento do projeto, foi um fator importante na escolha pelo ScrumXP. Esse framework permite que a equipe aproveite ao máximo a presença constante da Pro Injeção, integrando feedback frequente e colaborando de maneira contínua para alinhar as entregas com as expectativas do cliente. As iterações curtas e a flexibilidade do ScrumXP ajudam a garantir que as prioridades do cliente sejam rapidamente incorporadas, otimizando o desenvolvimento. Diferente de processos como o RAD, que podem depender de interações mais intensivas em fases específicas, o ScrumXP possibilita uma colaboração contínua e eficiente.
-
Metodologias de desenvolvimento: O ScrumXP combina aspectos ágeis e práticas de engenharia do Extreme Programming, tornando-o ideal para projetos que necessitam de alta qualidade de entrega em ciclos rápidos. Metodologias como o RAD priorizam a entrega rápida de protótipos funcionais, mas podem comprometer a manutenção do código a longo prazo devido à menor ênfase em práticas de engenharia robustas. O ScrumXP, por outro lado, utiliza práticas como desenvolvimento orientado a testes (TDD) e integração contínua, que asseguram que cada incrementação seja desenvolvida com um alto padrão de qualidade. Isso garante um processo que é ágil, mas sem abrir mão da manutenção e da extensibilidade do software.
-
Adaptabilidade aos requisitos: A natureza dos requisitos do projeto em questão é bastante dinâmica, com mudanças frequentes nas necessidades e objetivos. Nesse cenário, a capacidade de resposta é essencial, e o ScrumXP oferece um modelo de desenvolvimento altamente adaptável. O uso de sprints curtos, a retrospectiva constante e a revisão de backlog permitem ajustes rápidos no rumo do projeto, assegurando que as mudanças de requisitos sejam incorporadas sem interrupções significativas. Em contraste, o RAD, embora flexível, pode ter limitações quando se trata de adaptar rapidamente funcionalidades ou de refatorar código para requisitos que mudam com frequência, uma vez que o foco principal está na entrega de protótipos rápidos.
Referencial Teórico Utilizado¶
Para a construção do quadro comparativo entre as metodologias ScrumXP e RAD, utilizou-se como base literaturas clássicas sobre metodologias ágeis, assim como publicações recentes que abordam estudos de caso e boas práticas no desenvolvimento ágil. Abaixo, são citadas as principais referências teóricas que fundamentaram a comparação:
-
Beck, K., & Andres, C. (2004). Extreme Programming Explained: Embrace Change.
- Este livro é considerado um dos principais referências sobre o Extreme Programming (XP), abordando as práticas de desenvolvimento como TDD, refatoração e pair programming, que foram consideradas na comparação das práticas de desenvolvimento e da qualidade técnica.
-
Schwaber, K., & Sutherland, J. (2017). The Scrum Guide.
- A guia oficial do Scrum foi utilizada para entender as principais características do framework Scrum, sua abordagem iterativa e incremental, e como isso contribui para a flexibilidade e colaboração constante, aspectos relevantes para o quadro comparativo.
-
Martin, R. C. (2009). Clean Code: A Handbook of Agile Software Craftsmanship.
- A obra de Robert C. Martin contribuiu na análise dos aspectos de qualidade técnica e das boas práticas de engenharia de software. As práticas de qualidade associadas ao ScrumXP foram fundamentadas a partir das discussões sobre código limpo e manutenção.
-
Pressman, R. S. (2014). Software Engineering: A Practitioner's Approach.
- O livro de Pressman foi utilizado como referência para a caracterização do RAD, detalhando o processo de desenvolvimento rápido de aplicações e destacando suas vantagens e limitações em comparação com outras metodologias ágeis.
-
Boehm, B., & Turner, R. (2003). Balancing Agility and Discipline: A Guide for the Perplexed.
- O livro de Boehm e Turner ajudou a compreender os pontos fortes e fracos de cada metodologia em relação à complexidade do processo e à necessidade de documentação formal, aspectos diretamente abordados no quadro comparativo.
Essas fontes permitiram uma análise detalhada e fundamentada das características de cada metodologia, destacando os pontos fortes e as limitações em diferentes contextos de projeto, de modo a justificar a escolha mais adequada para o projeto, vale ressaltar que acessamos resumos sobre as obras citadas, pois não tivemos tempo hábil para a leitura completa das mesmas.
Histórico de Versão¶
Versão | Descrição | Autor | Data |
---|---|---|---|
0.1 | Primeira ideia do projeto | Bruno Bragança, Fábio Torres, Paulo Filho, Pedro Braga, Vinicius Vieira | 07/11/2024 |
0.2 | Atualizações do feedback do professor | Bruno Bragança, Fábio Torres, Paulo Filho, Pedro Braga, Vinicius Vieira | 08/11/2024 |
0.3 | Adição de referencial teórico | Vinicius Vieira | 19/11/2024 |