How to prepare your team for the agentic world?

In November 2022, ChatGPT arrived. AI wasn’t new to many people in the machine learning world, who had been working deeply with it for years. But for most of us regular developers, it was our first real experience using AI. A true breakthrough. The industry has changed since.
For engineers and developers, it started with baby steps but picked up quickly. AI autocomplete in VS Code meant you were writing less. Cursor came along, patching whole changes. You would still approve them one by one, but most of the work was being done by AI. Then Claude Code came, and now you’re not even approving every step. YOLO for all. Harnesses started appearing everywhere, new models kept coming, and we kept changing and learning. We learned about Context Engineering, Loop Engineering, and much more. All in less than four years.
Not all companies are ready for this or have put in the effort. Many are still learning the basics, moving in controlled steps, and not using all the power we have. It’s not easy to understand all of it. After almost two years of working with AI daily, including the last twelve months pushing my knowledge at the frontier at Shopify, I’m happy to share my thoughts on how any team can do this too.
It will, of course, not be free. You need to balance the costs of subscriptions and infrastructure investments. But it’s not very expensive either. It’s feasible for any company with 5+ people.
So let’s start, in the order I think your company should approach this.
Compute and Infrastructure
The first investment, beyond what you currently use to run your servers, is more compute and infrastructure. I don’t think you need to spend this on expensive services like AWS or GCP. You can use Hetzner, with its great prices. But if switching would disrupt your DevOps, you’re fine keeping what you already have. Invest in it so you can have:
- CI that supports many, many more PRs.
- Harnesses with agents running, reviewing your code quality, grading your system, finding bugs, and more. Pi Durable is great for this.
Services like CodeRabbit, Claude Code’s Code Review, and others can support this. But with some investment in your own setup, you can have all of it at a much lower cost. Decide what’s better for you, but allow your team to push more changes and have agents gating them.
If you have a monorepo, that’s the best setup for this. One agent can live in one place and work through your codebase faster.
TL;DR: Get firepower first.
Experimentation
Imagine your swarm of agents and five engineers going from two pull requests a day to twenty each. That’s one hundred pull requests to review, and now you have a worse bottleneck to deal with. The Claude team shared a great post about this and code reviews. One of the most important things is the ability to merge more safely.
An experimentation system, such as Flipper for Rails, LaunchDarkly, or Unleash, lets you build gated features. You can release them gradually and even have agents deactivate them if those controls are exposed through your internal tools. This is very powerful.
During automated code review, agents will use this protection to grade your PR. If the change is fully protected, you will likely get an A. With that high score, the engineer who requested the change will be allowed to merge. With this, handling one hundred PRs is not an impossible task. High-risk PRs will still be reviewed by humans, but much of the work will be unblocked.
Documentation
It’s very easy to build changes. It’s harder to think them through. Agents can use tools like pi-agentic-search, with sparsity scans, to map their way through the codebase, and they should. But decisions and business meaning get lost. Adding comments to the code is not the real solution. If it’s written in Rust or another low-level language, let the code be code.
The best solution is for each project to have a docs/ or specs/ folder, organized by features, systems, and more. Agents can then work in a stack:
- The first PR introduces the specification of the change. Humans are extremely valuable here.
- The following PRs implement the change, backed by that specification.
So yes, also use stacked PRs. Smaller PRs during high-risk changes allow you to move even faster. Read my post Code Reviews Matter a Freaking Lot to learn more.
Instrumentation
Debugging is a thing of the past (about damn time). Bugs that used to take days, or even weeks, to find can now be found by agents in under an hour. This is possibly the best superpower AI has unlocked for developers across all areas. Game programmers are very happy right now.
But this doesn’t come for free. You don’t just say “fix it” and expect it to be done. As we’ve learned from Context Engineering, you need to feed the agent data and knowledge (tokens), and it will produce results (more tokens). So have your instrumentation in place.
What is instrumentation? It’s metrics and signals about how your system behaves, giving you better alerts and the maturity your company needs. Also, logs! Add logs, but please don’t use logs to track metrics. This is terribly expensive and amateur work.
If you’re not using a framework to build your software, you should. You’ll get a lot of this, and agents can build on top of it too.
Make these signals accessible to your agents through MCP servers or other integrations. Connect your ticketing system, GitHub, and more, and you’ll have the tools you need to work as well as possible. Finding a critical bug becomes a matter of asking.
Use tools like Grafana and Prometheus here. Free and great.
Well Structured Harness
Pi, Claude Code, Codex, BB, Amp, and more. All the work above won’t come together magically, and these tools can’t perform miracles. You need to invest time in getting everything right.
Define what your system does. Keep skills in shared spaces across your company and in your codebase. How do you merge PRs? How do you design instrumentation? What are your design principles and evaluations? Everything should be easy for all engineers to share. Of course, each engineer can customize their setup and AGENTS.md, but the shared foundation should be provided right away.
This can be as simple as having a dedicated repository for your harness. It will also save you money: agents won’t need to go looking for the same information every time. Make sure they can access your code, research the web, and work within clearly defined security boundaries.
Educate your team too, and stay up to date. Know which models work better than others. Use extensions like my pi-extended-teams to divide and conquer, so you can expand what a task can do.
Agents in your communication channels
One of the most disruptive things created at Shopify was River, our agent that knows our company and runs in Slack. It’s built on our custom harness and also uses Quick to prototype quickly and share work internally.
Honestly, every company needs something like this. Anthropic offers Claude Tag, and you can also build something to fit your needs. Here, I think an existing solution can get you what you need quickly.
Imagine this: a critical alert fires. Your system is under extreme stress, and your customers are being affected. It’s 1 a.m., PagerDuty woke you up, and you’re far from your computer. It will take you thirty minutes to get to the office.
You open Slack on your phone and tag your agent to investigate the alert. Then you go. By the time you’re back, the problem has already been debugged and might even be under control, if the feature was protected by your experimentation system. The agent has even created an internal dashboard, with everything that happened beautifully laid out for you to read and understand.
This happens every day at companies like Shopify (the workflow, not critical incidents), and we solve problems in a matter of minutes. Our merchants aren’t impacted, and your customers shouldn’t be either.
Do the Whiteboard Defense
Mitchell Hashimoto shared this great post about the “whiteboard defense”:

I couldn’t agree more, and your team should be on top of this. I talked about a similar responsibility in The Human in the Loop.
Your engineers shouldn’t just magically spawn code. They need to understand the specs and what the change does: what problem the bug fix addresses, the design behind it, and the decisions that went into it. Engineering is not a dead trade. It matters more than ever, because code is now cheap. Know what you’re doing, make sure your engineers do too, and be very intentional.
Be proactive, not reactive
Don’t accumulate technical debt. Use fast-follows, but have agents ready to go and get that work done. I’m building hobkin.dev to help with this. Track what needs doing, but don’t leave it behind.
If you see a bug, put an agent on it. Put your Slack agent on it. If you need a dashboard, build one and get the alerts in. Don’t leave things behind. Don’t leave them for tomorrow. An agent can build you a brief the next day with everything that happened. Learn.
Understand what you (engineer) is doing
Every week, review what you’ve done. Understand how your impact is growing and how your career is progressing. How did you handle incidents? How many things did you create? What’s working, and what isn’t? Are you learning, getting better, and preparing yourself for the future?
Keep learning. AI is here to stay. Learn the models, read the papers, and follow what’s happening in the world. You don’t need to sacrifice your whole life to this, but be intentional and open to change. Everything is changing, and you will too. Learn while you’re doing it.
Of course, this isn’t everything. But getting these things in place will help your engineering team work much better in the agentic world. Managing people, managing time, taking time off, getting systems in place, and understanding all your customers’ needs still take time. But you can adapt fast.
Happy 10x coding! :)

Em novembro de 2022, o ChatGPT chegou. IA não era novidade para muita gente do mundo de machine learning, que já trabalhava a fundo com ela havia anos. Mas, para a maioria de nós, desenvolvedores comuns, foi nossa primeira experiência real usando IA. Um verdadeiro avanço. A indústria mudou desde então.
Para engenheiros e desenvolvedores, tudo começou com pequenos passos, mas ganhou ritmo rápido. O autocomplete com IA no VS Code significava que você escrevia menos. O Cursor apareceu, aplicando mudanças inteiras. Você ainda aprovava uma por uma, mas a maior parte do trabalho já era feita pela IA. Então veio o Claude Code, e agora você nem aprova mais cada passo. YOLO para todos. Harnesses começaram a aparecer por toda parte, novos modelos continuaram chegando, e nós continuamos mudando e aprendendo. Aprendemos sobre Context Engineering, Loop Engineering e muito mais. Tudo em menos de quatro anos.
Nem todas as empresas estão prontas para isso ou fizeram esse esforço. Muitas ainda estão aprendendo o básico, avançando em passos controlados e sem usar todo o poder que temos. Não é fácil entender tudo isso. Depois de quase dois anos trabalhando com IA diariamente, incluindo os últimos doze meses levando meu conhecimento à fronteira na Shopify, fico feliz em compartilhar minhas ideias sobre como qualquer time também pode fazer isso.
É claro que não vai sair de graça. Você precisa equilibrar os custos de assinaturas e os investimentos em infraestrutura. Mas também não é tão caro. É viável para qualquer empresa com 5+ pessoas.
Então vamos começar, na ordem em que acho que sua empresa deveria encarar isso.
Poder computacional e infraestrutura
O primeiro investimento, além do que você já usa para rodar seus servidores, é em mais poder computacional e infraestrutura. Não acho que você precise gastar com serviços caros como AWS ou GCP. Você pode usar a Hetzner, com seus ótimos preços. Mas, se a mudança atrapalhar seu DevOps, não tem problema continuar com o que você já tem. Invista nisso para ter:
- CI que suporte muito, muito mais PRs.
- Harnesses com agentes rodando, revisando a qualidade do seu código, dando notas ao seu sistema, encontrando bugs e muito mais. Pi Durable é ótimo para isso.
Serviços como CodeRabbit, Code Review do Claude Code e outros podem ajudar nisso. Mas, investindo um pouco na sua própria configuração, você pode ter tudo isso por um custo muito menor. Decida o que é melhor para você, mas permita que seu time entregue mais mudanças e tenha agentes controlando a aprovação delas.
Se você tem um monorepo, essa é a melhor configuração para isso. Um agente pode ficar em um só lugar e percorrer sua base de código mais rápido.
TL;DR: Consiga poder de fogo primeiro.
Experimentação
Imagine seu enxame de agentes e cinco engenheiros passando de dois pull requests por dia para vinte cada um. São cem pull requests para revisar, e agora você tem um gargalo pior para resolver. O time do Claude compartilhou um ótimo post sobre isso e code reviews. Uma das coisas mais importantes é conseguir fazer merge com mais segurança.
Um sistema de experimentação, como Flipper para Rails, LaunchDarkly ou Unleash, permite criar funcionalidades com liberação controlada. Você pode liberá-las gradualmente e até fazer os agentes desativá-las, se esses controles estiverem expostos nas suas ferramentas internas. Isso é muito poderoso.
Durante o code review automatizado, os agentes vão usar essa proteção para dar uma nota ao seu PR. Se a mudança estiver totalmente protegida, você provavelmente vai receber um A. Com essa nota alta, o engenheiro que pediu a mudança terá permissão para fazer o merge. Assim, lidar com cem PRs não é uma tarefa impossível. PRs de alto risco ainda serão revisados por humanos, mas boa parte do trabalho será destravada.
Documentação
É muito fácil implementar mudanças. Mais difícil é pensá-las a fundo. Os agentes podem usar ferramentas como pi-agentic-search, com sparsity scans, para se orientar pela base de código, e deveriam fazer isso. Mas as decisões e o significado para o negócio se perdem. Adicionar comentários ao código não é a solução de verdade. Se estiver escrito em Rust ou outra linguagem de baixo nível, deixe o código ser código.
A melhor solução é cada projeto ter uma pasta docs/ ou specs/, organizada por funcionalidades, sistemas e mais. Os agentes podem então trabalhar em uma pilha de PRs:
- O primeiro PR apresenta a especificação da mudança. Os humanos são extremamente valiosos aqui.
- Os PRs seguintes implementam a mudança, respaldados por essa especificação.
Então, sim, use também stacked PRs. PRs menores durante mudanças de alto risco permitem que você avance ainda mais rápido. Leia meu post Code Reviews Importam Pra Caramba para saber mais.
Instrumentação
Debugging é coisa do passado (já estava mais do que na hora). Bugs que levavam dias, ou até semanas, para serem encontrados agora podem ser encontrados por agentes em menos de uma hora. Esse talvez seja o melhor superpoder que a IA trouxe para desenvolvedores de todas as áreas. Os programadores de jogos estão muito felizes agora.
Mas isso não vem de graça. Você não diz só “conserta isso” e espera que esteja pronto. Como aprendemos com Context Engineering, você precisa alimentar o agente com dados e conhecimento (tokens), e ele vai produzir resultados (mais tokens). Então tenha sua instrumentação pronta.
O que é instrumentação? São métricas e sinais sobre como seu sistema se comporta, que dão a você alertas melhores e a maturidade de que sua empresa precisa. E logs também! Adicione logs, mas, por favor, não use logs para acompanhar métricas. Isso é terrivelmente caro e trabalho de amador.
Se você não está usando um framework para construir seu software, deveria. Você já vai ter boa parte disso, e os agentes também podem construir em cima dessa base.
Disponibilize esses sinais para seus agentes por meio de servidores MCP ou outras integrações. Conecte seu sistema de tickets, o GitHub e mais, e você terá as ferramentas de que precisa para trabalhar da melhor forma possível. Encontrar um bug crítico vira uma questão de pedir.
Use ferramentas como Grafana e Prometheus aqui. Gratuitas e ótimas.
Harness bem estruturado
Pi, Claude Code, Codex, BB, Amp e mais. Todo o trabalho acima não vai se encaixar magicamente, e essas ferramentas não fazem milagres. Você precisa investir tempo para acertar tudo.
Defina o que seu sistema faz. Mantenha skills em espaços compartilhados na sua empresa e na sua base de código. Como vocês fazem merge de PRs? Como projetam a instrumentação? Quais são seus princípios de design e suas avaliações? Tudo deve ser fácil de compartilhar entre todos os engenheiros. É claro que cada engenheiro pode personalizar sua configuração e seu AGENTS.md, mas a base compartilhada deve estar disponível desde o início.
Isso pode ser tão simples quanto ter um repositório dedicado ao seu harness. Também vai economizar dinheiro: os agentes não vão precisar procurar as mesmas informações toda vez. Garanta que eles consigam acessar seu código, pesquisar na web e trabalhar dentro de limites de segurança bem definidos.
Ensine seu time também e mantenha-se atualizado. Saiba quais modelos funcionam melhor que outros. Use extensões como a minha pi-extended-teams para dividir e conquistar, ampliando o que uma tarefa consegue fazer.
Agentes nos seus canais de comunicação
Uma das coisas mais disruptivas criadas na Shopify foi o River, nosso agente que conhece nossa empresa e roda no Slack. Ele foi construído sobre nosso harness próprio e também usa o Quick para criar protótipos rapidamente e compartilhar o trabalho internamente.
Sinceramente, toda empresa precisa de algo assim. A Anthropic oferece o Claude Tag, e você também pode construir algo que atenda às suas necessidades. Aqui, acho que uma solução existente pode entregar o que você precisa rapidamente.
Imagine o seguinte: um alerta crítico dispara. Seu sistema está sob estresse extremo, e seus clientes estão sendo afetados. É 1 da manhã, o PagerDuty te acordou, e você está longe do computador. Vai levar trinta minutos para chegar ao escritório.
Você abre o Slack no celular e marca seu agente para investigar o alerta. Então vai para lá. Quando você chega, o problema já foi depurado e talvez até esteja sob controle, se a funcionalidade estava protegida pelo seu sistema de experimentação. O agente até criou um dashboard interno, com tudo o que aconteceu muito bem organizado para você ler e entender.
Isso acontece todos os dias em empresas como a Shopify (o fluxo de trabalho, não os incidentes críticos), e resolvemos problemas em questão de minutos. Nossos lojistas não são impactados, e seus clientes também não deveriam ser.
Faça a defesa no quadro branco
Mitchell Hashimoto compartilhou este ótimo post sobre a “defesa no quadro branco”:

Não poderia concordar mais, e seu time deveria estar em cima disso. Falei sobre uma responsabilidade parecida em O Humano no Loop.
Seus engenheiros não deveriam simplesmente fazer código aparecer por mágica. Eles precisam entender as especificações e o que a mudança faz: qual problema a correção do bug resolve, o design por trás dela e as decisões que levaram até ali. Engenharia não é uma profissão morta. Ela importa mais do que nunca, porque agora código é barato. Saiba o que você está fazendo, garanta que seus engenheiros também saibam e seja muito intencional.
Seja proativo, não reativo
Não acumule dívida técnica. Use fast-follows, mas tenha agentes prontos para ir lá e fazer esse trabalho. Estou construindo o hobkin.dev para ajudar com isso. Acompanhe o que precisa ser feito, mas não deixe para trás.
Se você vir um bug, coloque um agente para trabalhar nele. Coloque seu agente do Slack nisso. Se precisar de um dashboard, construa um e configure os alertas. Não deixe as coisas para trás. Não deixe para amanhã. Um agente pode preparar para você, no dia seguinte, um resumo de tudo o que aconteceu. Aprenda.
Entenda o que você (engenheiro) está fazendo
Toda semana, reveja o que você fez. Entenda como seu impacto está crescendo e como sua carreira está progredindo. Como você lidou com os incidentes? Quantas coisas criou? O que está funcionando e o que não está? Você está aprendendo, melhorando e se preparando para o futuro?
Continue aprendendo. A IA veio para ficar. Conheça os modelos, leia os papers e acompanhe o que está acontecendo no mundo. Você não precisa sacrificar sua vida inteira por isso, mas seja intencional e esteja aberto a mudanças. Tudo está mudando, e você também vai mudar. Aprenda enquanto faz.
É claro que isso não é tudo. Mas colocar essas coisas em prática vai ajudar seu time de engenharia a trabalhar muito melhor no mundo agêntico. Gerenciar pessoas, gerenciar o tempo, tirar folgas, colocar sistemas em funcionamento e entender todas as necessidades dos seus clientes ainda leva tempo. Mas você pode se adaptar rápido.
Boa programação 10x! :)