HomeVideos

Developer Experience in the Age of AI Coding Agents – Max Kanat-Alexander, Capital One

Now Playing

Developer Experience in the Age of AI Coding Agents – Max Kanat-Alexander, Capital One

Transcript

500 segments

0:13

[music]

0:20

How's everybody doing? Still awake?

0:23

>> Okay, great. So

0:26

like the robot voice said, I have been

0:28

doing developer experience for a very

0:29

long time and I have never in my life

0:33

seen anything like the last 12 months.

0:36

The you know about every 2 to 3 weeks

0:38

software engineers been making this face

0:40

on the screen.

0:43

Okay. And if you work in developer

0:44

experience the problem is even worse.

0:47

You're like this guy on the screen every

0:50

few weeks. You're like, "Oh yeah, yeah,

0:52

yeah, yeah, yeah. Here's the new

0:53

hotness." And then somebody else comes

0:55

up and they're like, "Well, can I use

0:56

the the new new hotness?" And you know,

0:58

people have been doing that for years.

0:59

I've been working in developer

1:00

experience for a long time. Everybody

1:01

always shows up and they're like, "Oh,

1:03

can I use this tool that came out

1:04

yesterday?" And you're like, "No, of

1:06

course not." And now we're like, "Uh,

1:08

maybe yes." Right? And what this leads

1:12

to overall is the future is super hard

1:15

to predict right now. So,

1:18

a I think a lot of people, a lot of

1:20

CTO's, a lot of people who work in

1:22

developer experience to people who care

1:23

about helping developers are asking

1:25

themselves this question,

1:27

are all of my investments going to go to

1:29

waste? Like, what could I invest in now

1:32

that if I look back at the end of 2026,

1:34

I'll be like, I sure am glad that I

1:36

invested in that for my developers. And

1:39

I think a lot of people have just

1:40

decided, well, I don't know. I guess

1:42

it's just coding agents and I guess

1:43

they'll fix every single thing about my

1:45

entire company by themselves which look

1:47

they're amazing they're transformative

1:49

but it's not the only thing that you

1:51

need to invest in as a software

1:52

engineering organization. So we can

1:55

clarify this by asking ourselves two

1:57

questions. The first one is how can we

2:00

use our understanding of the principles

2:02

of developer experience to know what's

2:03

going to be valuable no matter what

2:05

happens. Okay. And what do we need to do

2:10

to get the maximum possible value from

2:13

AI agents? Like what would we need to

2:15

fix at all levels outside of the agents

2:19

in order to make sure that the agents

2:21

and our developers can be as effective

2:22

as possible? And this isn't like a minor

2:25

question. These are the sorts of things

2:27

that could make or break you as a

2:28

software business going into the future.

2:32

So let's talk about what some of those

2:34

things are that I think are no regrets

2:36

investments that will help both our

2:38

human beings and our agents. So the in

2:42

general one of the framings that I think

2:43

about here is things that are inputs to

2:45

the agents. Things around the agents

2:47

that help them be more effective. And

2:49

one of the biggest one is the

2:50

development environment. What are the

2:52

tools that you use to build your code?

2:55

What package manager do you use? What

2:57

llinters do you run? Those sorts of

2:59

things. You want to use the industry

3:01

standard tools in the same way the

3:04

industry uses them and ideally in the

3:07

same way the outside world uses them

3:10

because that's what's in the training

3:11

set. And look, yes, you can write

3:13

instruction files and you can try your

3:14

best to try to fight the training set

3:16

and make it do something unnatural and

3:18

unholy with some crazy amalgamation that

3:21

or modification that you've made of

3:23

those developer tools. Like you might

3:24

you invented your own package manager.

3:26

You probably should not do that. you

3:28

probably should undo that and try to go

3:29

back to the way the outside world does

3:31

software development because then you

3:33

are not fighting the training set. Um,

3:37

and also it means it means things like

3:40

you can't use obscure programming

3:41

languages anymore. Look, I'm a

3:42

programming language nerd. I love those

3:44

things. I do not use them anymore in my

3:47

day-to-day agentic software development

3:50

work. as an enthusiast, I do come

3:51

sometimes go and I code on, you know,

3:53

frontline uh software engineering

3:55

languages, but not in my like real work

3:57

anymore.

4:00

So, what people ask me sometimes, does

4:01

that mean like we're never going to ever

4:02

have any new tools again because we're

4:03

always going to be dependent on the

4:04

tools that the model already knows?

4:06

Probably not because like I said,

4:07

there's still going to be enthusiasts.

4:09

And also, but like I would like to make

4:11

a point. The thing that I'm talking

4:13

about has always been a real problem.

4:15

Like there's always some developer at

4:17

the company has always come up to you

4:18

and be like, "Can I use this technology

4:20

that came out last week and has never

4:22

been vetted in an enterprise to run my

4:23

like 100,000 queries per second service

4:26

that serves a billion users?" And I'm

4:28

like, "No, you can't do that now and you

4:30

can't do that yesterday. It's still the

4:32

same."

4:34

Uh, another one is

4:36

in order to take action today, agents

4:39

need either a CLI or an API to take that

4:41

action. Yes, there's computer use. You

4:43

can make them write playright and

4:44

orchestrate a browser. But why? Like if

4:48

you could have a CLI that the agent can

4:50

just execute natively in its normal

4:51

format that it understands the most

4:53

natively, which is text interaction, why

4:56

why would you choose to do something

4:58

else, especially in an area where

4:59

accuracy matters dramatically and where

5:02

that accuracy dramatically influences

5:03

the effectiveness of the agent?

5:07

One of the most important things that

5:08

you can invest in is validation. So any

5:11

kind of objective deterministic

5:13

validation that you give an agent will

5:14

increase its capabilities. So yes,

5:17

sometimes you can create this with the

5:18

agent. I'm going to talk about that in a

5:20

second. But it doesn't really matter how

5:21

you get it or where you get it from. You

5:23

just need to think about how do I have

5:26

high quality validation that produces

5:29

very clear error messages. This is the

5:32

same thing you always wanted by the way

5:33

in your tests and your llinters, right?

5:35

But it's even more important for the

5:37

agents because the agents cannot divine

5:39

what you mean by 500 internal error with

5:41

no other message, right? Like they need

5:46

a way to actually understand what the

5:47

problem was and what they should do

5:48

about it.

5:50

However, there is a problem here. So,

5:53

you know, you think, okay, I'll just get

5:54

the agent to do it. They'll write my

5:55

test and then I'll be fine. But have you

5:57

ever asked an agent to write a test on a

6:00

completely untestable codebase?

6:03

They do kind of what it's like is

6:05

happening on the screen here. They will

6:07

write a test that says, "Hey boss, I

6:09

pushed the button and the button pushed

6:11

successfully. Test passed."

6:14

Um like so there is a sort of a a larger

6:20

problem that a lot of enterprises have

6:22

in particular which is there's a lot of

6:24

legacy code bases that either were not

6:25

designed with testing in mind or were

6:28

not designed with like high quality

6:29

testing in mind. and like maybe they

6:31

just have like some very high level

6:32

endto-end tests and they don't have like

6:33

great unit tests that the agent can

6:35

actually run iteratively in a loop and

6:36

that will produce actionable and useful

6:38

errors.

6:40

So another thing that you can invest in

6:42

that will can be perennially valuable

6:44

both to humans and to agents is

6:47

structure of your systems and structure

6:49

of your code bases. Agents work better

6:51

on better structured code bases. And for

6:54

those of you who have never worked in a

6:56

large enterprise and seen very old

6:58

legacy code bases, you might not be

6:59

familiar with what I'm talking about.

7:00

But for those who have, you know that

7:02

there are code bases that no human being

7:03

could reason about in any kind of

7:05

successful way because the information

7:07

necessary to reason about that codebase

7:09

isn't in the codebase and the structure

7:11

of the codebase makes the codebase

7:13

impossible to reason about looking at

7:16

it. Yes, you the agents can do the same

7:19

thing human beings do in that case,

7:20

which is sort of go through an iterative

7:22

process of trying to run the thing and

7:23

see what breaks, but that decreases the

7:26

capability of the agent so much compared

7:28

to just it having the ability to just

7:30

look at the code and reason about it the

7:33

exact same way that human capability is

7:35

decreased. And of course, like I said,

7:38

that all has to lead up to being

7:40

testable. If the only thing I can do

7:43

with your codebase is push a button and

7:45

know if the button pushed successfully

7:46

and not see the explosion behind it,

7:48

like if if there's no way to get that

7:50

information out of the codebase from the

7:52

test, then the agent's not going to be

7:54

able to do that either unless it it goes

7:55

and refactors it or you go and refactor

7:57

it first.

8:00

And you know, there's a lot of talk

8:01

about documentation. There's always been

8:03

a lot of talk about documentation in the

8:05

field of developer experience, in the

8:07

field of improving things. And there's

8:09

people go back and forth about it.

8:10

Engineers hate writing documentation.

8:12

Uh, and the value of it is often debated

8:16

like what kind of documentation you want

8:18

or don't want, do or don't want. But

8:19

here's the thing. The agent, let's just

8:22

take this in the context of the agent.

8:24

The agent cannot read your mind. It did

8:27

not attend your verbal meeting that had

8:29

no transcript.

8:31

Okay? Now there are many companies in

8:34

the world that depend on that sort of

8:36

tribal knowledge to understand what the

8:39

requirements are for the system. Why the

8:42

code is being written? What is the

8:45

specification that we're we're writing

8:46

towards if things are not written down?

8:50

And that sounds like blatantly obvious,

8:53

but like there are a lot of things that

8:56

are fundamentally written. like if the

8:57

code is comprehensible like all the

8:59

other steps are in that we've gotten to

9:00

so far. You don't need to reexlain

9:03

what's in the code. So there's actually

9:04

probably a whole class of documentation

9:05

that we may not need anymore or you can

9:07

just ask the agent like hey tell me

9:10

about the structure of this codebase

9:11

overall and it'll just do it but it

9:13

won't be able to ever know why you wrote

9:15

it unless that's written down somewhere

9:18

or things that happen outside of the

9:20

program like what is the shape of the

9:22

data that comes in from this URL

9:24

parameter as an example like if you have

9:27

already written the code there's a

9:29

validator and that does explain it but

9:31

if you haven't written the code yet it

9:33

doesn't know what comes in from the

9:34

outside world. So basically anything

9:35

that can't be in the code or isn't in

9:37

the code needs to somehow be written

9:39

somewhere that the agent can access.

9:44

Now we've covered sort of a few

9:45

technical aspects of things that we need

9:47

to improve, but there's a point about

9:51

software development in general and it

9:53

that's always been true and one of and

9:55

that's you've heard this we spend more

9:58

time reading code than writing it. The

10:02

difference today is that writing code

10:04

has become reading code. So even now

10:07

when we are writing code we spend more

10:09

time reading it than actually typing

10:12

things into the terminal.

10:14

And what that means is

10:18

every software engineer becomes a code

10:21

reviewer as basically their primary job.

10:25

In addition, as anybody who has worked

10:27

in a in a shop that has deeply adopted

10:30

Agentic coding, we generate far more PRs

10:33

than ever before, which has led to code

10:35

review itself, the like the big scale

10:37

code review being a bottleneck.

10:41

So one of the things that we need to do

10:43

is we need to figure out how to improve

10:45

code review velocity both for the big

10:49

code reviews that we like where we you

10:51

send a PR and somebody like you know

10:52

writes comments on it and you go back

10:54

and forth and also just the iterative

10:56

process of working with the agent. How

10:58

do you speed up a person's ability to

11:01

look at code and know what to do with

11:02

it? So

11:05

the principles are pretty similar for

11:07

both of those, but the exact way you

11:09

implement them is a little bit

11:10

different. What you care about the most

11:13

is making each individual response fast.

11:16

You don't actually want to shorten the

11:18

whole timeline of code review generally

11:20

because code review is a quality

11:22

process. It's the same thing with agent

11:24

iteration. Like what you want with agent

11:26

iteration is you want to get to the

11:28

place where you've got the right result.

11:32

You don't want to like just be like,

11:33

"Well, I guess I've hit my 5minute time

11:35

limit, so I'm going to check in this

11:36

garbage that doesn't work, right? You

11:38

you But what you do want is you want the

11:40

iterations to be fast." Not just the

11:42

agents iterations, but the human

11:45

response time to the agent to be fast.

11:48

And in order to do that, they have to

11:50

get very good at doing code reviews or

11:51

knowing what the next step is to do with

11:53

a lot of code. At the big code review

11:56

level, one thing that I see that I think

11:57

is sort of a social disease that has

12:00

infected a lot of companies is when

12:02

people want PR reviews, they just send a

12:04

Slack message to a team channel and say,

12:06

"Hey, could one of the 10 of you review

12:08

my PR?" And what and you know what that

12:10

means is one person does all those

12:12

reviews. That's what really happens

12:14

there. There's like when you look at the

12:15

code review stats of teams like that,

12:17

there's one person who has like 50 and

12:19

the other person have like three, two,

12:21

five, seven because there's just one

12:23

person who's like super responsive. So,

12:25

but what that means is if you start

12:27

generating dramatically more PRs, that

12:29

one person cannot handle the load. You

12:30

have to distribute it and really the

12:32

only way to distribute it is to assign

12:33

it to specific individuals, have a

12:36

system that distributes it among those

12:37

individuals and then set SLOs's that

12:39

have some mechanism of enforcement. And

12:42

another thing is like that GitHub, for

12:44

example, is not very good at today is

12:46

making it clear whose turn it is to take

12:48

action. Like I left a bunch of comments

12:51

on your PR. Uh,

12:54

you now responded to one of my comments.

12:56

Should I come back again now? Oh, wait.

12:58

No, no, now you pushed a no change.

13:00

Should I come back now? Okay. No, no,

13:03

now you've responded to more comments.

13:05

What I rely on mostly is people telling

13:06

me in Slack, I'm ready for you to review

13:08

my PR again, which is a terrible and

13:09

inefficient system.

13:14

And another thing you got to think about

13:16

a lot is the quality of code reviews.

13:20

And I mean this once again both for the

13:22

individual developers doing it with the

13:23

agent and the people doing it in the

13:27

code review pipeline.

13:29

You

13:31

have to keep holding a high bar. I know

13:33

that people have other opinions about

13:34

this. And yes, depending on the timeline

13:37

that you expect your software to live,

13:38

you might not need as much software

13:40

design. Like look, it's software design

13:41

is not the goal of perfection. It's a

13:43

goal of good enough and better than you

13:45

had before, right? But sometimes good

13:48

enough for a very long lived system is a

13:50

much higher bar than people expect it to

13:52

be.

13:54

And if you don't have a process that is

13:56

capable of rejecting things that

13:58

shouldn't go in, you will very likely

14:01

actually see decreasing productivity

14:02

gains from your agentic coders over time

14:05

as the system becomes harder and harder

14:07

for both the agent and the human to work

14:08

with.

14:10

The problem is this. In many companies,

14:13

we have the people who are the best code

14:15

reviewers not doing any of their time

14:18

doing code review. They are spending all

14:20

their times in meetings doing highle

14:23

reviews doing strategy. And so we aren't

14:27

teaching junior engineers to be better

14:30

software engineers and to be better code

14:32

reviewers. So we have to have some

14:33

mechanism that allows the people who are

14:35

the best at this to do this through

14:37

apprenticeship. If somebody else has a

14:39

better way of doing this than doing code

14:40

reviews with people, I would love to

14:42

know because in the 20 plus years that

14:44

I've been doing this, I have never found

14:45

a way to teach people to be good code

14:47

reviewers other than doing good code

14:49

reviews with them.

14:54

Now, if you do if you don't do all the

14:57

things that I talked about, what is the

14:59

danger? The danger is you take a bad

15:03

codebase with a confusing environment.

15:06

You give it to an agent or a developer

15:08

working with that agent. The agent

15:11

produces

15:12

relative levels of nonsense

15:16

and the developer experiences more or

15:18

less frustration and depending on how

15:20

persistent they are at some point they

15:22

give up and they just send their PR off

15:24

for review. They're like, I think it

15:26

works. Right? And then if you have

15:29

lowquality code reviews or code

15:31

reviewers who are overwhelmed, they go,

15:33

I don't know. I don't know what to do

15:35

with this. I guess it's okay. And you

15:37

just have lots and lots and lots of bad

15:39

rubber stamp PRs that keep going in and

15:42

you get into a vicious cycle where what

15:44

I expect to occur and what my prediction

15:46

is is if you are in this cycle, uh, your

15:48

agent productivity will decrease

15:49

consistently through the year. On the

15:52

other hand, we live in an amazing time

15:56

where if we increase the ability of the

15:58

agents to help us be productive, then

16:01

they can actually help us be more

16:03

productive and we actually get into a

16:05

virtuous cycle instead where we actually

16:08

accelerate more and more and more and

16:09

more. And yes, some of these things

16:11

sound like very expensive fundamental

16:13

investments, but I think now is the time

16:16

to make them because now is one of the

16:18

times you're going to have the biggest

16:20

differentiation in your business in

16:22

terms of software engineering velocity

16:23

if you can do these things versus other

16:25

in industries or companies that can't

16:27

structurally do these things.

16:30

So to summarize, here's a few things.

16:34

Not literally everything in the world

16:34

you can do that's no regrets, but you

16:37

can standardize your development

16:38

environments. You can make CLIs or APIs

16:40

for anything that needs a CLI or API.

16:42

Those CLIs or APIs have to run at

16:44

development time. By the way, too,

16:46

another big thing that people miss is

16:47

sometimes they have things that only run

16:49

in CI. If you're CI takes 15, 20 minutes

16:53

and you know, agents are like way more

16:56

persistent and patient than a human

16:58

being is. So like, but they're also more

17:00

errorprone than human beings are. So

17:01

like they will run the thing and then

17:03

run your test and then run a thing and

17:04

then run your test and then run a thing

17:05

and then run your test and they'll do it

17:06

like five times in a row. If that takes

17:08

20 minutes, your developers productivity

17:10

is going to be shot to heck. Whereas, if

17:13

it takes 30 seconds, you're going to

17:15

have a they're going to have a much

17:16

better experience. You can improve

17:18

validation. You can refactor for both

17:20

testability and the ability to reason

17:21

about the codebase. You can make sure

17:24

all the external context and your

17:25

intentions, the why is written down. You

17:27

can make every response during code

17:28

review faster. And you can raise the bar

17:30

on code review quality. But if you look

17:32

at all of these things, there's one

17:34

lesson and one principle that we take

17:36

away from all these things that covers

17:37

even more things than this. And it's

17:40

basically that what's good for humans is

17:43

good for AI. And the great thing about

17:46

this, one second. The great thing about

17:48

this is that it means that when we

17:51

invest in this thing, we will help our

17:54

developers no matter what. Even if

17:56

sometimes we miss on helping the agent,

17:57

we are guaranteed to help the humans.

18:00

Thank you very much.

18:02

>> [music]

Interactive Summary

The speaker discusses the unprecedented pace of change in developer experience over the last 12 months, leading many to question their investments and often default to coding agents as the sole solution. However, agents alone are insufficient. The presentation outlines "no regrets investments" that benefit both human developers and AI agents, focusing on two key questions: how to leverage developer experience principles for lasting value and how to maximize AI agent value. Key areas of investment include standardizing development environments with industry-standard tools and mainstream languages, providing agents with CLIs or APIs for action, and ensuring high-quality, clear validation and error messages. Structuring codebases for testability and comprehensibility, and documenting external context and design intentions ('the why') are also critical. The shift in software development means engineers spend more time reading code, making code review a primary job and a bottleneck due to increased PRs from agentic coding. To address this, improving code review velocity and quality through distribution, clear ownership, and maintaining high standards is essential. Critically, experienced reviewers must be involved in teaching junior engineers. Failing to make these foundational investments risks a vicious cycle of decreasing productivity, while making them leads to a virtuous cycle of accelerated growth and competitive advantage. The core principle is that investments benefiting humans will also benefit AI, ensuring value regardless of agent effectiveness.

Suggested questions

8 ready-made prompts