Apostila prospectiva · Engenharia

O futuro da engenharia
de software:
escrever ficou barato,
garantir não

Uma apostila de prospectiva — não de previsão. Quando produzir código deixa de ser o gargalo, a disciplina inteira se reorganiza em volta da pergunta seguinte: como saber que está certo. Cinco forças, quatro cenários para 2032, e as constantes que sobrevivem a qualquer ferramenta.

12 capítulosmétodo → forças → cenários
4 cenáriosalternativos, não uma previsão
8 sinaisanalisados com o método
1 demo ao vivode sinal virando cenário (cap. 9)

↓ role para começar — a barra no topo é o caminho do sinal ao cenário

Capítulo 01 Método

Como pensar o futuro desta profissão sem chutar

Nenhuma área tem tantas previsões erradas por metro quadrado quanto esta — e quase todas erram do mesmo jeito. O método começa por entender esse jeito.

1.1 O que esta apostila é — e o que ela não é

Delimitação de escopo

Esta apostila é sobre a disciplina, não sobre a carreira. Onde fica o gargalo do trabalho, qual artefato é canônico, quem responde pelo que o sistema faz, como se garante que está correto. As perguntas de emprego, salário, nível de entrada e forma da empresa estão em O Futuro do Trabalho em Tecnologia — leia as duas em sequência se quiser o quadro completo, mas elas não se repetem.

1.2 As três camadas: sinal, tendência, incerteza

CamadaExemplo aqui
Sinal"Uma fração significativa do código que entra em produção passou a ser sugerida ou gerada por ferramenta."
Tendência"O custo marginal de produzir uma linha de código está caindo mais rápido que o custo de entendê-la, revisá-la e mantê-la."
Incerteza crítica"A capacidade de verificar vai acompanhar a de gerar — ou vai ficar para trás?"

Repare: o sinal é verificável, a tendência é uma leitura defensável, e a incerteza é honestamente aberta. Confundir os três é o que produz manchete.

1.3 O erro clássico das previsões nesta área

Praticamente toda previsão sobre programação nos últimos sessenta anos previu substituição e o que aconteceu foi adição e deslocamento. O COBOL foi anunciado como o fim da necessidade de programadores — "gerentes escreverão os programas". As ferramentas de geração visual dos anos 1990 idem. A programação declarativa, idem. Em todos os casos: a barreira caiu, a demanda cresceu, a natureza do trabalho mudou, e a profissão ficou maior — não menor.

Heurística de desconto

Toda previsão de substituição deve ser lida como uma previsão de deslocamento até prova em contrário. A pergunta útil não é "isso substitui o programador?", e sim "o que isso torna barato, e para onde o trabalho escasso se muda em consequência?". Esta apostila é construída em cima dessa pergunta.

Mas há um contra-argumento honesto, e ele precisa ficar registrado: o fato de o padrão ter se repetido não garante que se repita. Ondas anteriores subiram o nível de abstração com ferramentas determinísticas — um compilador dá sempre a mesma saída e ela é verificavelmente correta pela construção. Esta onda é diferente: a ferramenta é probabilística. Se essa diferença importa ou não é justamente uma das incertezas do cap. 8.

1.4 Horizonte e confiança

Horizonte: ~6 anos (2032). Cada projeção vem com grau de confiança declarado — alta, média ou baixa. Onde eu não sei, digo que não sei; num tema com esta densidade de hype, essa é a parte mais útil do documento.

Exercício 1.1 — Desmonte uma previsão

Pegue uma afirmação recente sobre o futuro da programação. Separe: que fato ela cita? que leitura ela faz? que incerteza ela esconde apresentando como certeza? Ela prevê substituição ou deslocamento?

Exercício 1.2 — Caderno de sinais (hábito da apostila)

Crie um "Caderno de Sinais": 3 por semana, com data, fonte e força correspondente. Regra deste tema: prefira sinais de dados de operação (tempo de revisão, taxa de defeito, tempo de recuperação) a sinais de anúncio de produto.

Capítulo 02 Sinais

O inventário: o que já está acontecendo

O registro do presente (2026), separando o que se sabe do que se afirma. É a base de qualquer cenário — e a primeira coisa a envelhecer.

2.1 Na produção de código

2.2 Na revisão e na qualidade

2.3 Na estrutura do trabalho

2.4 Na segurança e na procedência

Ressalva

Inventário de 2026 — envelhece rápido, e este é o capítulo com prazo de validade mais curto de toda a apostila. Se você lê isto em 2030, refaça-o antes de usar os cenários.

Exercício 2.1 — Onde está o seu gargalo?

Numa entrega recente da sua equipe, estime a divisão do tempo: escrever, entender/investigar, revisar, esperar aprovação, integrar, operar. Se escrever é menos de 30%, dobrar a velocidade de escrita muda pouco. Quanto exatamente?

Exercício 2.2 — Percepção vs. medida

Na próxima tarefa em que você usar geração, anote antes quanto tempo acha que vai levar, e depois quanto levou de fato. Repita 5 vezes. A diferença entre percepção e medida é o achado mais consistente do cap. 2.1.

Capítulo 03 Força

Força 1 — o gargalo se deslocou

A força mais bem estabelecida da lista, e a que reorganiza tudo o que vem depois. Barateie uma etapa e o valor migra inteiro para a etapa seguinte.

3.1 A cadeia inteira, e onde o custo estava

EtapaCusto antesCusto depoisEfeito
Decidir o que construirAltoAltoInalterado — e agora relativamente mais caro.
Entender o sistema existenteAltoMédio-altoAlguma ajuda para explicar código; o contexto implícito continua na cabeça das pessoas.
Escrever o códigoAltoBaixoÉ o que caiu. Toda a consequência vem daqui.
Verificar que está certoAltoAltoNão caiu na mesma proporção — vira o novo gargalo.
Integrar e liberarMédioMédioJá estava otimizado pela cultura de entrega contínua.
Operar e responder por falhasAltoAltoInalterado — e mais volume de mudança significa mais superfície.

3.2 A consequência contraintuitiva

Quando escrever fica barato, a quantidade de código tende a crescer — e código é passivo, não ativo. Cada linha precisa ser entendida, mantida, migrada, auditada e eventualmente apagada. Uma equipe que produz três vezes mais código com a mesma capacidade de revisão e operação não ficou três vezes mais produtiva: ficou mais endividada.

É também um caso do padrão que economistas chamam de paradoxo de Jevons: baratear o uso de um recurso costuma aumentar o consumo total dele, não reduzir. Projeção (confiança alta): o volume de código em existência cresce mais rápido que a capacidade humana de compreendê-lo — e a diferença entre os dois é a variável central desta apostila.

3.3 Para onde o trabalho escasso se muda

Fica escasso 1

Especificar bem

Dizer com precisão o que o sistema deve fazer — e o que ele não deve. Sempre foi o trabalho difícil; agora é o trabalho visível, porque é o único passo que não barateou.

Fica escasso 2

Verificar de verdade

Saber que está correto sem depender de ler linha por linha. É o cap. 4 inteiro, e o eixo nº 1 dos cenários.

Fica escasso 3

Decidir a arquitetura

Onde traçar fronteiras, o que acoplar, o que isolar. Decisões caras de reverter — e o custo de errar sobe junto com o volume. Ver Arquitetura & System Design.

Fica escasso 4

Operar e investigar falhas

Diagnosticar o que quebrou num sistema grande e mutante é o trabalho que menos barateou. Ver Causa Raiz e Pensamento Sistêmico.

Exercício 3.1 — Meça a razão

No último trimestre da sua equipe: quantas linhas entraram, e quantas horas de revisão houve? A razão está subindo? Se sim, você está no cenário 1 do cap. 8 sem ter escolhido.

Exercício 3.2 — O passivo

Liste três partes do seu sistema que ninguém entende bem hoje. Como elas chegaram lá? Se o volume de mudança triplicasse, quantas partes assim existiriam em dois anos?

Capítulo 04 Força

Força 2 — o problema da verificação

Se existe uma pergunta que decide o futuro desta profissão, é esta: como garantir que um sistema está correto quando ninguém leu todo o código dele. É o eixo nº 1 dos cenários.

4.1 Por que a revisão humana não escala

Ler código é mais difícil do que escrevê-lo — porque escrever é reconstruir uma intenção que você tem, e ler é reconstruir uma intenção que você não tem. Com volume crescente, a revisão degrada de forma previsível: de "entendi e concordo" para "parece razoável" e daí para "os testes passaram". E código gerado é especialmente ruim para revisão superficial, porque ele é plausível por construção — foi produzido para parecer com código correto. Os defeitos que sobrevivem são exatamente os que não parecem defeitos.

4.2 O arsenal de garantia, do mais fraco ao mais forte

MecanismoO que garanteEscala com volume?
Revisão humanaMuito, quando feita a sério.Não. É linear no tempo de gente.
Teste gerado a partir do códigoQuase nada — descreve o comportamento atual, defeito incluído.Sim, e é por isso que é perigoso: dá sensação de garantia.
Teste escrito a partir da intençãoO comportamento esperado nos casos previstos.Sim, se a intenção estiver escrita em algum lugar.
Tipos e contratosClasses inteiras de erro, na compilação, sem executar.Sim, muito bem. Custo fixo, benefício proporcional ao volume.
Teste de propriedade e fuzzingInvariantes sob entradas que ninguém pensaria em escrever.Sim — subestimado e barato hoje.
Verificação formalCorreção demonstrada em relação a uma especificação.Sim, mas com custo alto e alcance restrito a partes críticas.
Observabilidade e reversão rápidaNada antes; muito depois — limita o dano.Sim. É a rede de segurança quando a garantia prévia falha.
A regra que organiza a tabela

O que escala com volume é o que não exige uma pessoa por unidade de código. Tipos, contratos, propriedades e invariantes escalam; leitura não. Um sistema que vai receber muito código gerado precisa investir na metade de baixo da tabela antes de aumentar o volume — não depois.

4.3 A armadilha do teste gerado

O erro mais caro do momento

Gerar testes a partir do código produz cobertura alta e garantia zero. Se o código tem um defeito, o teste gerado consagra o defeito como comportamento esperado — e ainda dificulta a correção, porque o teste vai falhar quando alguém consertar. Teste tem que vir da intenção, não da implementação. Onde a intenção não está escrita, gerar teste é gerar concreto em volta do erro. Ver Testing Moderno & Automação.

4.4 A incerteza crítica

Incerteza crítica nº 1: a garantia acompanha a geração? Isto é — surgem meios baratos, confiáveis e amplamente adotados de saber que o código faz o que deveria, sem depender de leitura humana proporcional ao volume? Há razões para otimismo (tipos, propriedades e verificação formal são técnicas maduras e subutilizadas; e a mesma tecnologia que gera pode ajudar a especificar) e razões para pessimismo (verificação exige que exista uma especificação, e escrever especificação continua sendo trabalho humano difícil que ninguém quer fazer). Confiança sobre a resposta: baixa. É por isso que ela é um eixo, e não uma projeção.

Exercício 4.1 — Audite a sua garantia

Percorra a tabela de 4.2 e marque o que você usa de fato. Quanto da sua garantia depende de alguém ler? Essa fração escala com três vezes mais código?

Exercício 4.2 — Um teste de propriedade

Escolha uma função pura do seu sistema. Escreva uma invariante em vez de um caso de teste ("o resultado nunca é negativo", "ordenar duas vezes dá o mesmo que ordenar uma"). Rode com centenas de entradas aleatórias. Achou algo?

Capítulo 05 Força

Força 3 — o que a história da abstração ensina (e o que não)

"É só mais uma subida de nível de abstração, como do assembly para o C." A analogia é boa e é usada mal. Vale examinar exatamente onde ela se aplica e onde ela quebra.

5.1 As subidas anteriores e o padrão

SubidaO que virou descartávelO que ficou humano
Assembly → linguagens de alto nívelO código de máquina. Ninguém lê a saída do compilador no dia a dia.O programa fonte, a lógica, o desenho.
Gestão manual → coleta automática de memóriaBoa parte do controle explícito de alocação.O desenho de dados, e o desempenho quando importa.
Servidor físico → nuvem e contêineresA operação manual de máquina.A arquitetura, o custo, a confiabilidade.
SQL sobre acesso manual a registroO algoritmo de acesso — você declara o que quer, não como buscar.O modelo de dados e o entendimento do plano quando ele fica lento.

O padrão: em todas, a camada de baixo virou descartável mas auditável — você normalmente não lê a saída, mas pode ler quando precisa, e ela é sempre a mesma para a mesma entrada. E em todas, a profissão cresceu.

5.2 As três diferenças que a analogia esconde

Diferença 1

O compilador é determinístico

Mesma entrada, mesma saída, e correção demonstrável pela construção. A geração probabilística não tem essa propriedade — o que muda tudo sobre confiar sem ler.

Diferença 2

A linguagem fonte era precisa

C é ambíguo em muito menos coisas que português. Se a nova "linguagem fonte" for descrição em linguagem natural, a ambiguidade entra no artefato canônico — e ambiguidade não compila duas vezes igual.

Diferença 3

Antes, a fonte era guardada

Ninguém versiona o binário e joga fora o fonte. Hoje, muita equipe guarda o código gerado e joga fora a conversa que o produziu — o que é exatamente ao contrário. É o sinal mais fácil de observar de qual cenário você está construindo.

O que sustenta a analogia

Mas o padrão econômico se mantém

Barateou, o volume cresceu, a demanda cresceu junto, e o trabalho subiu de camada. Isso aconteceu em todas as subidas e não há motivo forte para não acontecer nesta.

5.3 A projeção honesta

Projeção (confiança média): uma subida de abstração acontece, mas parcial e desigual — muito clara em software novo, de escopo delimitado e baixo risco; muito lenta em sistema grande, antigo e crítico, onde o código continua canônico até 2032. A ideia de um corte limpo em que "ninguém mais lê código" é improvável no horizonte desta apostila; a de que "nada muda" é igualmente improvável.

E a condição que decide: a subida só se completa se a camada de baixo virar confiável o bastante para não ser lida — que é dizer que o eixo da abstração depende do eixo da verificação. Eles são ortogonais como incertezas, mas ligados como mecanismo: é por isso que o cenário 2 do cap. 8 (abstração sem garantia) é o mais desconfortável dos quatro.

Exercício 5.1 — Qual é o seu artefato canônico?

Quando alguém da sua equipe gera código, o que é guardado: só o resultado, ou também o pedido e o critério? Se o sistema tivesse que ser regenerado do zero, o que você teria em mãos?

Exercício 5.2 — Onde a analogia quebra no seu caso

Aplique as três diferenças de 5.2 ao seu contexto. Qual delas mais te preocupa? O que custaria pouco corrigir já?

Capítulo 06 Força

Força 4 — o código que ninguém escreveu

Um sistema antigo é difícil porque quem o construiu foi embora. Um sistema gerado pode nascer nessa condição — e essa é uma categoria de problema nova.

6.1 O software é uma teoria, não um texto

Há uma ideia antiga e pouco lembrada de Peter Naur: programar é construir uma teoria. O código é o registro parcial de um entendimento que existe na cabeça de quem o construiu — por que estas fronteiras, o que foi tentado e descartado, quais casos importam de verdade. Quando essa teoria se perde, o código continua rodando mas fica irremediavelmente difícil de modificar, porque cada mudança pode violar uma razão que ninguém sabe mais que existia.

Esta é a lente mais útil para pensar o problema desta força: a questão não é se o código gerado é bom, é se a teoria existe em algum lugar. Código gerado, revisado superficialmente e integrado sem que ninguém tenha construído a teoria correspondente nasce como sistema legado.

6.2 O que se perde e o que compensa

O que se perdeO que compensa (e escala)
Por que esta fronteira e não outraRegistro de decisão de arquitetura, curto e datado
Quais alternativas foram descartadas e por quêO mesmo registro, com a seção "descartamos X porque"
Quais casos-limite importam de verdadeTestes escritos a partir da intenção — que são a teoria em forma executável
Quais restrições são reais e quais são acidentaisTipos e contratos: a restrição fica no código, não na memória
Onde é seguro mexerFronteiras explícitas, acoplamento baixo, e a capacidade de reverter rápido

Repare que a coluna da direita é a mesma lista do cap. 4.2. Não é coincidência: o que serve para verificar é o que serve para preservar entendimento. Ambos são formas de tirar conhecimento da cabeça das pessoas e colocá-lo num lugar que não vai embora.

6.3 Propriedade e responsabilidade

Uma pergunta que as equipes ainda não responderam bem: quem responde pelo código que ninguém escreveu? A resposta que funciona é a mesma de sempre — quem integrou responde. Aprovar uma mudança é assumi-la, independentemente de quem ou o que a produziu. Isso soa óbvio e é rotineiramente violado na prática, com o "foi a ferramenta que gerou" funcionando como diluição informal de responsabilidade.

Projeção (confiança média-alta): equipes que mantêm a regra de propriedade explícita — quem aprova, responde — atravessam qualquer um dos quatro cenários melhor do que as que a diluem, porque essa regra é o que impede o volume de virar passivo silencioso.

Exercício 6.1 — Onde está a sua teoria?

Escolha um módulo do seu sistema. Fora do código, onde está registrado por que ele é assim? Se a resposta é "na cabeça de fulano", quanto custaria escrever meia página hoje?

Exercício 6.2 — O teste da explicação

Pegue a última mudança que você aprovou. Você conseguiria explicar, sem reler, o que ela faz e por que está correta? Se não, o que a sua aprovação garantiu de fato?

Capítulo 07 Força

Força 5 — a pressão institucional

A força mais lenta e a mais subestimada. Enquanto a discussão técnica corre, contratos, seguros e reguladores estão redefinindo o que significa entregar software de forma responsável.

7.1 O que já se move

7.2 Por que isto importa para o futuro da disciplina

Rastreabilidade e responsabilidade empurram na direção oposta à do volume descuidado. Se alguém precisa demonstrar que um requisito virou um comportamento verificado, a especificação deixa de ser opcional — não por virtude, por contrato. E é isso que torna o cenário 4 do cap. 8 possível: a pressão institucional pode fornecer o incentivo que a virtude técnica sozinha não forneceu em cinquenta anos.

Projeção (confiança média-alta): até 2032, a exigência de rastreabilidade entre intenção, implementação e evidência se espalha dos setores regulados para o software corporativo comum — puxada por contrato e por seguro antes de por lei.

O contra-argumento

Regulação de software é historicamente lenta, desigual entre jurisdições e frequentemente ineficaz — vira preenchimento de formulário sem mudança de prática. É plausível que a rastreabilidade se torne mais um teatro de conformidade do que uma melhoria real. O sinal que distingue os dois: se a evidência exigida é gerada pelo processo (testes que rodam, construções assinadas) ou escrita à parte (documento produzido para a auditoria). O primeiro melhora o software; o segundo só consome tempo.

Exercício 7.1 — Rastreie um requisito

Escolha um requisito do seu produto. Você consegue apontar o código que o implementa e o teste que o verifica? Quanto tempo levou para responder? Essa é a sua distância até a rastreabilidade.

Exercício 7.2 — O inventário

Você sabe listar todas as dependências do seu sistema, com versão e licença, em menos de 10 minutos? Se não, é a lacuna mais barata de fechar desta apostila.

Capítulo 08 Cenários

Quatro cenários para 2032

Nenhum é uma previsão. Quatro configurações plausíveis da disciplina, cada uma com o que teria de ser verdade, os sinais precoces, e o que fazer se for ela.

8.1 Os dois eixos de incerteza

A GARANTIA acompanha a geração? (verificar sem ler) NÃO │ SIM ──────────────────────────────┼────────────────────────────── O nível de │ 1. A DÍVIDA ACELERADA │ 3. O OFÍCIO DA GARANTIA ABSTRAÇÃO │ (muito mais código, mesmo │ (código segue canônico, sobe? (a │ nível, verificação │ mas com tipo, contrato, especificação │ insuficiente — o sistema │ propriedade e prova: vira o │ cresce mais rápido que │ escrever é barato, artefato │ o entendimento) │ GARANTIR é o ofício) canônico) │ │ NÃO │ │ ──────────────────────────────┼────────────────────────────── SIM │ 2. A CAIXA-PRETA │ 4. A NOVA CAMADA │ (ninguém lê o código e │ (aconteceu de novo o que │ ninguém sabe se está │ houve com o assembly: │ certo — poder alto, │ a especificação É o │ garantia baixa) │ programa, e é verificável)

8.2 Cenário 1 — A dívida acelerada

O que acontece: a geração barateia, o volume triplica, o nível de abstração não sobe e a verificação continua dependendo de leitura humana. Os sistemas ficam maiores, mais rápidos de construir e progressivamente mais difíceis de mudar. O trabalho da profissão migra para arqueologia: entender e consertar código que ninguém escreveu. Sintoma característico: entregar a primeira versão fica muito rápido, e a segunda muito lenta.

Teria de ser verdade: as técnicas de garantia continuarem subutilizadas; a pressão por velocidade vencer a por rigor; nenhuma exigência externa de rastreabilidade.

Sinais precoces: razão entre linhas integradas e horas de revisão subindo; tempo de recuperação de falha piorando enquanto a frequência de entrega melhora; equipes reescrevendo sistemas de dois anos de idade.

O que fazer: investir na metade de baixo da tabela de 4.2 antes de aumentar o volume — é a única defesa, e é barata comparada ao custo de sair depois.

8.3 Cenário 2 — A caixa-preta

O que acontece: a especificação vira a fonte de verdade e o código gerado passa a ser tratado como descartável, mas sem que exista meio confiável de garantir que ele faz o que a especificação diz. Alto poder de produção, baixa garantia. Funciona bem na maior parte do tempo, e falha de forma rara, difícil de diagnosticar e potencialmente grave. É o cenário mais desconfortável dos quatro — e não é implausível, porque a conveniência de não ler chega antes da capacidade de não precisar ler.

Teria de ser verdade: confiança adotada mais rápido que confiabilidade demonstrada; e ausência de um evento suficientemente caro para corrigir o rumo.

Sinais precoces: equipes descartando o código gerado da revisão por política; incidentes cuja causa ninguém consegue explicar; queda no percentual de código que alguém da equipe consegue explicar.

O que fazer: manter a regra de propriedade do cap. 6.3 e exigir que a fronteira crítica do sistema — a parte cuja falha é cara — permaneça verificável por outro meio que não a confiança.

8.4 Cenário 3 — O ofício da garantia

O que acontece: o código continua sendo o artefato canônico, mas o centro do ofício se desloca definitivamente de produzir para garantir. Tipagem forte, contratos, testes de propriedade, verificação formal em partes críticas e observabilidade séria viram o padrão profissional. Escrever é barato e quase irrelevante; saber que está certo é o que se paga. Provavelmente o cenário mais confortável para a profissão como ela existe hoje — e o mais compatível com sistemas antigos, que são a maior parte do software do mundo.

Teria de ser verdade: adoção ampla de técnicas de garantia que já existem e são subutilizadas; e pressão institucional (cap. 7) o bastante para justificar o investimento.

Sinais precoces: crescimento de linguagens e ferramentas com garantias fortes em tempo de compilação; teste de propriedade saindo do nicho; vagas descrevendo verificação como a competência central.

O que fazer: é o cenário para o qual vale a pena se preparar mesmo que ele não venha, porque tudo o que ele exige é útil nos outros três.

8.5 Cenário 4 — A nova camada

O que acontece: a subida de abstração se completa. A especificação executável — precisa, versionada, testável — vira o artefato que humanos escrevem e mantêm, e o código gerado passa a ser tratado como saída de compilador: auditável, mas normalmente não lido. Uma nova disciplina se forma acima, com suas próprias práticas de revisão, teste e modularidade. É a repetição literal do que aconteceu com o assembly — e é o cenário mais transformador.

Teria de ser verdade: o problema da verificação resolvido a ponto de a saída ser confiável sem leitura; e a linguagem de especificação ficar precisa o bastante para não ser ambígua — o que, na prática, significa que ela se parecerá menos com português e mais com uma linguagem formal legível. O que reabre uma velha ironia da área: a linguagem de especificação perfeitamente precisa já tem um nome — é uma linguagem de programação.

Sinais precoces: equipes versionando a especificação e regenerando o código a partir dela; ferramentas que garantem a correspondência entre as duas; a conversa que produziu o código sendo tratada como o artefato guardado.

O que fazer: praticar escrever intenção com precisão — que é a competência transferível para este cenário e útil em todos os outros.

Como usar cenários

(1) Identifique as ações robustas — aqui elas são notavelmente convergentes: tipos, contratos, testes vindos da intenção, registro de decisão e propriedade explícita servem nos quatro; (2) defina sinais de alerta e revise a cada 6 meses; (3) mantenha uma opção barata contra o cenário que mais te prejudicaria. Ver Decisão sob Incerteza, cap. 6.

Exercício 8.1 — Onde a sua equipe está indo?

Sem escolher o que você quer: pelos sinais atuais, para qual cenário a sua equipe está caminhando? O que na prática de vocês está determinando isso?

Exercício 8.2 — Seus sinais de alerta

Escolha 2 por cenário, mensuráveis nos seus próprios dados (revisão, defeito, recuperação, cobertura vinda da intenção). Agende revisão semestral.

Capítulo 09 Método aplicado · Demo

Um sinal virando cenário — demo ao vivo

Role devagar. Um sinal concreto e desconfortável — a percepção de velocidade é maior que o ganho medido — percorre a cadeia até virar decisão de engenharia.

Elo 1 — sinal

Registre o fato incômodo

Quando se mede em vez de perguntar, o ganho de velocidade com geração de código aparece consistentemente menor do que quem programou estimou. Não é que não haja ganho — é que ele é menor do que a sensação. E como as decisões de investimento e de processo são tomadas com base na sensação, essa diferença é cara.

Elo 2 — por quê?

Procure a explicação, não a manchete

Escrever de fato ficou muito mais rápido. Entender o sistema, revisar, integrar e corrigir não ficaram. Além disso, o esforço mental caiu mais do que o tempo — e é o esforço que a memória registra como "foi rápido". A tendência real: o tempo migrou de etapa em vez de desaparecer. Da produção para a verificação.

Elo 3 — implicações

Separe o que escala do que não escala

Se o tempo migrou para a verificação, o volume sobe sem que a revisão acompanhe. Gerar teste a partir do código não resolve — dá cobertura alta e garantia zero, porque consagra o defeito. O que escala é o que não exige uma pessoa por unidade de código: tipos, contratos, invariantes, propriedades. A incerteza crítica: a garantia acompanha a geração?

Elo 4 — cenários

O eixo abre os quatro futuros

Se a garantia não acompanha, você está no cenário 1 (dívida acelerada) ou no 2 (caixa-preta, se a abstração subir mesmo assim — a combinação mais perigosa). Se acompanha, você está no 3 (o ofício da garantia) ou no 4 (a nova camada). E o melhor deste eixo: ele é medível nos seus próprios dados, sem depender de nenhuma previsão de ninguém.

Elo 5 — segunda-feira

Separe o robusto, o monitorado e a opção barata

Robusto nos quatro: medir o tempo de ciclo inteiro em vez da sensação; escrever teste a partir da intenção, nunca do código; investir em tipos e contratos, que são garantia sem gente por linha; e manter a regra de que quem aprova responde. Monitorar: a razão entre linhas integradas e horas de revisão, e o tempo de recuperação de falha. Opção barata: um registro de decisão de meia página nos módulos críticos — a teoria do cap. 6.1 fora da cabeça de alguém.

Exercício 9.1 — Sua cadeia completa

Pegue um sinal do seu Caderno. Percorra os cinco elos. Atenção especial ao elo 2: a explicação mais interessante quase nunca é a primeira, e quase sempre é "o custo migrou" em vez de "o custo sumiu".

Capítulo 10 Muito avançado

O que não muda

O capítulo mais durável. Estas constantes valeram em todas as subidas de abstração anteriores, e não há motivo para deixarem de valer nesta.

10.1 As constantes

ConstantePor que não muda
Complexidade essencial ≠ acidentalBrooks separou a dificuldade que vem da ferramenta (acidental, e que as ferramentas reduzem) da que vem do problema em si (essencial, e que nenhuma ferramenta reduz). Geração de código ataca a acidental. A essencial — o que o sistema deve fazer, em que casos, com que garantias — continua inteira.
O difícil é decidir o que construirA parte cara nunca foi digitar. Foi descobrir o que era necessário, com quem, sob que restrições — e isso é trabalho de conversa e de decisão.
Ler é mais difícil que escreverEscrever é registrar uma intenção que você tem; ler é reconstruir uma que você não tem. Vale para código de humano e para código de máquina.
Lei de ConwayA arquitetura do sistema espelha a estrutura de comunicação de quem o constrói. É sobre organização humana, não sobre ferramenta.
O software é uma teoriaPerder o entendimento de por que o sistema é assim o torna difícil de mudar, mesmo com o código inteiro à vista (Naur). Ver cap. 6.1.
Não existe bala de prataBrooks previu em 1986 que nenhuma inovação isolada traria ganho de uma ordem de grandeza em produtividade dentro de uma década. Foi verdade — e o padrão do argumento (o ganho vem da complexidade acidental, que é finita) continua de pé.
O custo total é dominado pela manutençãoA maior parte do dinheiro de um sistema é gasta depois da primeira entrega. Baratear a primeira entrega mexe na fração menor do custo.

10.2 O que a história diz sobre as previsões desta área

O padrão: cada onda entregou um ganho real na complexidade acidental, foi anunciada como o fim da profissão, e a profissão cresceu. Aplique o desconto correspondente às projeções desta apostila também — inclusive ao cenário 4, que é o mais entusiasmado dos quatro.

"Nenhum desenvolvimento isolado, em tecnologia ou em técnica de gestão, promete sequer um ganho de uma ordem de grandeza em produtividade, em confiabilidade, em simplicidade."
— Frederick Brooks, "No Silver Bullet" (1986), sobre a década seguinte. Vale reler o argumento antes de aceitar qualquer previsão nova — inclusive as deste documento.

10.3 As ações robustas

O que vale nos quatro cenários
  1. Garantia que não exige uma pessoa por linha — tipos, contratos, invariantes, propriedades. É o investimento com melhor retorno em qualquer futuro.
  2. Teste vindo da intenção, nunca da implementação. A regra mais barata e mais violada.
  3. Registrar a teoria — meia página por decisão de arquitetura, datada, com o que foi descartado e por quê.
  4. Propriedade explícita — quem aprova, responde. Independentemente de quem ou o que produziu.
  5. Medir o ciclo inteiro, não a sensação de rapidez: tempo até produção, taxa de falha em mudança, tempo de recuperação.
  6. Praticar escrever intenção com precisão. É a competência que serve para especificar, para revisar, para testar e para o cenário 4.

Repare que nenhuma delas depende de saber qual cenário virá — e que todas já eram boa engenharia antes. É esse o teste de uma ação robusta.

Exercício 10.1 — Essencial ou acidental?

Liste as cinco maiores dificuldades do seu projeto atual. Quantas são acidentais (ferramenta, ambiente, processo) e quantas são essenciais (o problema é difícil)? Só as primeiras respondem a ferramenta nova.

Exercício 10.2 — Descontando este documento

Aplique o padrão de 10.2 às projeções desta apostila. Onde eu posso estar superestimando a ruptura? Reescreva a projeção do cap. 5.3 de forma mais conservadora e guarde para conferir em 2032.

Capítulo 11 Estudo

Oito sinais analisados

Cada sinal pela cadeia do cap. 9, com o grau de confiança declarado e a ação que ele sugere hoje.

Percepção de velocidade maior que o ganho medido

Prática · Confiança média-alta

Sinal: quando se mede em vez de perguntar, o ganho aparece menor que o estimado por quem programou. Tendência: o tempo migrou de etapa (produzir → verificar), e o esforço caiu mais que o tempo. Implicação: decisões tomadas pela sensação superestimam o retorno. Incerteza: se a diferença diminui com maturidade de uso. Robusto: medir o ciclo inteiro.

Ação hoje — Antes de decidir qualquer coisa com base em ganho de produtividade, meça-o. Estimativa e relógio discordam de forma sistemática.

Volume de revisão crescendo sem capacidade proporcional

Prática · Confiança alta

Sinal: mais código submetido, mesma quantidade de gente para revisar. Tendência: sim, e é a consequência direta da força 1. Implicação: a revisão degrada para "parece razoável" — que é justamente o crivo que código gerado atravessa melhor. Incerteza crítica: se aparece garantia que não dependa de leitura. Robusto: mover garantia para tipos e contratos.

Ação hoje — Meça a razão entre linhas integradas e horas de revisão. É o indicador precoce mais direto do cenário 1.

Teste gerado a partir do código

Qualidade · Confiança alta no risco

Sinal: geração de teste barata e amplamente usada para elevar cobertura. Tendência: sim. Implicação: cobertura alta com garantia zero — o teste descreve o comportamento atual, defeito incluído, e ainda trava a correção. Incerteza: baixa; isso é um erro conhecido, não uma aposta. Robusto: teste sempre a partir da intenção.

Ação hoje — Se a cobertura subiu sem que ninguém escrevesse o que o sistema deve fazer, a cobertura não significa nada.

Valor relativo crescente de tipos e contratos

Técnica · Confiança média-alta

Sinal: tipagem estática e verificação em tempo de compilação ganhando adoção e valor percebido. Tendência: sim — é a garantia que não exige gente por linha. Implicação: linguagens e ferramentas com garantias fortes ficam relativamente mais atraentes conforme o volume cresce. Incerteza: média sobre o alcance. Robusto: investir aqui serve nos quatro cenários.

Ação hoje — Cada restrição que você move da cabeça de alguém para o sistema de tipos é garantia que escala sozinha.

Agentes executando tarefas de várias etapas

Tecnologia · Confiança alta no fato

Sinal: ferramentas que leem o repositório, alteram vários arquivos, rodam teste e propõem a mudança. Tendência: sim, com taxa de sucesso muito dependente da qualidade do repositório. Implicação: repositório organizado, com testes e tipos, passa a ter valor operacional direto — a higiene vira infraestrutura. Incerteza: se a confiabilidade chega ao ponto de dispensar revisão. Robusto: organizar o repositório é útil de qualquer forma.

Ação hoje — O melhor investimento para trabalhar com agentes é o mesmo que já era boa prática: testes, tipos, convenções e documentação explícita.

O código gerado guardado, a conversa descartada

Prática · Confiança média

Sinal: equipes versionam o resultado e não registram o pedido nem o critério. Tendência: observável e pouco discutida. Implicação: é o inverso da lógica de compilação — guarda-se a saída e joga-se fora a fonte. Sistemas nascem sem teoria (cap. 6.1). Incerteza: se a prática se corrige sozinha. Robusto: registrar intenção e critério.

Ação hoje — É o sinal mais fácil de observar de qual cenário sua equipe está construindo, e o mais barato de corrigir.

Rastreabilidade exigida por contrato

Institucional · Confiança média-alta

Sinal: inventário de componentes, procedência e evidência de teste entrando em contrato e compra pública. Tendência: sim, espalhando-se dos setores regulados. Implicação: a especificação deixa de ser opcional por razão contratual, não por virtude — o que pode viabilizar o cenário 3 ou 4. Incerteza: se vira melhoria real ou teatro de conformidade. Robusto: gerar a evidência pelo processo, não à parte.

Ação hoje — Evidência que o processo produz sozinho melhora o software; documento escrito para a auditoria só consome tempo.

Sistemas antigos continuam sendo o grosso do trabalho

Mercado · Confiança alta

Sinal: a maior parte do software em operação é antigo, grande e cheio de contexto implícito — e é onde a assistência ajuda menos. Tendência: estável; o estoque cresce sempre. Implicação: qualquer projeção de ruptura total ignora que o objeto de trabalho da profissão é majoritariamente legado. Incerteza: se ferramentas de compreensão de código maduram. Robusto: competência em entender sistema alheio é a mais durável que existe.

Ação hoje — Saber entrar num sistema grande que você não escreveu é a habilidade menos afetada por qualquer um dos quatro cenários.
Exercício 11.1 — Reavalie dois sinais

Escolha 2 e refaça a análise com o que você observa hoje — de preferência com dados da sua própria equipe, que valem mais que qualquer estudo geral.

Exercício 11.2 — Seu sinal no formato

Escreva um sinal do seu contexto no formato dos cases, com grau de confiança. Guarde no Caderno de Sinais.

Capítulo 12 Prática · Plano

Plano de 30 dias + a sua antena

O valor desta apostila não são as projeções. É o método e o hábito de acompanhar — mais as seis ações robustas, que você pode começar hoje sem saber nada sobre 2032.

12.1 Plano de treino — 30 dias, ~15 min/dia

SemanaFocoEntregável ao fim da semana
1 — Método e inventárioCaps. 1–2: desmontar 3 previsões (substituição ou deslocamento?); medir a divisão de tempo de uma entrega; iniciar o Caderno.Caderno iniciado + 1 medição de gargalo
2 — Gargalo e garantiaCaps. 3–4: calcular a razão linhas/horas de revisão; auditar a tabela 4.2; escrever 1 teste de propriedade.1 auditoria de garantia + 1 invariante rodando
3 — Abstração e teoriaCaps. 5–6: identificar o artefato canônico da equipe; escrever meia página de registro de decisão para 1 módulo crítico.1 registro de decisão + análise do artefato canônico
4 — Cenários e açãoCaps. 8, 10: escrever o que acontece com o seu sistema nos 4 cenários; implementar 2 das 6 ações robustas; definir 8 sinais de alerta.4 análises + 2 ações em curso + sinais agendados

12.2 Como montar a sua antena

Três hábitos
  1. Caderno de Sinais (5 min/semana), com preferência por dados de operação sobre anúncios de produto.
  2. Fontes primárias: os seus próprios indicadores de entrega e de falha; estudos com metodologia declarada (não os resumos); relatórios de incidente publicados; e os textos das exigências contratuais que chegam a você.
  3. Revisão semestral (1 hora): conferir sinais de alerta, recalcular a razão de revisão, e verificar de qual cenário a sua equipe se aproximou.

12.3 Como não cair no hype

12.4 Onde continuar

Sobre a validade desta apostila

Escrita em 2026, horizonte 2032. O cap. 2 é o que envelhece primeiro e mais rápido. As projeções dos caps. 3–8 têm prazo de validade declarado. O que não expira: as constantes do cap. 10.1, a heurística de desconto do cap. 1.3 e as seis ações robustas do cap. 10.3 — que já eram boa engenharia antes de qualquer disto. Se você lê isto muito depois, refaça o inventário e confira de qual cenário a disciplina se aproximou.

Exercício final — a sua prospectiva

Escreva uma página: qual cenário você acha mais provável e com que probabilidade; que sinais te fariam mudar de ideia; que duas ações você começa nesta semana que valem nos quatro. Guarde com data e reabra em seis meses. A parte que envelhece é a probabilidade; a parte que fica são as ações.