|
No texto anterior, falei que o código-fonte está deixando de ser a fonte da verdade. Isso naturalmente levanta a pergunta: então o que passa a ser? Minha visão: especificações. Costumamos dizer que código é a fonte da verdade porque, no fim do dia, é ele que roda. É ele que define exatamente o comportamento do sistema. Mas isso também foi, em grande parte, uma limitação das nossas ferramentas. Recentemente ouvi um podcast sobre Leonardo da Vinci. Muitas das ideias dele estavam corretas na teoria, como protótipos de helicópteros, máquinas de voo e trajes de mergulho, mas ele não tinha as ferramentas certas para executá-las. Faltavam motores, materiais e tecnologia. Com software, algo parecido aconteceu. Há muito tempo sabemos que o ideal seria descrever claramente o que um sistema deve fazer, e não como implementá-lo. Mas, na prática, não tínhamos como garantir que isso seria traduzido corretamente para código. Existe uma diferença importante aqui: O problema é que, historicamente, manter essas duas coisas alinhadas sempre foi difícil. A especificação ficava desatualizada e, no fim, o código acabava se tornando a referência final. Não porque era o ideal. Mas porque era o que funcionava melhor. Com IA, isso começa a mudar. Se você consegue gerar código a partir de uma especificação bem definida, e validar esse código com testes automatizados, o papel do código muda. Ele deixa de ser a definição e passa a ser uma implementação. O que antes era mais teórico começa a se tornar viável. E isso muda completamente o foco do time. Menos tempo discutindo detalhes de implementação. Mais tempo discutindo:
A qualidade do sistema passa a depender muito mais da qualidade da especificação do que da habilidade de escrever código linha a linha. Se você parar para pensar, isso é algo que já fazia sentido há bastante tempo. A diferença é que agora, talvez pela primeira vez, temos ferramentas que permitem fazer isso de forma mais consistente. No próximo texto, vou entrar em algo mais prático: como essas especificações começam a aparecer no dia a dia dos times e por que markdowns podem se tornar os arquivos mais importantes do seu time. |
About me: I have been working in startups since 2004. I spent 10 years at Apontador/MapLink and was part of Creditas (fintech last valued at $4.8bi) from its early days. Initially, as an Advisor, I hired the first software engineers for Creditas. As the business developed, I joined the project full-time as VP. I scaled the technology team to 150 people and later led international expansion and new product initiatives. I left in 2022 and, after a sabbatical, started working as an independent consultant in 2023.
En el texto anterior, comenté que el código fuente está dejando de ser la fuente de la verdad. Esto naturalmente plantea la pregunta: entonces, qué pasa a serlo? Mi visión: las especificaciones. Solemos decir que el código es la fuente de la verdad porque, al final del día, es lo que se ejecuta. Es lo que define exactamente el comportamiento del sistema. Pero esto también fue, en gran medida, una limitación de nuestras herramientas. Recientemente escuché un podcast sobre Leonardo da Vinci....
Si te incomodó la idea de que el código fuente está dejando de ser la fuente de verdad, probablemente este sea el motivo: tu referencia de “programar” está cambiando. A lo largo de la historia, el trabajo de desarrollo siempre ha evolucionado hacia niveles más altos de abstracción. Ya programamos con tarjetas perforadas.Luego, assembly.Después, lenguajes de bajo nivel.Luego, lenguajes de alto nivel. Hoy, la mayoría de las personas no se preocupa por la asignación de memoria ni por...
Se você ficou desconfortável com a ideia de que o código-fonte está deixando de ser a fonte da verdade, talvez esse seja o motivo: sua referência de “programar” está mudando. Ao longo da história, o trabalho de desenvolvimento sempre evoluiu para níveis mais altos de abstração. Já programamos com cartão perfurado.Depois, assembly.Depois, linguagens de baixo nível.Depois, linguagens de alto nível. Hoje, a maioria das pessoas não se preocupa com alocação de memória ou instruções de máquina. E...