Waterfall e Caracol
Nesta aula
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.
| Etapa | Exemplo orientado por fases | Exemplo de ciclo Caracol |
|---|---|---|
| Definir | Consolidar requisitos da versão do catálogo antes de detalhar a implementação. | Definir o requisito da capacidade, seus limites e a primeira prova. |
| Estruturar | Desenhar contratos e componentes para o escopo planejado. | Acordar o contrato mínimo; identificar dependências da unidade. |
| Construir | Implementar os componentes previstos e reuni los para verificação. | Implementar filtro e consumidor; integrar cedo um fluxo pequeno. |
| Verificar | Executar 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 novo | Analisar impacto e replanejar as fases atingidas conforme o processo escolhido. | Reabrir requisito contrato dados código e testes afetados; preservar os independentes. |
| Aceitar | Decidir 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.
| Artefato | Decisão após o fato novo | Por quê |
|---|---|---|
| pratica/docs/decisao-001.md | Registrar o contrato de ativo como booleano obrigatório | Eliminar a interpretação implícita |
| pratica/data/casos.json | Verificar presença e tipo do campo | Os dados devem respeitar o contrato |
| pratica/src/catalogo.mjs e testes | Revisar validação e cenário de campo ausente | A evidência anterior não cobria essa entrada |
| pratica/public/styles.css | Preservar nesta mudança | A 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.
Erros e reparos
| Erro | Consequência | Reparo |
|---|---|---|
| Reabrir todo o site | Misturar mudanças independentes | Listar dependentes e justificar cada reabertura |
| Proibir qualquer retorno | Manter um critério conhecido como inadequado | Registrar o fato novo e renegociar escopo e evidência |
| Preservar testes antigos sem análise | Aprovar uma regra que eles não verificam | Adicionar 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 S16Tente 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.