● post

Arquitetura É um Passo, Não uma Cadeira

Recebi uma feature para desenhar e coloquei ela em staging na mesma noite. O documento de design nunca existiu como documento, e esse artefato que faltou é a história inteira sobre o meu cargo.

Uma cadeira de madeira vazia afastada de uma prancheta de desenho em uma sala escura, uma folha grande sobre a mesa com o desenho em âmbar brilhante de um prédio alto e ornamentado, o resto da sala em sombra azul-esverdeada.

Uma terça-feira do mês passado. Recebi uma feature para desenhar, do tipo que antes abria com uma semana de alinhamento e fechava com um documento. Na mesma noite estava em staging. Schema, migration, endpoint, tela, testes. Construí tudo sozinho.

O documento de design nunca existiu como documento. Tomei cada decisão que estaria nele. Ninguém precisou ler nenhuma delas, porque quem precisava era eu, onze minutos depois.

A velocidade não é a parte interessante. O artefato que faltou é.

O título pagava por um repasse

Arquiteto de software virou cargo porque construir era caro.

Quando uma feature levava um trimestre e seis pessoas, alguém tinha que decidir o formato dela antes de todas aquelas mãos se moverem ao mesmo tempo sem colidir. A decisão precisava sair de uma cabeça e chegar inteira em várias outras. Então a decisão virava um documento. Um diagrama. Um portão de revisão. Uma sala onde todo mundo concordava com uma fronteira desenhada no quadro branco, e depois sumia por três sprints.

Toda essa máquina existia para carregar uma decisão através de uma distância, e a distância era o custo de implementar.

Passei anos ficando bom em carregar. Escrever o tipo de documento que sobrevive ao contato com seis engenheiros e dois prazos. Desenhar a fronteira apertada o bastante para servir e larga o bastante para construir dentro. Sentar na reunião onde a fronteira é contestada. Habilidade real, e valiosa, porque a distância era grande.

A distância fechou. Decido uma fronteira às dez da manhã e a coisa existe às quatro da tarde, construída por mim e um punhado de agentes rodando em paralelo. Uma pessoa alcança escala de plataforma agora. Escrever código deixou de ser a parte lenta do trabalho, e a parte lenta era aquilo em torno do que o meu título estava organizado.

A decisão mudou de lugar. Ela não sumiu

Eu ainda decido onde a fronteira fica. O que é dono da escrita. Como é o contrato. O que acontece quando a chamada para o terceiro estoura o tempo no pior momento possível, em um domínio regulado onde código errado tem consequência.

Cada uma dessas decisões aconteceu naquela terça. Aconteceram minutos antes do código em vez de semanas antes, feitas por quem estava escrevendo o código em vez de atravessarem um repasse, e nenhuma delas virou artefato para outra pessoa.

Isso é um passo. Como escrever um teste, escolher um nome, ler um stack trace. Todo mundo que constrói dá esse passo agora, várias vezes por dia, quase sempre sem chamar de nada.

Um passo não precisa de cadeira, e não precisa de título.

O passo continua caro

A parte difícil do trabalho nunca foi o diagrama.

Era escolher a fronteira de que eu ainda vou gostar daqui a dois anos, depois do produto mudar duas vezes e chegar uma regra de compliance que eu ainda nem li. O agente não tem opinião sobre isso. Ele constrói o contrato errado tão rápido quanto o certo, com formatação melhor e uma mensagem de commit mais limpa. Peça um serviço e você recebe um serviço, incluindo a versão em que mudar uma regra de negócio exige três deploys e uma migration.

Gosto sob restrição não ficou mais barato. Nada absorveu isso.

Então o trabalho está seguro e a cadeira não está, e essas são duas frases separadas. Continuo vendo gente defender a primeira quando alguém ataca a segunda.

Modelos lançam versões. Carreiras lançam hábitos

Olhe a escada do que as ferramentas foram levando.

O autocomplete terminava minha linha. Depois uma função. Depois um arquivo inteiro com testes. Agora uma feature, ponta a ponta, em uma tarde.

Cada lançamento removeu em silêncio uma fatia da descrição de cargo de alguém, e ninguém foi chamado para votar. O modelo não fez nada para merecer a melhoria. Ele chega pronto, do jeito que chega pronto a cada poucos meses, com changelog e preço por milhão de tokens.

Nenhuma versão é lançada para mim. Não existe release de outubro do Elber com julgamento melhorado e uma visão mais larga do negócio. Tudo em que estou melhor neste ano, eu escolhi, de propósito, em horas que poderia ter gasto com algo mais fácil.

Essa assimetria é a parte que passa batido. A ferramenta melhora enquanto você assiste. Você melhora só quando se move. Ler as notas de lançamento de um modelo dá sensação de estar acompanhando, e é consumo.

O que eu mudei de verdade

Quatro hábitos, na ordem do que me custaram.

Parei de escrever documentos para humanos implementarem e comecei a escrever specs que máquinas executam. Mesmo rigor, outro leitor, e esse leitor nunca passa o olho por cima.

Parei de revisar diffs linha por linha. A saída é uniforme agora e ler ela me diz menos do que dizia três anos atrás. Reviso o sistema que produziu ela no lugar. As regras, o pipeline, os portões, os testes em que confio.

Parei de me avaliar por o design estar certo. A coisa está no ar em um dia, então a correção é observável. Ela aguenta em produção, sob carga real, com dados reais, às duas da manhã.

Comecei a vigiar o que não vai ser construído com mais rigor do que já vigiei qualquer fronteira. Quando construir é barato, recusar é a decisão escassa.

Nada disso me faz arquiteto. Em alguns dias isso me faz um desenvolvedor com opiniões fortes demais e quatro terminais abertos.

Um título descreve o que era caro na época em que alguém escreveu ele. O meu foi escrito quando mover uma decisão entre pessoas era a coisa mais lenta do prédio. O preço mudou. Prefiro perceber isso sozinho a ouvir a explicação em um reorg.

cd ../ — all posts