O Harness que todo programador deveria construir
Read the Portuguese translation →
Author: Cortes do Rafael Quintanilha · Watch on YouTube
Video authored by the channel shown, not by IANIA; all rights belong to the creator. Transcript and summary generated automatically; the original-language content is preserved.
Original language: Portuguese
Original video: O Harness que todo programador deveria construir · Channel: Cortes do Rafael Quintanilha · 08:38 · Watch on YouTube
Topics: AI agents, Task and workflow automation, Software engineering with AI
Summary
Section titled “Summary”O vídeo explica como a IA está mudando partes do trabalho de engenharia de software, como escolher tecnologias, implementar e validar soluções, sem eliminar a necessidade de entender os requisitos e as implicações do software. O apresentador defende que programadores construam um harness pessoal que organize agentes, ferramentas e etapas de validação de acordo com seu próprio fluxo de trabalho. Ele dá exemplos de automatização de tarefas relacionadas a pull requests e issues, com revisão humana dos planos e resultados. Também sugere adaptar o modelo e as instruções à tarefa, mantendo o programador responsável pela qualidade do trabalho.
Key points
Section titled “Key points”- O trabalho de engenharia de software envolve entender problemas, escolher ferramentas e arquitetura, implementar, validar e iterar.
- Modelos treinados em muitas code bases podem sugerir stacks e ajudar a trabalhar com linguagens diferentes.
- A IA pode reduzir a necessidade de domínio dos detalhes de sintaxe de uma linguagem, mas não substitui a compreensão do software, dos requisitos e de suas implicações.
- É possível usar IA para code review, testes end to end e testes com computer use.
- Um harness pessoal pode conectar agentes a pull requests, issues e code bases para analisar tarefas e sugerir planos.
- A validação humana continua importante: o programador deve revisar as sugestões e corrigir o contexto que o agente deixou passar.
- Erros recorrentes podem ser tratados criando uma skill para orientar o agente em situações futuras.
- O harness pode escolher modelos e instruções diferentes conforme a tarefa, como trabalho de frontend ou backend.
Chapters
Section titled “Chapters”| Start | Chapter | Summary |
|---|---|---|
| 00:00 | O trabalho tradicional de engenharia de software | O apresentador descreve as etapas de entender o problema, planejar a solução, implementar, validar e iterar. |
| 02:07 | Como a IA muda o processo de desenvolvimento | A IA pode ajudar a escolher tecnologias, trabalhar com várias linguagens e apoiar a validação, sem dispensar a compreensão do software. |
| 04:15 | Construir um harness para o próprio fluxo de trabalho | O programador pode escolher suas ferramentas e criar automações pessoais para analisar pull requests e tarefas. |
| 06:27 | Revisão humana e personalização do harness | O agente pode analisar issues e sugerir soluções, enquanto o programador revisa o plano, cria skills e adapta modelos e instruções à tarefa. |
Quotes
Section titled “Quotes”Engenharia é resolver problemas com algumas ferramentas específicas. — 00:31
Esse harness para programadores é algo que você deveria aprender para fazer seu trabalho melhor e mais rápido. — 04:15
Você valida humanamente: lê e vê o que o agente esqueceu. — 06:58
Você precisa ter a sua própria fortaleza, as suas próprias ferramentas. — 08:04
Concepts and entities
Section titled “Concepts and entities”Harness, IA, skill, Claude Code, Codex, Cursor, Linear, Jira, Notion, Asana, GitHub Issues, OpenCode, Opus, GPT-6 Astra, Figma
Full transcript (original language)
Section titled “Full transcript (original language)”00:00 Então vamos dar um zoom aqui para a gente falar aqui do harness para programadores, beleza? E aí eu, isso aqui eu posso falar com mais propriedade porque eu sou engenheiro de software de formação, tá? Se você não me conhece, eu trabalho com engenharia de software desde 2012. Eu sou formado em engenharia de software, estudei lá fora isso, trabalho com isso há muitos e muitos anos, tá? Então essa aqui é a minha formação original de engenharia de software, tá? E aí tipicamente quando você é um engenheiro de software, que que um engenheiro de software tradicional precisa fazer? Então vamos
00:31 botar aqui, ó, tradicionalmente, sei lá, ele precisava, né? Você quer construir um software, né? Eu sempre gosto de usar essa analogia, que é assim, que que é a engenharia no final das contas, né? Engenharia é você resolver problemas e você resolve problemas com algumas ferramentas específicas. É é a regra do jogo, é o que que o jogo te permite utilizar. Então um engenheiro de software vai usar software para resolver os problemas. Um engenheiro naval vai construir navios, embarcações para resolver o problema. Um engenheiro mecânico vai estudar a mecânica para resolver problemas naquele naquele
01:02 domínio e por aí vai, tá? Então o engenheiro de software ele precisa resolver problemas com software, tá? E aí o que que esse engenheiro de software precisa fazer? Bom, ele precisa levantar os requisitos, né? Você precisa saber, cara, qual é o problema que tá acontecendo aqui, né? O que que, o que que eu quero resolver, que, qual é a sua dor e como que eu posso pensar na solução para aquela sua dor em particular, tá? Ele precisa planejar o stack, né? Ou seja, agora que eu já entendi qual é o seu problema e eu já pensei na solução, qual o stack, quais ferramentas, quais, qual linguagem de
01:33 programação, qual banco de dados, qual vai ser a arquitetura que eu vou usar para isso? Vai ser um app mobile, vai ser um web, um web, um web app, vai ser um script? Como que eu consigo resolver esse seu problema, tá? O engenheiro de software vai fazer tudo isso. Ele vai fazer, claro, a implementação, ele vai ter que validar e ele vai iterar sobre isso, tá? Ele vai iterar. É claro que aqui eu tô confundindo aqui um pouco o trabalho do que seria um arquiteto com um programador, porque na prática você acaba tendo que fazer tudo, tá? Então, você vai aqui pensar em, né, criar MVPs, certo? Você vai é monitorar, você vai
02:07 falar de novo com o usuário e ver o que que ele achou, né? E você vai seguir fazendo isso aqui. Agora, pessoal, algumas questões aqui hoje mudaram com a IA. Por exemplo, a parte de você planejar o stack, que era algo que antes, né, demandava muito conhecimento para você entender onde que cada coisa quebra, né? Aonde que você pode usar uma tecnologia, onde aquela tecnologia não vai ser tão boa para você. Hoje não é que ela sumiu, ela continua lá, claro, né? Se você pegar e pedir para a IA te dizer qual stack você você vai usar e você não entender nada, você vai ficar meio vendido. Mas a verdade é é que os
02:41 modelos, com os treinamentos que eles vêm recebendo em diversos code bases, já meio que sabem ou já vão ter um bom plano para você de cara, tá? Então, não vai fugir muito ali, né? Você já consegue fazer coisas, né? Já sabe mais ou menos o que você vai você tem que trabalhar. E tem o detalhe também, tem o detalhe que antigamente, como você precisava dessa parte aqui de implementação que você ia fazer, cara, você precisava entender. Então, pô, eu vou eu vou programar aqui, mas o meu time só sabe Java e eu entendi que o melhor para eu programar aqui seria JavaScript, certo? Pô, mas meu time só
03:12 sabe Java, cara. E aí, como que eu faço? O pessoal ali do Java gosta de orientação a objeto, sei lá. Pô, o JavaScript o pessoal não faz isso, é uma bagunça, não tem tipagem. E aí você vai lá e dá o seu jeito para pegar aquele aquele seu profissional, tentar colocar ele para a melhor ferramenta, para a melhor tecnologia para aquele problema. Hoje em dia com a IA, isso meio que acabou, porque a IA ela é proficiente em toda a linguagem. Então, você consegue escolher de fato a melhor linguagem e você não precisa ter um especialista naquela linguagem. Repito, pessoal, saber é muito importante. Fazer ele um
03:45 código que você não entenda absolutamente nada, nada do que tá acontecendo, você abrir o código e falar: “Cara, não entendo nada”. Obviamente, isso não é certo, mas você consegue get away, né? Você consegue passar, ter um produto funcional com um nível de entendimento menor da linguagem. Eu não estou falando de você não entender o software, de você não entender as implicações, de você não entender os requisitos. Eu estou falando da linguagem. Como que eu faço um for loop em Rust? Como que eu faço um for loop em Go? Como que eu faço um for loop em Python? São detalhes da linguagem,
04:15 beleza? Você consegue hoje, sabendo menos, conseguir tirar o seu projeto do papel. Tá? Validar, validar é algo que hoje você consegue fazer com a IA também. Você consegue code review, você consegue, eh, fazer ali testes end to end, você consegue pegar um computer use da vida e testar o seu projeto. E, claro, iterar, colocar tudo isso aqui num loop, beleza? Então, esse harness para programadores é algo que você deveria aprender para que fizesse o seu trabalho de engenheiro de software melhor e mais rápido. Por quê, pessoal?
04:48 Porque você vai entrar numa empresa e, se a sua empresa for boa, AI friendly, ela talvez te deixe usar o modelo que você quiser. Quer usar Cloud Code? Pode usar. Quer usar Codex? Pode usar. Quer usar Cursor? Pode usar. Você escolhe onde você se sente mais confortável. Eu, na minha empresa americana, onde eu sou responsável por estabelecer as regras de como as pessoas vão trabalhar com IA, eu gosto de fazer isso. Cada um tem o seu budget, você recebe ali 500 dólares por mês que você pode gastar com IA. Escolha o que te deixa mais confortável. Eu não quero saber o que você escolheu. Eu quero que o seu resultado seja bom. Essa
05:20 é a filosofia que eu gosto de aplicar nas minhas empresas. Pode ser que a sua empresa seja diferente, tudo bem. Mas aqui a gente tá trabalhando pro qual que seria a melhor forma de você usar IA no seu dia a dia. Então, dito isso, você vai receber ali um budget ou talvez a empresa já te dê, cara, você tem a assinatura aqui do Cloud Code, que seja, tá? E você precisa, dentro daquele harness que você recebeu para você usar ou que você escolheu para você usar, construir o melhor sistema de trabalho para você. Você vai construir o que te deixa mais confortável, tá? Então, talvez aqui você faça um loop
05:52 engineering para te ajudar a ver sempre que tem um comentário no seu pull request e automaticamente você pedir para um seu agente implementar e aí validar e, sei lá, comitar. Então, você cria lá um loop que permite que você acompanhe isso ou um loop engineering que quando você receber ali vai pingar uma mensagem ali no seu linear, no seu gerenciador de projeto, né? O pessoal hoje usa linear, eu gosto bastante, mas também tem o Jira, também tem Notion, né? Também tem Asana, enfim, onde quer que você use para gerenciar o seu issue
06:27 tracker, né? GitHub issues e por aí vai, você vai receber essa notificação aqui, você já vai cruzar os dados com, por exemplo, a code base, então caiu um ticket para você aqui, ó, vou fazer o ticket ENG 1234, aí o meu agente já pega esse ticket, ele já cruza ali na code base, ele já analisa mais ou menos onde eu tenho que mexer, análise preliminar, e aí ele te sugere: “Cara, vamos fazer isso aqui, a solução é fazer isso aqui, ó, solução”. E aí você valida de novo,
06:58 valida humanamente, tá? Você lê, você vê: “Opa, pera aí, o meu agente falou isso aqui, mas calma aí, agente, você esqueceu dessa outra parte, calma aí, agente, você esqueceu que aqui nesse projeto a gente faz assim e não assado”. E aí você entendeu: “Puts, ele tá errando isso aqui toda hora, cara, quer saber? Antes de eu de partir para a implementação, eu vou fazer um detourzinho aqui e vou criar uma skill, criar uma skill, porque a próxima vez que isso acontecer, essa skill já é chamada aqui na solução, beleza?” E aí você ficou feliz com a validação, com o plano e aí você pede para o seu agente implementar. Note, isso aqui é da sua empresa? Não, isso aqui foi você que
07:32 construiu para você, você se tornou um engenheiro de software mais capaz fazendo isso aqui, você se tornou um profissional melhor, mais eficiente fazendo isso aqui. Ninguém te pediu para fazer isso. Talvez possa te pedir o seu gerente, seu chefe, seu manager pode perguntar como que você tá usando IA. E você fala: “Cara, eu criei isso aqui para mim e tal, mas olha só, presta atenção, tá? Eh, eu tô participando da análise preliminar. Eu tô vendo, quando ele implementa, ele cai aqui nesse nesse meu loop de validar e tudo mais. Eu tô olhando, né, o PR. Então, eu nunca fico muito tempo sem sem responder os meus
08:04 colegas”. E você construiu isso aqui para você. Então, você precisa ter a sua própria fortaleza, vamos botar assim, as suas próprias ferramentas. Você construiu o que funciona bem para você. E, claro, aqui você consegue fazer no seu Harness decidir se talvez você use o Open Code e aí você tem aqui um processo decisório. Na solução, se for front-end, aí você fala para ele usar o Opus. Se for back-end, você fala para ele usar o GPT-6 Astra. E aí você, cara, você porque você sabe que eles vão bem assim. E aí quando vai começar um trabalho de
08:38 front-end, aí você dá uma instrução. Pera aí, pera aí. Vai trabalhar com isso aqui? Eh, eu quero que você eh se conecte ali no Figma. Se conecta no Figma e sempre valida frente ao Figma, porque é o Figma que o meu designer trabalha. Então, pessoal, você vai ser capaz de trabalhar de uma forma muito mais eficiente se você criar isso aqui para você. Seja dentro de um time de programação, seja você para você mesmo, beleza?