Shadowing Practice: Spec-Driven Development: AI Assisted Coding Explained - Learn English Speaking with Video

Creating lesson...
1
Right now, the way apps are getting built is completely changing because before writing and reviewing code was the hardest part,
2
but now it's knowing how to effectively convey what you want to build with an LLM.
3
And that, my friends, is what's known as spec-driven development.
4
Thank you very much.
5
Nah, I'm just kidding because the thing is spectrum
6
and development has become one of the most important skills to learn
7
if you're looking to be an AI engineer Or to use AI to help build your applications,
8
but let me explain why it's different from a common technique that you might also know Which is a vibe coding, right?
9
And this is typically what people think of when they think of AI assisted coding or coding agents
10
So I want to give you a quick example of what vibe coding typically looks like
11
And we'll kind of compare how this is different than spec coding here in a second But as a user, as a developer,
12
as a builder What you're going to start from is typically your AI coding agent Whether it's in a browser
13
or it's on your machine itself You're going to start from
14
that initial prompt So you're going to write that initial prompt to the LLM and say hey,
15
I want a specific application that does this functionality in this specific language like Java or Python.
16
And that prompt is then sent to the model.
17
And that model is then going to start generating code based on what it thinks
18
that you want from that project and that it's been trained on as well.
19
So at this point, we've got some boilerplate code.
20
And this is great for testing.
21
That's why I love Vibe Coding 4.
22
And we're going to go from here.
23
But the thing is, we might not have the exact desired implementation that we want.
24
So we're going to go ahead and edit that prompt.
25
So we're going to say, actually, I wanted something different or to use a different type of library or something like that.
26
So we'll go from the prompt editing over to the AI still continuing to code.
27
And we'll go back and forth until we reach that desired implementation after a few tries, right?
28
So we are at the desired state of implementation.
29
So that's typically what we see when we're doing vibe coding.
30
But the thing is like, how did, for example,
31
the AI model decide to make that specific decision that it did based on the prompt that we gave?
32
Because we could do a hundred different tries of this implementation of the app we want to create.
33
We might get a different result every time, and that frustrates a lot of people.
34
And the thing is, Vibe Coding kind of skips the traditional software delivery lifecycle also known as the SDLC
35
that we're used to in software engineering.
36
The software development lifecycle takes a little bit of a different approach
37
because we start our project by planning and designing using specific project requirements
38
or the PRD as it's typically called and then we take what we need
39
and require for our project and begin to implement those features.
40
Once we have those features we test to see if if they work.
41
We do a little bit of quality assurance
42
and then it goes into the deployment phase from dev to staging to production and finally the maintenance of that project.
43
And so while vibe coding is fantastic and I know it feels like magic, spec coding takes a little bit of a different approach
44
and adds in some of these software development lifecycle components to AI generated software development.
45
So let's take a look at what spec coding looks like in a hypothetical scenarios.
46
So spec coding or spec driven development, again, is going to take into consideration some of those software development lifecycle aspects, right?
47
But also use the LLM just like Vibe coding in order to, as an AI agent, write code or run these tests.
48
But it all starts with the prompt, of course, at first.
49
But the thing is, we're not prompting a specific implementation.
50
We're prompting what we want our system to do.
51
So the behavior, the constraints that we want and
52
that specific specification is then used like a contract to create a requirements
53
and this requirements is going to be kind of the main hierarchy of how this project is going to work
54
so how we want the model
55
and the agent to write code to do tests documentation verification
56
and much much more is all going to be focused from around the requirements itself the thing is
57
If we're happy with those requirements, so if we're happy, we can approve, and we can say, yes,
58
I want to turn this requirement specification into a design document that will then have to-dos for each specific implementation.
59
Or I can say, hey, I want to edit how I want this project to be implemented.
60
Because at this point, nothing has been implemented, and AI models are all about proper instructions.
61
So having a spec like this is much better than having
62
the LNM guess what solution is going to hopefully best fit the user's request.
63
So we go from the design here and if we're happy with
64
that design and how we actually want it to be implemented in code, well then we can have the model if we're happy go off and implement this.
65
So we can go and use that AI agent
66
or we can continue to do more requests on the specific implementation features
67
that we want to get back to and that's how spec coding works.
68
But Really quickly, I want to explain how it's different than other development cycles.
69
So in traditional development, so the way that, you know, most folks kind of started by writing code, it was first code, right?
70
And then afterwards, it was documentation, right?
71
So we would kind of start with our intuition and we would kind of go from there.
72
The thing is, we also started to work with test-driven development.
73
So test-driven development, as you can probably assume in the name, is where we start from the test and what the functionality we want for this,
74
you know, applications behavior to be, and then go into writing the code afterwards.
75
So that was also another popular way to approach development.
76
And the thing with spec coding, so spec-driven development, is it kind of turns it on its head.
77
So we kind of go from specifications these specs
78
that we have here to the design document requirements and actually implementing
79
that And then we go to code and so it's kind of test driven development and behavior Driven development on steroids, which is really cool
80
So let me give you a quick example of how this works in practice So we'll start off with vibe coding.
81
So with vibe coding again, we're just talking to the model We're doing quick edits on the fly.
82
I think that's that's what it's best for, right?
83
We're gonna say, hey, we need, let's see, what do we need?
84
Maybe a slash login page for our users to authenticate.
85
So, okay, that's a great request to the model, but how do we know what it's gonna do?
86
It might have 30 different ways to implement this, and we might have to go back and forth with the model, and that can take sometimes longer than just writing the code ourselves.
87
So vibe coding is one way to approach that problem.
88
The spec-driven development approach is a little bit different,
89
but of course still using the LLM to create this requirement that we have for this feature, right?
90
So in this case with spec-driven development, we're going to have a new feature and this feature is going to be user authentication, right?
91
So this is a new feature that we want to the LLM to build out.
92
Of course, we haven't started implementing yet.
93
This is just the kind of planning phase.
94
And we're going to say, hey, this is going to be an endpoint at slash login to do post requests to.
95
Okay, awesome.
96
And then what variables are we going to take for the username and password?
97
Well, we can say, hey, we're going to accept two different variables.
98
So they're going to be user and then pass.
99
Awesome.
100
So that is in there.
101
And we know when the implementation starts why it got to this conclusion.
102
Let's say for some reason if it doesn't work, we're going to have a fallback, a failure code.
103
If missing, I don't know, let's say username, right?
104
And then we can also generate test cases from here.
105
So let's go on to test and we're going to say,
106
hey, valid credentials will give a 200 code.
107
And this is really cool because when we're doing AI-assisted coding, we now have less ambiguity for our coding agents,
108
and we can use spec-driven coding to kind of flip the traditional development model, right?
109
So that we have this spec, and that becomes the primary artifact that drives all this downstream work like implementation and test and much more.
110
If you learned something today, I'd love if you could hit the like button and hack the algorithm, and make sure you subscribe for more content around AI and application development.
111
Have a good one.

About This Lesson

You're practicing English with "Spec-Driven Development: AI Assisted Coding Explained" using the Shadowing technique — a method originally developed for professional interpreter training.

Focus on sounding like the speaker — not just repeating words. With 15–30 minutes of daily practice, you'll build real-world speaking confidence.

What is the Shadowing Technique?

Shadowing is a science-backed language learning technique originally developed for professional interpreter training and popularized by polyglot Dr. Alexander Arguelles. The method is simple but powerful: you listen to native English audio and immediately repeat it out loud — like a shadow following the speaker with just a 1–2 second delay. Unlike passive listening or grammar drills, shadowing forces your brain and mouth muscles to simultaneously process and reproduce real speech patterns. Research shows it significantly improves pronunciation accuracy, intonation, rhythm, connected speech, listening comprehension, and speaking fluency — making it one of the most effective methods for IELTS Speaking preparation and real-world English communication.

Shadowing technique: read the full step-by-step guide →