← All AI Engineer talks

AI Engineer World's Fair 2025

The 4 Patterns of AI Native Development

Read the talk

The Four Patterns of AI-Native Development

As agents take on implementation, developers spend more effort reviewing work, specifying intent, discovering useful products, and preserving what the team learns.

From a talk by Patrick Debois

Before you start: Familiarity with code review, version control, and software delivery workflows is helpful; no experience building AI agents is required.

What changes when development becomes AI native?

What changes in software development when AI does more than complete the next line of code? The technology has progressed from language models to retrieval-augmented generation (RAG) and codebase indexing, then to functions exposed through the Model Context Protocol (MCP), agents, and emerging teams of agents. But adding those capabilities does not, by itself, establish a new way of working. Like the earlier shift to cloud-native development, the deeper question is which practices change once the technology becomes part of the workflow.

A developer’s job is a bundle of tasks, including collaboration as well as writing code. New technology can replace some tasks, enhance others, and create work that did not exist before. AI-native development changes that bundle of responsibilities. Patrick Debois organizes these changes into four patterns, each moving outward from the developer’s existing role.

Slide titled “Unbundling tasks” with three rows of colored task blocks showing an original job bundle, technology complements and substitutes, and a post-substitution bundle.
Unbundling tasks: technology changes the bundle of tasks within a job.

Debois approaches this through his background in DevOps and DevSecOps: automation changes how people coordinate and supervise work, not just how quickly individual actions happen. Introducing himself as an independent industry advisor, he also describes his work curating software-engineering stories for the AI Native Dev community.

0:010:11
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:01 · section reference included

Producer to manager: redesigning review

When agents produce the code, the developer becomes responsible for managing that production. The immediate difficulty is review: Debois observes that less time spent coding can mean more time spent reviewing, with greater cognitive load. While writing a change yourself, you develop an understanding of its decisions as you go. With generated code, you have to reconstruct that thinking afterward.

The review interface therefore matters. A red/green diff exposes edits, but can be clunky to interpret; a chat transcript preserves the interaction, but can be verbose. Debois contrasts these with a What Matters view that distills the material needed for an acceptance decision. For changes spanning multiple files, a guided sequence can give the reviewer a coherent path through the work. Diagrams offer another representation, making relationships, errors, and the impact of a change easier to inspect.

These examples lead to moldable development environments: editors that adapt their presentation to the code, domain, and review task at hand. A structural change may deserve a diagram; another change may need a focused summary or a sequence of smaller reviews. Debois presents this as a possible direction for IDEs, with the aim of reducing the effort required to understand generated work instead of presenting an endless stream of text.

2:112:23
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:11 · section reference included

Controls for longer-running agents

Greater autonomy also changes when review happens. Aider illustrates the inversion: automatically commit generated changes, then let the developer inspect and reject unwanted work, rather than requiring a manual yes before every commit. Automatic committing does not validate or deploy the code. Debois connects the broader move toward auto-acceptance with judgments about risk and impact: which changes are acceptable without stopping the workflow?

Longer-running agents need recovery points as well as acceptance decisions. Checkpoints let a developer return to an intermediate state and regenerate from there. That avoids restarting the entire iteration and reviewing all of it again when only a later portion needs correction.

Delegation also needs explicit boundaries. A file lock expresses that a particular file must not change; agent permissions define which actions are allowed. The displayed editor example puts a Lock file action beside a checklist of permissions. These controls turn a manager’s instructions about what may and may not be touched into limits on the agent’s work.

Slide titled “AI, can’t touch this” showing a yellow arrow pointing to “Lock file” in an editor menu beside a checklist of agent permissions.
File locking and agent permissions define what AI can change.

The unit of attention then expands from an individual prompt to the entire task. Debois’s displayed long-running task example costs almost $10. The workload, duration, model, and billing conditions are not specified, so the useful lesson is to track cost per task as agents work for longer stretches. Supervising their output includes supervising the resources they consume.

4:344:48
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:34 · section reference included

Implementation to intent

Managing generated code leaves an earlier question unanswered: what should the agents build? The second pattern moves attention from directing the implementation toward specifying the intended result. The developer describes the outcome and gives the agent room to work out how to achieve it.

A simple starting point is a reusable Markdown specification included with the prompt. Functional and technical requirements no longer have to be typed again in every conversation. For example, a small specification for an issue-list feature could make the desired behavior explicit:

markdown

# Issue list filtering

## Functional requirements
- Let users filter issues by status: open or closed.
- Show all issues when no status is selected.
- Preserve the selected status when the page reloads.

## Technical requirements
- Store the selected status in the URL query string.
- Use the project's existing issue-list component.

The file gives subsequent requests a stable statement of what the feature should do, instead of relying on repeated instructions scattered through chat.

Once intent is written down, AI can help turn it into an execution plan. Debois shows GitHub’s task-oriented approach as an example of translating a requested outcome into steps. The resulting workflow is:

  1. Specify the desired behavior and constraints.
  2. Plan the tasks needed to satisfy them.
  3. Generate code from that plan.

This changes the primary interaction from chat and text completion to defining and supervising tasks.

A specification-centric tool can extend that approach across functional, technical, and security requirements. The specification becomes the organizing surface for the workflow, with less attention devoted to the code itself. Taken further, the developer’s role starts to resemble program management: overseeing the process that turns intent into implementation, without necessarily watching every coding step.

6:106:24
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:10 · section reference included

Delivery to discovery

A clear specification can still describe the wrong thing. The third pattern moves another step upstream: discovering which intent is worth pursuing. With production pipelines handling delivery, specifications guiding the work, and developers managing agents, more attention can go toward exploring the problem and deciding what to build.

Rapid prototyping is the first expression of this shift. Debois points to Lovable and Bolt as tools for building prototypes through vibe coding. The value is not limited to producing one design more quickly. Generating several versions gives people alternatives to compare and can suggest possibilities they had not considered.

Discovery then becomes a repeated design-to-code loop: create a design, generate the implementation, reconsider the design, and modify the code. Each iteration helps clarify what the product should become.

Debois extends this into a customer-facing possibility. Imagine customers creating the interface they want on top of an existing product. Rather than choosing only among interfaces the product team supplied, they could adapt the experience to their own needs. He compares the idea to intensified A/B testing: customer-created variations could help expose the friction between the product’s default interface and the way people actually want to use it. This is a proposed use of the workflow, not a demonstrated deployment.

8:108:25
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:10 · section reference included

Content to knowledge

Discovery produces ideas; specifications record intent; managed agents produce code. All of those activities also produce learning. The fourth pattern is to turn that content into reusable knowledge so the team does not keep solving the same problems.

The inputs extend beyond the codebase:

  • Production issues: bring what happens in operation back into the code.
  • Incident response: retain what failed, what should not be repeated, and which guidelines or technologies need to change.
  • Codebase lessons: explain the existing system to help people onboard and preserve understanding when someone leaves.

The codebase-to-lessons example shows a Shoulder.dev dashboard with cards for learning, codebase exploration, dependencies, and contributing. It makes the knowledge goal concrete: existing software can become material people use to understand and work on the system.

Slide titled “Turn codebases into lessons” showing a Shoulder.dev dashboard with orange cards for learning, codebase exploration, dependencies, and contributing.
Turn codebases into lessons with Shoulder.dev.
10:1510:37
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:15 · section reference included

Remembering decisions while the work happens

One especially useful form of retained knowledge is feature memory. A team tries a feature, dismisses it, and later tries it again because the original decision has disappeared from view. Recording the attempt and its rationale gives the next discussion context. Decisions that would otherwise remain buried in tickets or architecture diagrams become knowledge the team can bring into future work.

Capture can happen inside the development workflow. As a person chats and codes, an agent can identify something potentially worth retaining and propose saving it as knowledge. The proposal is the important intervention: useful context is recognized while it is still available, rather than depending entirely on a separate documentation pass. Debois describes a feedback loop in which both the person and the AI benefit from retaining what they learn.

That retained knowledge has two destinations. It can help answer other people’s questions, and it can inform later coding work. The result of one development cycle becomes context for the next, connecting what the team has already learned with the solutions it generates.

11:3111:49
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:31 · section reference included

Development reaches into adjacent roles

The four patterns widen the developer’s responsibilities into areas that already exist elsewhere on a software team:

PatternAdjacent responsibility
Producer → managerOperations: supervise work and its execution
Implementation → intentQA and architecture: define requirements
Delivery → discoveryProduct ownership: decide what to build
Content → knowledgeData engineering: turn information into reusable knowledge

Debois connects this broader scope with what good senior developers already do. The change reaches beyond faster typing: it concerns the judgment needed to direct work, choose useful outcomes, and retain understanding across development cycles.

Diagram placing Development between Product, Operations, QA & Architects, and Data, with transitions from delivery to discovery, producer to manager, implementation to intent, and content to knowledge.
Four AI-native development patterns connect development with adjacent roles.

For further exploration, Debois points to the AI Native Dev landscape and its news coverage at the intersection of software engineering and AI. He estimates that the landscape contained roughly 300 tools at the time of the talk. The original site now leads to the Tessl community. The tools provide examples to explore, while the four patterns describe the responsibilities that change as those tools enter everyday development.

12:3812:49
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

12:38 · section reference included

Resources

From the talk

  • Patrick Debois introduces the four patterns and connects them to responsibilities across software teams.

  • From Producer to ManagerArticle

    Debois explores review interfaces, acceptance fatigue and the responsibilities of supervising generated code.

  • A companion explanation of reusable prompts, shared specifications and tests that validate intended behavior.

Updates since the talk

  • The current destination of ainativedev.io, with software engineering articles, podcasts and a newsletter.

Read the complete timestamped transcript
  1. 0:01

    Today, we're gonna talk about the four patterns of AI-native development and how AI has impacted our development workflow.

  2. 0:11

    Over this period of GenAI craziness, uh, technology has advanced from simple LLM to kind of RAG and indexing our code bases, adding more kind of functions that would be MCP, and all the way up to agents, and we see the first hint of teams of agents kind of emerging.

  3. 0:30

    And kind of all that technology is really great, uh, as such.

  4. 0:35

    And we've seen this explosion before, uh, with cloud native, like a new way, new way of working. And right now it still feels maybe a little bit that we're sprinkling AI on top of this.

  5. 0:46

    And but what, what does it mean to be AI native? What's the new kind of set of practices that we're heading for?

  6. 0:54

    Now, with any new technology, right, it impacts our tasks. And tasks that we do, um, is different. It's not just about coding and typing. Uh, we, we kind of work together, we collaborate, and we do a, a set of different things.

  7. 1:10

    And so what happens is that like part of our job or part of the tasks actually either get replaced, enhanced, or there come new tasks, and that's kind of like that AI native thing that we're looking for.

  8. 1:24

    What is happening to the way we are working right now? I kind of distilled this into four patterns, uh, and we'll talk about each of them, uh, in this talk.

  9. 1:35

    Um, you know, with the center being we're a developer, but we're moving into different areas. Uh, and that's the pattern shifts that we see.

  10. 1:45

    Who am I? Um, I'm an independent industry advisor, and I kind of am known for my work around DevOps and DevSecOps, which is a lot of automation, and that fits right in with the integration with GenAI.

  11. 1:58

    And that's why I love talking about like software engineering with AI. And I also help kind of the AI Native Dev community, uh, to curate content and to get the stories out, much like this event.

  12. 2:11

    Now, the first pattern is from producer to manager, and it is when we are used to being the producers of the code, and all of a sudden we have agents that are producing the code.

  13. 2:23

    So we need to manage those agents. And that's the first pattern shift that we see from producer to manager.

  14. 2:31

    It is already very visible in a way that, like, the AI is generating the code, and while we spend less time in the coding, the reviewing time goes up.

  15. 2:41

    And we didn't do the kind of thinking work anymore, so now we have to do the thinking work in the review. So our cognitive load is going up. So that is one of the things that is very visible in a lot of places where AI is added to their workflow.

  16. 2:57

    Now, we try to reduce the cognitive load by coming up with new ways of reviewing, uh, the code that was generated, not just the diff view, red/green. It's a little bit clunky.

  17. 3:09

    The chat view is very verbose, but on the right side, you see that the review kind of strips whatever we need, um, to review the code, uh, into, uh, almost like a summary.

  18. 3:23

    And then we kind of say yes/no. So that is the What Matters view, uh, and it's one way of dealing with becoming that manager. At a glance, you can say, "Yes, no, this is good code."

  19. 3:33

    Now, as we're doing more kind of, uh, multiple files reviewing, we can do this step by step, so breaking down and kind of, uh, making sure there is a flow.

  20. 3:43

    Uh, how we review is another way of kind of dealing with the managing of the code.

  21. 3:49

    And why should we restrict ourselves just to be reviewing text? Um, there... This is an example of creating a diagram of what has changed. A lot easier to review, um, and a lot easier to spot kind of, uh, any errors or any impact on that.

  22. 4:06

    And this brings, uh, me to the f- uh, the concept of a moldable development environment. We expect kind of the editors to adapt themselves to the code, uh, review at hand, to whatever domain, whatever kind of specifics that we need to review.

  23. 4:21

    So that is maybe a trend that, uh, IDEs will end up with, uh, and not just end us with an endless stream of text, and that help-- also helps reduce the cognitive load.

  24. 4:34

    Now, why we even bother to reviewing? Um, Aider was one of the first to set, like, let's auto commit, and if you don't like it, you can review, because now we still had the manual, uh, kind of step of saying yes to commit.

  25. 4:48

    Uh, this flips the chart. Now, it uses some heuristics to say, "I, I kind of accept the risk," or, "The impact is low," but obviously it is an interesting kind of, uh, evolution in auto-accepting those commits.

  26. 5:02

    Now, auto-accepting, um, also what we saw emerge is the longer running agents. Uh, there's been checkpoints because we don't wanna generate the whole kinda like train of thought, uh, and kind of the generation.

  27. 5:14

    We can jump in from a certain point, uh, and regenerate from there. So kind of that is also helping us not having to review, uh, the whole kind of, um, iteration over and over again.

  28. 5:26

    And we do, do wanna set constraints like, "AI, you cannot touch this," much like a manager sets the rules. "You can do this. You cannot do that." Um, we can say, "Lock the file," um, and we can also say what permissions the agents have, so similar to setting, um, kind of good, uh, guardrails for what the AI

  29. 5:45

    can do. We start worrying a little bit more on the cost as this is longer running. It is not just about that one prompt. Uh, it is about, like, that long-running prompt.

  30. 5:55

    So how long did it take? Well, in this case, yeah, almost $10. So we wanna keep an eye on the cost of whatever, uh, task is done. Again, this is us managing a team of agents and not just doing the work.

  31. 6:10

    So this was the first kind of pattern. Uh, we manage whatever code was being r- uh, produced. Now, if we take a step back, we wanna also think about like what do we actually want the agents to build, and this is pattern two.

  32. 6:24

    We are, uh, increasingly going from caring less about the actual implementation to specifying the intent to the agents. This is what we want, figure it out, like run with it.

  33. 6:37

    The first one, uh, that I kinda saw it was a simple markdown file as a specification file that you added to the prompt. This was a very simplistic way of kind of adding specifications instead of us having to rewrite over and over again things in the prompt.

  34. 6:53

    And this really helped to kind of build that shared functionality, whether that is functional or more technical as a specification.

  35. 7:02

    And, you know, once we have the things that we wanna build, um, AI can help us build a plan. Uh, this was, uh, GitHub kind of adding this task-oriented, uh, and translating whatever we want it to do, uh, step by step.

  36. 7:17

    Um, and that brought us to all more like intent-based coding. So it's less about the chat and the text completion, but it's more about like we define the tasks.

  37. 7:27

    It becomes, uh, kind of like the specification. It builds a plan, and then it does the code. Uh, that is definitely, uh, a new kind of, uh, direction, uh, the tools are taking.

  38. 7:38

    And then the whole tool could be specification-centric. We don't see the code maybe too much anymore. We specify kind of functional requirements, technical requirements, security requirements, and like the whole workflow is around specifications.

  39. 7:54

    And then if you go a step further, why kind of still see whatever goes on in that like, um, coding, um, process, and you start just having managing the process as a program manager as such.

  40. 8:10

    So this was kind of like specifying intent, and before we had specifying being a manager, uh, and watching it do and, uh, work out that intent. But this pattern number three is that we...

  41. 8:25

    How do you find, uh, find what is the right intent that we wanna build? So we wanna discover IDs, we wanna discover, uh, the, and work the problem as such, and that's pattern number three.

  42. 8:37

    From delivery, so we care less about it going to production because we have pipelines and that goes out. We have the manager, we have the specifications to us discovering what we want to build.

  43. 8:48

    And yes, okay, this is just, uh, designing and making much faster to design kind of, um, prototypes. That's one way of kind of exploring like, "Oh, it needs to be like this, it needs to be like that."

  44. 9:02

    Um, we all know kind of like vibe coding, uh, building prototypes is a lot faster right now, so we can kind of do this, um, with a tool like Lovable or Bolt or any of the other tools.

  45. 9:14

    Um, what that brings is also it can build multiple iterations and multiple versions so we can choose the best one. Um, like, uh, that really helps us to discover what we really want, and it helps us suggest things that maybe we didn't think about, uh, yet.

  46. 9:33

    And then that kind of whole design to going to code and kind of like doing design again and then modifying the code, uh, that's, that's a whole process of that is being refined to kind of that discovery process and exploration.

  47. 9:46

    And this is a great example of like we all think about vibe coding, that it needs to be done for prototyping and discovering IDs, but it could also be done by the customer.

  48. 9:57

    Like imagine they could vibe code the interface that they want on top of your product, um, similar to almost like an A/B testing on steroids. They can adapt what they need and how they need it, and that's usually like one of those friction points, uh, of getting the, the perfect product.

  49. 10:15

    Now, we explored everything we wanted to build, then we wrote the specification, and then we managed when it was generating the code. Uh, the one step that even goes, uh, uh, kind of, uh, like after that is that whatever we learned in that process, whatever content we produce, we wanna turn into knowledge because that's kind of the

  50. 10:37

    final play is us capturing all the knowledge, not having to do the same problems over and over again.

  51. 10:44

    Now, it doesn't only have to be code, uh, what we learn on the process. It could also be production issues, uh, so we learn whatever is going on in production and we bring that to the code.

  52. 10:55

    That's one way of learning. We can also learn from incident response, like what failed, what we shouldn't do, like new guidelines, new technology that we, we, uh, wanna improve on, um, similar to writing an incident response code and taking that as knowledge.

  53. 11:12

    We can also turn whatever code we have into lessons, like reducing the onboarding time of a new person, uh, or a person leaving. Uh, all valuable things. There's a lot of knowledge lost usually, so helping, uh, AI helping us there is very useful, um, in that process.

  54. 11:31

    And then one thing you might have seen, uh, over the years is that like somebody tried a feature, it gets dismissed, it got tried again. So maybe it can keep actually track of whatever feature in almost like a feature memory, and we're not doing this over and over again, and we keep track of whatever decision that was

  55. 11:49

    made, which is currently a little bit more of a throwaway kind of things that ends up in, uh, in any of the, the tickets or the architecture diagrams. But now, right now, it keeps that as knowledge, um, on board.

  56. 12:02

    And then when we actually do this more in the flow, we, we chat, we, we code, and all of a sudden the agent says, "I think this is important.

  57. 12:11

    Let's save this as knowledge." We kind of get a very beneficial loop- either both for actually the, the human and both for the AI to kind of learn at the same time and keeping that, like, knowledge.

  58. 12:25

    And that knowledge then can then be used to help others with questions, uh, and to also improve actually the coding, uh, of the solution. So this is a nutshell word for AI Native Dev patterns.

  59. 12:38

    You see the center was the developer. We moved a little bit to the, uh, land of operations, uh, by becoming a, a, a, instead of a producer, a manager.

  60. 12:49

    We moved, uh, to more of the QA and the architects, uh, by moving towards the intent. We did more discovery like a product owner, and we turned data into knowledge, uh, similar to our data engineers.

  61. 13:04

    Now, in essence, this is also what good senior developers do. They do more than just the code, and it also shows that AI is beyond kind of just, uh, us helping to do fa- faster typing as such.

  62. 13:19

    If you wanna learn more about, like, the landscape of all the tools, I also curate the landscape ainativedev.io. We roughly have about three hundred tools now in our landscape, um, for you to explore.

  63. 13:32

    Uh, obviously, there's a lot of tools. Um, you can also subscribe to the news, AI Native Dev, um, and, um, anything that, like, we really focus on anything that is at the intersection of coding software engineering and AI, which makes us, uh, a little bit unique in that space.

  64. 13:51

    Thank you very much. If you're enjoying this talk, um, send me a message on LinkedIn. I will also forward you the slides, uh, or you can kind of subscribe to my YouTube channel.

  65. 14:01

    Have fun, um, exploring all these kind of new ways of working, and I hope to be back for more. Thank you.