Skip to content

3. Estratégias de Engenharia de Software

3.1 Estratégia Priorizada

Abordagem de Desenvolvimento de Software
A abordagem escolhida para o desenvolvimento da solução será a Híbrida, combinando elementos das filosofias dirigida por plano (como a definição antecipada de requisitos e a ênfase na previsibilidade do escopo) e ágil (como a adaptação contínua e a colaboração direta com o cliente). Essa escolha se alinha às particularidades do projeto da Barbearia VSM, que conta com requisitos iniciais bem definidos, mas também com a forte disponibilidade do cliente, o que permite um ciclo constante de validação e de adaptação contínua às necessidades identificadas ao longo do desenvolvimento. A previsibilidade é alcançada pela organização dos requisitos desde o início, o que viabiliza um planejamento claro e estruturado. A flexibilidade, por sua vez, será assegurada pela abertura a ajustes ao longo do desenvolvimento, baseada em interações frequentes com o cliente, além da priorização de funcionalidades em entregas incrementais.

Ciclo de Vida
O ciclo de vida selecionado é o Iterativo e Incremental, pois permite o desenvolvimento gradual da solução por meio de entregas parciais, funcionais e evolutivas. Cada incremento será validado junto ao cliente, permitindo a identificação prévia de desvios, a correção contínua de problemas e a adaptação do produto às reais necessidades do negócio. Esse modelo favorece o alinhamento entre a solução desenvolvida e as expectativas do usuário final, ao mesmo tempo em que reduz o risco de retrabalho por falhas de entendimento.

Processo de Engenharia de Software
O processo será conduzido por uma abordagem híbrida entre RAD e OpenUP, reorganizada em quatro fases sequenciais para melhor atender às necessidades do projeto.

Na Fase de Concepção (OpenUP), serão estabelecidos os fundamentos do projeto, com a definição do escopo inicial, identificação de stakeholders e riscos principais, e a elaboração da visão do produto. Esta etapa preparará o terreno para o trabalho de prototipação, garantindo que todos os participantes compartilhem uma compreensão comum dos objetivos antes da fase seguinte.

Em seguida, a Fase de Elaboração (OpenUP) terá como foco o refinamento e detalhamento dos requisitos identificados, a estruturação inicial do backlog e a definição clara dos critérios de aceitação. Essa fase permite que o projeto avance com uma base sólida de entendimento funcional, reduzindo ambiguidades e preparando as histórias de usuário para a prototipação.

A Fase de User Design (RAD) concentrar-se-á na prototipação rápida de interfaces e fluxos críticos, com validação visual direta junto ao cliente. Através de iterações ágeis e sessões frequentes de feedback, os requisitos serão refinados continuamente, antecipando decisões de design e assegurando que a solução atenda às expectativas de usabilidade antes do desenvolvimento em si.

Com os fluxos principais validados, o projeto avançará para a Fase de Construção (OpenUP), onde o desenvolvimento ocorrerá de forma incremental, orientado por histórias de usuário priorizadas. Esta fase manterá ciclos curtos de entrega (2 semanas), com ênfase na qualidade do código e rastreabilidade dos requisitos, enquanto incorpora mudanças pontuais quando necessário. Testes automatizados e integração contínua assegurarão a estabilidade do produto durante sua evolução.

Por fim, a Fase de Transição (OpenUP) preparará a implantação final, com treinamento dos usuários, ajustes baseados em feedbacks operacionais e consolidação da documentação. O encerramento do projeto incluirá uma revisão das lições aprendidas, garantindo que insights valiosos sejam capturados para iniciativas futuras.

Esta estrutura combinada preserva a agilidade do RAD na fase crítica de definição da experiência do usuário, enquanto aproveita a disciplina e organização do OpenUP para garantir um desenvolvimento controlado e adaptável. O resultado será um processo que equilibra velocidade com qualidade, mantendo o foco na entrega de valor contínuo ao cliente.

3.2 Quadro Comparativo

A seguir, apresenta-se um quadro comparativo entre dois processos de desenvolvimento de software considerados para o projeto: o RAD, focado na agilidade e prototipação rápida, e a abordagem híbrida RAD + OpenUP, que combina a validação visual com desenvolvimento estruturado.

Características RAD RAD + OpenUP
Abordagem Geral Ênfase na prototipação rápida e iterativa. Foco principal no Design Centrado no Usuário. Mantém a prototipação rápida do RAD, com desenvolvimento incremental e estrutura leve do OpenUP.
Estrutura de Processos Planejamento formal seguido de ciclos rápidos; requisitos de alto nível; protótipos iterativos. Validação visual, por meio de prototipações (RAD), com desenvolvimento estruturado, por meio de fases de construção, elaboração e transição (OpenUP).
Colaboração com o Cliente Participação ativa do cliente durante todo o processo; feedback contínuo e ajustes rápidos. Contato contínuo com o cliente, validação de protótipos e incremento de valor em cada entrega.
Flexibilidade de Requisitos Requisitos são tratados como variáveis; mudanças são facilmente incorporadas. Flexibilidade mantida, mas com gestão de mudanças dentro de ciclos iterativos e rastreamento mais estruturado.
Ciclo de Vida do Projeto Rápido e voltado à entrega funcional em pouco tempo. Estruturado com micro-incrementos: ciclos curtos (iterações) e visão de longo prazo (ciclo de projeto).
Complexidade do Processo Processo dividido em 4 fases, com foco na prototipação e no envolvimento do usuário. Mesmas 4 fases, com maior apoio à transição e construção final, promovendo gerenciamento de risco.
Práticas de Desenvolvimento Ênfase em ferramentas CASE e geração de protótipos; documentação mínima Uso das mesmas ferramentas com organização adicional; camadas de micro-incrementos e documentação enxuta.
Adequação ao Cliente Ideal para usuários com baixa familiaridade com tecnologia, pois incentiva o aprendizado prático. RAD ajuda na familiarização inicial; OpenUP estrutura o avanço com governança leve e foco em valor contínuo

3.3 Justificativa

A escolha pela combinação entre os processos RAD e OpenUP foi feita de forma estratégica, considerando as características do cliente e a natureza do projeto. Cada processo será utilizado em fases específicas, de acordo com seus pontos fortes e a necessidade de equilíbrio entre agilidade, estrutura e colaboração contínua.

Iniciamos com a fase de Concepção do OpenUP, voltada para a definição da visão do sistema, delimitação do escopo e entendimento do contexto da barbearia. Na sequência, a fase de Elaboração (OpenUP) permitirá o detalhamento dos requisitos por meio de histórias de usuário e a definição dos critérios de aceitação, preparando o terreno para a fase de prototipação com maior clareza e foco.

A seguir, será adotada a fase de Design do Usuário do RAD, priorizando a prototipação rápida e interativa com o cliente. Essa abordagem permite validar visualmente os fluxos principais e ajustar os requisitos de forma colaborativa e eficaz, especialmente considerando o baixo grau de familiaridade técnica do cliente.

Com os fluxos validados, o projeto segue para as fases de Construção e Transição do OpenUP, nas quais o desenvolvimento será conduzido de forma incremental, com entregas funcionais, testes automatizados e documentação enxuta. A escolha do OpenUP neste ponto parte da necessidade de organizar o desenvolvimento técnico com qualidade, rastreabilidade e flexibilidade suficiente para incorporar ajustes pontuais.

Optamos por manter um processo iterativo mesmo após a validação dos requisitos, justamente para aproveitar ao máximo a disponibilidade do cliente ao longo de todo o projeto. Essa colaboração contínua poderá trazer melhorias incrementais durante a execução, sem comprometer o planejamento e a consistência do produto final.

Assim, a junção entre RAD e OpenUP permite iniciar com velocidade e envolvimento direto do cliente, garantindo clareza nos requisitos, e avançar com uma abordagem estruturada, que favorece entregas de valor contínuas, com controle de qualidade e adaptabilidade.

Histórico de Versão

Data Versão Descrição Autor
20/04/2025 1.1 Atualização no Tópico 3.2 e 3.3 Vinícius Rufino
20/04/2025 1.2 Atualização do Tópico 3.1 Weverton Rodrigues
21/04/2025 1.4 Refatoração dos Tópicos 3.2 e 3.3 Vinícius Rufino
03/05/2025 2.0 Refatoração do Documento Vinícius Rufino e Weverton Rodrigues
24/05/2025 2.1 Atualização dos Tópicos 3.1 e 3.3 Weverton Rodrigues