The Amp Way

We Don't Wait for Our Agents

We don't wait for our agents. Instead, they wait on us. We use Orbs heavily: we start threads, they do their thing, if they're done they don't block any other work. They don't take up resources, or cost anything. We get back to them once we're done.

We Don't Have Mandatory PR Reviews

We don't have mandatory PR reviews. Our core product team pushes to main. Why? In the age of agents and very smart models, we can all run many rounds of reviews. It's no longer necessary to open PRs and get reviews to catch bugs or little mistakes. Agents can do that, no need for humans; and even if some agents are dumber than some humans still: they don't get as tired, they don't get impatient, we can run them in a loop. We share threads and orbs and portals for others to review. We ask for feedback and link others. We have the agent send messages to other humans and ask them for input.

We Don't Use Our Local Dev Environment Anymore

We don't use our local dev environment anymore. We now have orbs and we found that agents can do so much now: from developing a feature, to pushing to main, to watching its rollout, to giving users a feature flag, to checking production logs, to starting new orbs to fix bugs that pop up. We build one-off tools in orbs (see ampcode.com/docs/using-amp) to iterate faster if we do need to be hands on. But we found ourselves simply not using our local dev env anymore. And with orbs, we all share the same standardized env. If someone on the team makes it better, it's better for everyone.

We Push to Main

We push to main. We release many, many times a day. With agents, a lot of the old calculations of how you should develop software have changed. Time to fix bugs has gone down dramatically, time to diagnose issues too, the amount of stuff you can ship has gone up. We're all dogfooding the product.

Feedback Loops for the Agents Above Everything Else

Feedback loops for the agents above everything else. If the agent can't check its own work and test that something it built works, end to end, it's flying blind. If you don't give it the tools so it can exercise features completely in its dev env and check on them in production, you're tying one agentic arm behind its agentic back.

Agents Are Allowed to Do Ops

Agents are allowed to do ops. We use OIDC and read-only permissions to allow agents access to production logs and metrics. We let agents help us administer clusters and investigate failing containers. It writes Terraform files for us. Agents in ops are a game-changer.

We're Constantly Killing Features

We’re constantly killing features. When it’s so cheap and fast to add new things, it’s easy to fall into the trap of adding every little thing that pops into your head. Complexity compounds though and we need to be mindful of it. Kill what you aren’t using, kill what "might be nice some day", kill what makes developing other things in the future harder.

“We Thought It Would Be Fun”

"We thought it would be fun" is the opposite force. With agents we can now build delightful little experiences — animated orbs that explode when you click them often enough, animated buttons that shoot laser beams, an in-app podcast player, a trumpeter that announces new features and plays a sound on click — that would’ve previously cost a person days and just weren’t worth it. Now they are. Time to build delightful things.