AULA 17 / 61 · ACESSO GRATUITO

Waterfall e Caracol

Graciliano TolentinoEngenharia Caracol · Edição 2.0
Nesta aula
  1. Ordem necessária e aprendizagem
  2. Procedimento para uma mudança
  3. O mesmo incremento em dois percursos
  4. Exemplo trabalhado
  5. Erros e reparos
  6. Gate observável
  7. Exercício resolvido
  8. Leitura relacionada

Ordem necessária e aprendizagem

A Oficina Caracol precisa listar serviços ativos. Antes de decidir se a listagem funciona, precisamos saber o que significa ativo e qual resultado caracteriza uma listagem correta. Essa dependência de conhecimento não determina, por si só, que todo o projeto deva ser especificado antes de qualquer implementação. Ela apenas impede uma aprovação sem critério.

Waterfall, ou cascata, designa uma organização de atividades em fases predominantemente sequenciais. A discussão de Royce em S11 apresenta etapas e também trata realimentação e riscos; não deve ser reduzida ao slogan de que voltar é proibido. Uma sequência pode organizar responsabilidades e revisões, mas mudanças posteriores exigem tratamento explícito.

A Engenharia Caracol combina uma direção de avanço com retornos delimitados por evidências. Seu nome não transforma qualquer mudança em melhoria: o retorno precisa identificar o fato novo, os artefatos afetados e a prova que perdeu validade. O objetivo é aprender sem apagar o que continua sustentado. O Manifesto Ágil, em S12, valoriza responder a mudanças; ele não dispensa critérios de aceite nem demonstrações de funcionamento.

Procedimento para uma mudança

  • Declare a capacidade do incremento e seus critérios de aceite antes de autorizar sua entrega.
  • Desenhe dependências entre decisões, dados, implementação e verificações. Diferencie dependência real de preferência de trabalho.
  • Ao receber informação nova, compare-a com os critérios vigentes e registre o conflito concreto.
  • Reabra os itens cuja evidência foi afetada, incluindo consumidores indiretos. Preserve os demais com justificativa.
  • Depois da correção, execute novamente as verificações pertinentes e emita outro gate, isto é, uma decisão registrada de passagem.

O mesmo incremento em dois percursos

Considere a capacidade de listar apenas casos ativos. O quadro compara duas organizações de trabalho para o mesmo escopo, com aprovação final obrigatória em ambas. A coluna orientada por fases é uma simplificação didática de planejamento sequencial; não descreve toda implementação histórica de Waterfall nem todo o argumento de Royce.

EtapaExemplo orientado por fasesExemplo de ciclo Caracol
DefinirConsolidar requisitos da versão do catálogo antes de detalhar a implementação.Definir o requisito da capacidade, seus limites e a primeira prova.
EstruturarDesenhar contratos e componentes para o escopo planejado.Acordar o contrato mínimo; identificar dependências da unidade.
ConstruirImplementar os componentes previstos e reuni los para verificação.Implementar filtro e consumidor; integrar cedo um fluxo pequeno.
VerificarExecutar a verificação prevista para a entrega e tratar desvios encontrados.Testar a unidade e a integração do ciclo com evidência por versão.
Receber fato novoAnalisar impacto e replanejar as fases atingidas conforme o processo escolhido.Reabrir requisito contrato dados código e testes afetados; preservar os independentes.
AceitarDecidir com os critérios de aceitação da versão.Decidir o gate da capacidade e registrar o próximo ciclo.

Na Oficina, uma nova regra que proíbe mostrar rascunhos afeta seleção e provas do catálogo. Ela não autoriza reescrever a tipografia. O valor da comparação está em demonstrar qual decisão é tomada e quando a prova ocorre, não em concluir que um nome de processo garante sucesso. O artigo histórico de Royce inclui iteração e crítica ao teste tardio, como mostram suas figuras 2 a 4.

Exemplo trabalhado

O incremento inicial atende REQ-001 e REQ-002: lista os serviços ativos e oculta os inativos. Durante a revisão do requisito, surge uma dúvida: um registro sem o campo ativo pode ser tratado como ativo? A decisão do projeto é exigir um valor booleano explícito; ausência é dado inválido, conforme REQ-003. Isso altera a regra de validação e a resposta de erro, mas não exige mudar a cor dos botões.

ArtefatoDecisão após o fato novoPor quê
pratica/docs/decisao-001.mdRegistrar o contrato de ativo como booleano obrigatórioEliminar a interpretação implícita
pratica/data/casos.jsonVerificar presença e tipo do campoOs dados devem respeitar o contrato
pratica/src/catalogo.mjs e testesRevisar validação e cenário de campo ausenteA evidência anterior não cobria essa entrada
pratica/public/styles.cssPreservar nesta mudançaA regra de seleção não depende das cores

O resultado esperado é uma falha explícita para o registro sem ativo, em vez de sua publicação silenciosa. A tabela é uma decisão didática; a aprovação depende da execução correspondente no pacote. A identificação da versão e os resultados serão associados ao novo gate, sem reutilizar como prova suficiente um teste realizado antes da mudança.

Problema e requisito orientam a unidade, que produz uma prova para o gate. Uma seta de retorno liga o gate à unidade afetada.Ampliar diagrama
Uma unidade só avança com prova e decisão. O retorno tem uma causa e um alvo. Um gate não é apenas um formulário preenchido: precisa produzir uma decisão sustentada pelas evidências disponíveis.

Erros e reparos

ErroConsequênciaReparo
Reabrir todo o siteMisturar mudanças independentesListar dependentes e justificar cada reabertura
Proibir qualquer retornoManter um critério conhecido como inadequadoRegistrar o fato novo e renegociar escopo e evidência
Preservar testes antigos sem análiseAprovar uma regra que eles não verificamAdicionar o cenário alterado e repetir regressões pertinentes

Gate observável

O incremento pode avançar quando o contrato de ativo está escrito, dados válidos são aceitos, ausência ou tipo inválido produz resposta explícita e a listagem continua ocultando inativos. O registro deve identificar a versão verificada. Se a validação ainda não foi executada, o resultado é BLOQUEADO para entrega dessa capacidade, mesmo que a tabela de impacto esteja completa.

Exercício resolvido

Dados: a regra atual já exige ativo booleano. Surge a proposta de acrescentar uma imagem opcional aos casos. Um serviço não possui imagem; o texto alternativo já consta no requisito. Indique a menor reabertura e a evidência de encerramento.

Ver solução comentada

Solução: reabrir contrato da imagem opcional, apresentação no navegador e testes do estado sem imagem. Verificar se o carregamento de dados trata a ausência sem erro. Preservar a seleção por ativo se sua entrada e sua regra não mudaram. A prova deve mostrar caso com imagem e caso sem imagem, incluindo navegação por teclado quando houver interação.

  • A resposta identifica a ausência permitida e o comportamento alternativo esperado.
  • Inclui apresentação e carregamento entre os pontos de análise, sem obrigar alteração onde a inspeção provar compatibilidade.
  • Justifica preservação da filtragem e exige resultado verificável, não apenas um desenho de fluxo.

Leitura relacionada

S11, figuras 2–4 e discussão das páginas iniciais da cópia de Royce, trata sequência, iteração e risco de descobrir problemas tarde. S12, valores e princípios, sustenta a atenção à mudança; S16, testes relacionados a mudanças, ajuda a selecionar confirmação e regressão. Nenhuma dessas fontes apresenta ou certifica o método Caracol.

Fontes relacionadas

Consulte os limites e as seções de apoio de cada referência.

S11 S12 S16
Conseguiu explicar o que aprendeu?

Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.

A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.