DLN.

AI First Development

All the following content was written by me and not an LLM.
I use LLMs to help me correct grammar and typos only.

Read my content policy

I have the sensation that I live in two different worlds right now and I want to clarify my position about the use of AI in software development. On one side, I talk to senior engineers working on production apps that are bullish on using AI to strenghten their architecture. On the other side I talk to senior developers “skeptic” about the use of agents in software development because they fear “AI slop” and bad generated code. I choosed to be bulish on AI coding agents for several reasons I want to explain here.

AI Agents are not just a productivity tool

Working with coding agents forces you to think in term of delegation. You need to define clear outputs of what you need. Good delegation is a skill and it’s hard to train with humans because it requires years of management to understand how to delegate correcly. I know it very well because I am (was?) very bad at team management. I tend to solve problem by myself instead of coordinating the team to help. So I am the first victim of that.

Thanks to AI and coding agents, I’ve learnt a ton about good delegation. I was asking too much or too little in th begining: “Change this buttonn to blue” is too small to delegate. “Add more tests” is too much. You need to find the sweet spot for your agents.

  • For the “too small” issue:

    1) batch your request. Ask a bunch of small changes at ones, take the time to list all your changes and send it.

  • For the “too big” issue:

    1) Split the task in logical steps. 2) Add more details in the brief of how to write the tests for example. Point to examples that works well. 3) Ask for measurable outputs: a link to the page to QA, a green test to check, etc.

To get back to my point: stop treating AI as a tool and start re-think the way you work as a developer. Delegate more by creatnig robust validation systems you can trust.

Think like this:

“What happens if I add 50 senior developers to the team right now? How do I staff them? How do I pass product specs? How do I track progress? Where should they ask me questions and when? How do I validate the work? Where is the documentation for them? How do they learn collectively to avoid making the same mistakes twice?”

What 10x developer means

A developer today should be able to work on 8 to 10 apps at the same time rather than 1 or 2. That means being able to hold more context in their head. It’s very hard to know exactly what happens on 10 different apps when you didn’t work on them directly. You need to put systems in place to be sure you track everything that happens as input and output of the apps. It’s just software engineering:

  • Clean documentation: create systems that auto update the docs on every code change so you know exactly what the API’s are doing
  • Robust test suite: +90% test coverage, no flaky test, massive fixtures that represent real world data, and test suite speed.
  • Bug reports: be able to understandn the bigs in productions, replicate them locally, fix, deploy, and write teh learning in a central docuemntation to avoid making this error again.
  • Chaos monkey: run agents locally ti fuzz test the apps and try to find blind spots and uncovered used cases.
  • QA servers: be sure you can QA each branch invidually in isolated envs to try various features at the same time
  • Clean code reviews: You need to be able to review all the code pushed to production.

Every change is an information

Agent Orchestration

Product first

I’m not