3. Estratégias de Engenharia de Software
3.1 Estratégia Priorizada
- Abordagem de Desenvolvimento de Software: Ágil
- Ciclo de vida: Ágil/Adaptativo
- Processo de Engenharia de Software: Scrum XP
3.2 Quadro Comparativo
A tabela a seguir compara dois processos ágeis de desenvolvimento de software, com o objetivo de esclarecer as características de cada um e justificar a escolha mais adequada no contexto da disciplina e do projeto VitalTech.
| Características | Scrum com práticas de XP (ScrumXP) | FDD (Feature Driven Development) |
|---|---|---|
| Abordagem Geral | Abordagem ágil, iterativa e incremental, organizada em sprints, com foco em entregas frequentes, feedback contínuo e incorporação de práticas técnicas de qualidade oriundas do XP. | Processo ágil orientado a funcionalidades (features), estruturado em cinco atividades: desenvolvimento de modelo geral, lista de features, planejamento por feature, design por feature e construção por feature. |
| Foco em Estruturação do Trabalho | Possui estrutura de trabalho bem definida, com backlog priorizado, planejamento de sprint, reuniões de acompanhamento, revisão e retrospectiva. Essa organização favorece maior previsibilidade e acompanhamento do progresso. | Organiza o trabalho em torno de uma lista de features priorizadas, decompostas em entregas de no máximo duas semanas. O planejamento é orientado por funcionalidades de negócio, o que facilita a comunicação com o cliente. |
| Estrutura de Processos | O desenvolvimento ocorre em ciclos curtos e regulares (sprints), permitindo entregas incrementais e validação frequente com os stakeholders. A combinação com XP acrescenta disciplina técnica ao processo. | O desenvolvimento segue cinco processos bem definidos e sequenciais dentro de cada feature, garantindo rastreabilidade e controle. Cada feature é projetada, revisada e construída de forma disciplinada. |
| Flexibilidade de Requisitos | Oferece flexibilidade para mudanças, especialmente entre sprints, mantendo maior estabilidade durante a execução de cada ciclo. Isso permite equilíbrio entre adaptação e organização. | Apresenta menor flexibilidade para mudanças durante o ciclo de uma feature, pois o processo de design e construção é planejado previamente. Mudanças são incorporadas nas próximas iterações de features. |
| Colaboração com Cliente | Envolve participação frequente do cliente ou stakeholders, especialmente nas revisões de sprint e nas interações de refinamento do backlog, garantindo alinhamento constante com o valor esperado. | A colaboração com o cliente ocorre principalmente nas fases iniciais (modelo geral e lista de features) e nas entregas de cada feature, com menos cerimônias formais de validação intermediária. |
| Complexidade do Método | Mais estruturado e mais completo, por combinar gestão ágil com práticas técnicas de engenharia. Exige maior disciplina da equipe e melhor organização dos papéis e atividades. | Também estruturado, com papéis definidos (Chief Architect, Chief Programmer, Feature Teams), mas com foco mais restrito à entrega de funcionalidades, sem incorporar explicitamente práticas técnicas como TDD. |
| Processo | Combina a estrutura de gerenciamento do Scrum com práticas de XP, como TDD, refatoração, integração contínua e valorização da comunicação entre os membros da equipe. | Estruturado em cinco processos: modelagem de domínio, lista de features, planejamento por feature, design por feature e build por feature. O foco é garantir que cada funcionalidade seja entregue com qualidade e rastreabilidade. |
| Qualidade Técnica | Alta ênfase na qualidade técnica, pois incorpora práticas do XP voltadas à construção de software mais confiável, testável e de melhor manutenção ao longo do tempo. | Prezar pela qualidade do design antes da implementação, com revisões de design obrigatórias por feature. Porém, não prescreve práticas de teste automatizado ou refatoração contínua como o XP. |
| Práticas de Desenvolvimento | Inclui práticas como testes automatizados, refatoração contínua, integração contínua, programação em par e desenvolvimento orientado a testes, promovendo maior robustez do produto. | Utiliza modelagem de objetos, inspeções de design e desenvolvimento orientado a features. Não define práticas técnicas tão detalhadas quanto o XP, mas exige rigor no processo de design. |
| Adaptação ao Projeto | Mostra-se adequado para projetos que necessitam de organização, acompanhamento frequente, evolução incremental e maior preocupação com a qualidade técnica da solução desenvolvida. | Mostra-se adequado para projetos de médio a grande porte com escopo bem definido em termos de funcionalidades, onde a rastreabilidade por feature e a divisão em equipes especializadas são vantajosas. |
| Documentação | Trabalha com documentação enxuta, porém suficiente para apoiar backlog, critérios de aceitação, acompanhamento das entregas e comunicação entre equipe e stakeholders. | Gera artefatos orientados a features, como lista de features, plano de projeto e relatórios de progresso por feature, mantendo rastreabilidade clara entre requisitos e entregáveis. |
| Controle de Qualidade | O controle de qualidade está embutido tanto na cadência do Scrum quanto nas práticas técnicas do XP, permitindo validações frequentes e prevenção de defeitos ao longo do desenvolvimento. | O controle de qualidade ocorre por meio de revisões de design obrigatórias antes da implementação de cada feature, garantindo que problemas sejam identificados antes da codificação. |
| Escalabilidade | Pode ser aplicado em equipes pequenas e médias com bom nível de coordenação, especialmente quando se busca equilíbrio entre gestão, colaboração e qualidade técnica. | Projetado para escalar bem em projetos maiores, com múltiplas equipes de feature coordenadas por Chief Programmers, sendo eficaz em contextos com grande volume de funcionalidades a desenvolver. |
| Suporte a Equipes de Desenvolvimento | Oferece maior suporte organizacional para a equipe, com papéis, eventos e práticas mais claramente definidas, o que facilita o acompanhamento do trabalho e das responsabilidades. | Define papéis específicos orientados à entrega de features (Chief Architect, Chief Programmer, Domain Expert, Feature Teams), proporcionando uma estrutura clara de responsabilidades por funcionalidade. |
3.3 Justificativa
A escolha pela abordagem Ágil, operando sob um ciclo de vida Iterativo e Incremental, fundamenta-se na natureza do projeto VitalTech. Dentre os processos ágeis considerados, o FDD (Feature Driven Development) foi avaliado como alternativa ao ScrumXP. Embora o FDD seja um processo estruturado e orientado a funcionalidades, ele apresenta menor flexibilidade para mudanças durante o ciclo de uma feature, colaboração menos frequente com o cliente e ausência de práticas técnicas explícitas como TDD e integração contínua. Para um projeto de pequeno porte, com equipe reduzida, cliente acessível e necessidade constante de validação, o ScrumXP se mostra mais adequado. Com base nas características do projeto e nos desafios enfrentados pelo Lar dos Velhinhos, a utilização do ScrumXP se justifica pelos seguintes motivos:
- Flexibilidade e adaptação às necessidades do cliente: Diferentemente do FDD, que planeja o design da feature antes da implementação e absorve mudanças apenas nas próximas iterações, o ScrumXP permite ajustes contínuos nos requisitos entre sprints. Isso é essencial para um projeto que envolve contato direto com o cliente e possibilidade de mudanças frequentes ao longo do desenvolvimento.
- Entregas graduais e validação constante: O desenvolvimento incremental em sprints possibilita a entrega de funcionalidades em etapas e revisões formais com o cliente, ao contrário do FDD, que prevê validação principalmente no início (modelo geral e lista de features). Isso facilita a identificação de melhorias e garante que o produto final esteja alinhado com a rotina dos usuários.
- Foco na experiência do usuário e qualidade técnica: O ScrumXP incorpora práticas do XP — como TDD, refatoração e programação em par — que o FDD não prescreve. Considerando que o sistema será utilizado por cuidadores com diferentes níveis de familiaridade com tecnologia, garantir qualidade técnica e usabilidade desde as primeiras entregas é fundamental.
- Adequação ao porte da equipe: O FDD define papéis especializados (Chief Architect, Chief Programmer, Feature Teams) mais adequados a projetos de médio e grande porte. O ScrumXP é mais leve nesse aspecto e se adapta melhor ao contexto de uma equipe pequena e multidisciplinar como a do VitalTech.
3.4 Processo ScrumXP Adotado no VitalTech
O quadro comparativo da Seção 3.2 apresenta características gerais do ScrumXP. Para a execução do VitalTech, a equipe adotou um conjunto de práticas compatível com o contexto acadêmico, o tamanho do grupo e os registros mantidos no repositório.
| Prática adotada | Aplicação no projeto | Evidência de execução |
|---|---|---|
| Sprint Planning | Definição do objetivo, do escopo e das User Stories selecionadas para cada sprint. | Planning da Sprint 1 e Planning da Sprint 2. |
| Acompanhamento assíncrono | Registro do andamento das atividades, próximos passos e impedimentos da equipe, como adaptação das Dailys à disponibilidade dos integrantes. | Registros de acompanhamento da Sprint 1. |
| Sprint Review | Revisão dos artefatos e incrementos produzidos, com registro das entregas apresentadas, pendências e próximos passos. | Review da Sprint 1 e gravação da Review. |
| Retrospectiva | Análise dos pontos positivos, dificuldades e ações de melhoria para os ciclos seguintes. | Retrospectiva da Sprint 1 e gravação da Retrospectiva. |
| Desenvolvimento iterativo e incremental | Organização das entregas por User Stories e construção progressiva de fluxos funcionais ao longo das sprints. | Story Map, cronograma e evidências por sprint e integração funcional da Sprint 2. |
| Revisão por pares | Verificação das alterações por outro integrante antes de sua integração à base compartilhada do projeto. | Registros de revisão das alterações no repositório. |
Somente registros preenchidos e artefatos efetivamente produzidos são considerados evidências de execução. Os modelos ainda não preenchidos das sprints seguintes representam apenas a estrutura prevista para documentação futura.
Histórico de Revisão
| Data | Versão | Descrição | Autor |
|---|---|---|---|
| 03/04/2026 | 1.0 | Criação do documento (Seções 1 a 2.3) para submissão da proposta. | Alberto Côrtes, João Pedro Sampaio, Ana Caroline, Enzo Menali e Gustavo Xavier |
| 10/04/2026 | 1.1 | Finalização e correção do documento para primeira entrega (Seções 1 a 6) para submissão. | Alberto Côrtes, Ana Caroline, Enzo Menali e Gustavo Xavier |
| 13/04/2026 | 1.2 | Lançamento dessa seção no GitPages | Gustavo Xavier |
| 03/05/2026 | 1.3 | Correção do quadro comparativo: substituição do Kanban pelo FDD, que é um processo ágil de ER, conforme apontado pelo professor (issues #10 e #11). Reescrita da seção 3.3 para citar o FDD como alternativa considerada e rejeitada, eliminando a inconsistência com o quadro comparativo. | Gustavo Xavier |
| 14/06/2026 | 1.4 | Explicitação do processo ScrumXP adotado no VitalTech e inclusão das evidências de execução das práticas realizadas pela equipe. | Enzo Menali |