HomeVideos

The 7 phases of AI-driven development

Now Playing

The 7 phases of AI-driven development

Transcript

259 segments

0:00

What's up friends? I'm going to keep

0:00

this short and sweet. I have identified

0:03

seven phases of development with AI. In

0:06

other words, as you're working through

0:08

coding with your AI coding assistant, in

0:10

my case Claude Code usually, then these

0:12

are the seven phases you should be

0:14

thinking about for shipping great work.

0:15

The way you achieve these phases is kind

0:17

of up to you. There are many different

0:19

implementations of it, but these are the

0:21

ones that I have kind of understood to

0:24

be kind of common across lots and lots

0:26

of different approaches. Whether you're

0:28

doing rough loops like I mostly am,

0:30

whether you're doing GSD, whether you're

0:31

using Spec Kit, you are probably going

0:33

to be using these seven phases. If you

0:35

dig this stuff and you believe that

0:36

engineering fundamentals are really

0:38

important in the AI age, then guess

0:40

what? So do I. And this is what I cover

0:42

and elaborate on in my newsletter. This

0:44

is not for vibe coders. We are people

0:46

that are serious about AI engineering

0:49

and serious about building applications

0:50

that are built to last. So if that

0:52

sounds like you and you want to improve

0:53

your skills, then this is the place. But

0:55

without further ado, let's go into the

0:57

list. Phase one, we start with the idea.

1:00

You have some kind of idea, some reason

1:02

that you are invoking this progress,

1:04

something that you want the AI to do for

1:07

you. This might be that you have an

1:08

entire app idea that you want to build.

1:10

Or you might just have a narrow thing

1:12

that you want to complete within the

1:13

code base that you're in, like a bug fix

1:15

or a feature. I also count refactors as

1:18

part of this, too. So if you have a code

1:19

base that you need to refactor, then

1:21

this process will work for you, too.

1:22

This idea can be as small and as big as

1:25

you like. We can expand this idea and

1:27

this process can take very very large

1:30

ideas and turn them into reality. Or it

1:32

can be teeny, very narrow and very

1:33

focused. Doesn't matter. Now, just to

1:35

give you a glimpse of the future setup

1:36

here, the idea is going to be turned

1:39

into a set of tickets, which a kind of

1:42

AI is going to complete. Now, that set

1:44

of tickets might end up being lots and

1:46

lots of different kind of like AIs

1:47

working at once, or maybe just a big

1:50

list of tasks that the AI is going to

1:52

complete sequentially. So if this idea

1:53

involves any kind of research here, any

1:56

kind of like difficult explore phases as

2:00

part of building the code, then you may

2:02

want to include a research phase now.

2:04

For instance, if you're doing like a

2:05

Stripe integration or maybe integrating

2:07

with an API that's not very common, then

2:10

you might want to create an asset that

2:13

kind of takes all of the research about

2:15

that thing like based on your idea and

2:17

kind of caches it and puts it inside the

2:20

repo or somewhere that your agent can

2:21

access. Essentially, every time your

2:23

agent is doing work, it might need to

2:25

explore the repo in a fresh context

2:27

window. And if that exploration is

2:29

difficult, so it's an external API or

2:32

it's somewhere that's hard to access,

2:33

then you'll want to cache it in a

2:35

research.md asset and you'll definitely

2:37

want to run a research phase at this

2:39

point. The next step after research is

2:41

to get to prototyping. Now, in the

2:43

prototype stage, we're still not really

2:45

sure what we're actually building on

2:48

even maybe why we're building it.

2:49

Prototyping is really important if you

2:52

need to impose your taste on the

2:54

outcome. words, maybe you need some UI

2:56

that needs to look a certain way or

2:58

behave a certain way. You're not quite

2:59

sure which one to do. What I tend to do

3:01

is just chuck up a bunch of different

3:03

ideas on a throwaway route, which is

3:06

kind of like the LLM showing me all of

3:07

the different ways it can think of to

3:09

build out the prototype. I then iterate

3:11

on the prototype inside a couple of

3:13

sessions and say, "Okay, now that one

3:14

looks like the best." I found that doing

3:16

this early is absolutely essential

3:18

because then you can actually commit the

3:19

prototype to your code base and then

3:21

make that available to the agent when it

3:23

actually goes to implement it. The next

3:25

step, we are in step four now is to

3:26

create a PRD. Now that we understand a

3:29

bit more about the kind of like external

3:31

APIs that we're using in the research

3:33

phase, now that we understand a bit more

3:35

about the prototype and we've actually

3:37

seen some code, it's time to start

3:39

actually properly describing the

3:41

destination. We should now feel

3:42

confident in ourselves that we can kind

3:44

of like understand the end state, what

3:47

we're trying to create at the end. We

3:48

won't know all of the implementation

3:50

decisions yet. We will just kind of know

3:52

the basic stuff that the user is going

3:54

to see and the way that it's going to

3:56

behave. We don't have to call this a

3:57

PRD, by the way. This is a PRD is a

3:59

product requirements document, but

4:01

really it's just some kind of document

4:03

that describes the end state of where

4:04

we're going. Now, in the process of

4:05

creating this end state, we really need

4:07

to hammer out the design. And this means

4:09

we need to prompt the agent to

4:11

absolutely grill us walking down every

4:14

part of our decision tree. I have a

4:16

write a PRD skill that is purpose

4:18

designed for this, which I will link to

4:20

below if you're interested. But once

4:21

we've created the PRD, then it's time to

4:24

actually start breaking down the PRD

4:26

into some kind of implementation plan.

4:28

For those of you who are not developers

4:30

or you've never used a, I don't know, a

4:31

Kanban board or a Jira board or anything

4:33

like that, a Kanban board is just a list

4:36

of tickets that have blocking

4:38

relationships between them. We're

4:39

essentially just describing the work

4:41

that needs to be done. So, I then have a

4:44

separate skill for turning my PRD into

4:47

separate issues. We could create a

4:48

single sequential plan that turns the uh

4:51

PRD into like actual code, but with a

4:54

Kanban board you actually get to

4:55

parallelize really effectively. And so,

4:57

I can just literally go on my Kanban

4:59

board, find all of the tickets that

5:00

aren't blocking, and spin up an agent

5:02

for each one and get it to resolve it.

5:05

But of course, what I'm starting to talk

5:06

about here is execution. So, in some

5:08

kind of loop here, run a coding agent to

5:10

execute all of the tickets on the Kanban

5:12

board. Most times you won't need to

5:14

parallelize this. Most times a

5:15

sequential agent just working through

5:17

each ticket will be enough. And for me,

5:19

this is a Ralph loop, which works

5:21

really, really effectively with this

5:22

setup. And I'll drop some links below on

5:24

writing about Ralph that I've done. Now,

5:26

finally, once you've done with

5:27

execution, you've got a completed asset

5:29

for you to actually look at, then you

5:32

get the agent to create a QA plan for

5:34

the human to QA the completed work. And

5:37

what this usually results in is more

5:38

tasks in the Kanban board and going

5:40

through the execution loop again. So,

5:42

you will tend to loop these last three

5:44

steps quite a few times until you

5:46

iterate towards a perfect product. And

5:48

QA here also involves a human actually

5:49

going and reading the code that's been

5:51

produced during the execution loop. That

5:53

might not always be needed, especially

5:55

if you're using a kind of gray box

5:56

architecture that I've talked about in

5:58

previous videos. But overall, these

6:00

seven phases are the things I'm thinking

6:02

about whenever I'm working with an AI

6:03

agent. We start with the idea, some kind

6:06

of app or feature or refactor. If we

6:08

know there are external dependencies and

6:10

difficult to execute explore phases,

6:12

then we cache it in a research phase.

6:14

And by the way, this research generally

6:16

only lives for the lifetime of this

6:18

sprint essentially, or the lifetime of

6:20

the idea that we're imposing on the app.

6:22

The reason for that is that research can

6:24

go out of date, or it can just rot away

6:26

essentially, and actually cause our

6:28

agent to take a wrong turn where it's

6:31

not needed. If I need to impose my

6:32

taste, then I will use a prototype here.

6:35

So, I'll really just sit with an agent,

6:37

human in the loop, to hash out some

6:39

ideas. This is not just for design as

6:41

well. It can be for a software

6:42

architecture, too, or let's say testing

6:45

something out with an external service.

6:46

This is an essential step because by the

6:48

time we get to the PRD, it's a little

6:49

bit too abstract. You really need

6:51

concrete feedback first. Then I write

6:53

the PRD, which is the documentation, the

6:56

spec for where we are going. Next, I

6:58

make a kind of understanding of the

7:00

journey towards the PRD by turning it

7:02

into a Kanban board. I generally use

7:04

GitHub issues for both the PRD and the

7:06

Kanban board, by the way. It's just an

7:08

easy thing I found. Although GitHub

7:10

doesn't have yet a kind of built-in way

7:12

to represent blocking relationships

7:14

between tickets. So, you might be just

7:16

better off with something like Linear,

7:17

which does. Once the Kanban board is all

7:19

ready and set up, then I execute it in

7:21

some kind of loop. For me, that's a

7:23

Ralph loop. You could also, I suppose,

7:25

do execution human in the loop style,

7:27

where you sit and execute the tickets

7:30

individually. But I generally find with

7:31

all of this setup, with the research,

7:33

with the prototype, with the Kanban

7:35

board, with the PRD helping it, you can

7:37

totally run this execution loop AFK, and

7:39

the results will be really good. And to

7:40

make sure that they're really good, we

7:41

then enter a QA phase where we get the

7:44

agent to produce a QA plan. Then a

7:46

human, yes, a human, yep, we're here,

7:49

actually walks through and QAs the

7:51

completed work and then produces more

7:53

tickets for the Kanban board, which then

7:55

goes and executed, more QA, you get the

7:58

idea. So what do you think about this?

7:59

What did I get wrong and what am I

8:00

missing here? I imagine these phases

8:02

will grow to eight phases and nine

8:04

phases as I get more ideas. There's no

8:06

explicit mention of code review here,

8:08

really. I suppose I could do that as

8:10

part of the execution flow. I suppose

8:11

maybe it comes under QA, but you know,

8:14

it's definitely an essential step to

8:16

producing good code. By the way, you can

8:18

tell that I care about good code and if

8:19

you do too, then you should check out my

8:21

newsletter. But whether you sign up or

8:22

don't, thanks for watching and I'll see

8:24

you very soon.

Interactive Summary

The video outlines a structured seven-phase development framework for engineering applications using AI coding assistants. These phases—Idea, Research, Prototyping, PRD, Kanban Planning, Execution, and QA—are designed to help developers create reliable, high-quality software by transitioning from an initial concept to a finished product through iterative cycles.

Suggested questions

3 ready-made prompts