Tese

A aceleração da produção de software é paga com os mecanismos que fabricam a competência

Info

Escrito originalmente em francês. Traduzido por IA — o sentido foi preservado, não a prosa.

Ângulo

Um bug delimitado, um endpoint simples, um script, um teste padrão, uma refatoração modesta: essas tarefas não apenas ocupavam as pessoas desenvolvedoras juniores de uma equipe, elas as fabricavam — e são exatamente as que um assistente de desenvolvimento produz melhor. A aceleração, portanto, não tira primeiro os postos, ela tira três mecanismos pelos quais uma equipe de software reproduzia a própria competência: o custo do código, que obrigava a entender antes de avançar; o tamanho pequeno do sistema, que mantinha o erro analisável e, portanto, formativo; o primeiro degrau, que expunha alguém iniciante à resistência do real sem colocar o produto em risco. Nenhum dos três era uma prática decidida — eram efeitos colaterais de uma lentidão que ninguém nunca teve motivo para defender — e é por isso que nada os substitui sozinho quando ela cai. O que os substitui é decidido e escrito: não fazer merge de código que ninguém saiba explicar, ligar os testes ao funcional, manter um catálogo de patterns autorizados, tratar uma saída ruim do assistente como uma diretriz faltando, e julgar o sistema pelo que você saberia reconstruir dele em vez do que ele exibe na tela.

Síntese

O primeiro aporte dessas notas tomadas em conjunto é separar o que a discussão corrente confunde: a degradação do código e a degradação da competência. A primeira é antiga, e o assistente só muda a vazão dela; a segunda é nova, e é ela que não tem remédio conhecido.

Os três mecanismos perdidos não são três exemplos do mesmo fato, eles formam uma cadeia. O custo do código produzia compreensão no momento de produzir; o tamanho modesto do sistema tornava o erro atribuível a uma decisão, portanto aproveitável depois; as tarefas de entrada forneciam as próprias ocasiões de errar. Tire o primeiro: o sistema cresce mais rápido que o ciclo de aprendizado, e o segundo cai junto. Tire o terceiro: não sobra nada para analisar. A aceleração atinge, assim, os três elos da cadeia ao mesmo tempo, e pelo mesmo gesto.

Soma-se a isso uma pressão que não é técnica. O tempo de aprendizado não mudou de duração, mas tudo ao redor dele acelerou: o preço relativo dele disparou, e cada decisão local passa a privilegiar o caminho rápido sem que nenhuma decisão tenha eliminado a formação. É isso que torna a perda invisível — ela não se constata em lugar nenhum, ela se acumula.

A última peça é prospectiva e desloca a questão para fora da equipe: as práticas de uma profissão não se deduzem da releitura das anteriores, elas nascem de um terreno que resiste. Idempotência, retries, circuit breakers, observabilidade vieram de falhas e migrações sofridas, não de um catálogo relido. Uma geração que não enfrenta mais diretamente a resistência herda os patterns existentes sem os meios de inventar outros.

Falta o que essas notas propõem em contrapartida, e isso tem coerência: cada contramedida reinstala explicitamente um dos mecanismos que caíram. A reconstrutibilidade torna verificável a compreensão que o custo do código garantia de passagem. A recusa de fazer merge de código não explicado põe um preço imediato sobre o que a dívida de compreensão cobraria depois. O catálogo de patterns restabelece a exigência de homogeneidade que a lentidão impunha pelo simples cansaço de reinventar tudo. A análise das saídas ruins transforma a falha em aprendizado em vez de numa correção descartável. E a dificuldade reintroduzida de propósito — dojos sem assistente, revisões em que você explica o código com as próprias palavras — assume o que as outras não cobrem: uma competência de que o uso diário não precisa mais se apaga se nada a solicitar.

Tensões / contradições

Essas notas não concordam sobre a fatalidade da perda. As que descrevem a cadeia rompida pressupõem que o aprendizado passava pela produção; as que nuançam lembram que um assistente usado como tutor — explicar, comparar, fazer verbalizar, simular uma revisão — ensina parte do que o primeiro degrau ensinava. Se essa substituição funcionar de verdade, a cadeia não está rompida, está deslocada. Nada aqui permite decidir, e a divergência recai sobre a parte do aprendizado que exige ter sido responsável pelo resultado.

Segundo desacordo, econômico: a aceleração também financia o que ameaça, já que o tempo ganho na produção poderia pagar o aprendizado. A tese diz que esse tempo se redistribui por padrão para mais produção; ela não diz que ele não pode ser alocado em outro lugar.

Terceiro ponto de atrito, este interno: o ciclo curto que essas notas defendem tem um defeito próprio. Ele ensina o gesto local e nunca expõe aos efeitos de sistema, que só aparecem em grande escala e tarde. Uma equipe que protegesse apenas os pequenos erros analisáveis formaria pessoas desenvolvedoras cegas ao que de fato quebra em produção.

Questões

  • Quais dessas contramedidas produzem de fato competência, e quais produzem apenas o rastro documental dela? Escrever uma decisão de arquitetura e saber tomá-la não são a mesma coisa.
  • Que exposição indireta à resistência do terreno — post-mortem de uma falha que você não viveu, rastro de operação, incidente público de outra empresa — basta para fazer emergir um pattern novo, e qual só transmite o pattern já encontrado?
  • Como uma equipe reconhece que cruzou o limiar em que ninguém mais sabe explicar o sistema que ela mantém, sem ser esperando a falha que vai ensinar isso?
  • Numa organização que contrata perfis já formados, em que nível — a empresa, o setor, a escola — o custo do primeiro degrau deve ser carregado, já que nenhum ator consegue contratar fora do conjunto ao qual pertence?