WEBVTT
Kind: captions
Language: en

1
00:00:11.934 --> 00:00:23.834
<v Kent Beck>I'd like to thank Augment Code for sponsoring this first season of Still Burning. I can remember my excitement when I saw my first IDE. You could find anything, you could

2
00:00:23.834 --> 00:00:28.834
<v Kent Beck>change any code, and I was just so excited. But the era

3
00:00:28.834 --> 00:00:37.767
<v Kent Beck>of making changes to code like a watchmaker is gone. Most of the changes now are going to be made by the Genie, and Augment

4
00:00:37.767 --> 00:00:45.534
<v Kent Beck>Code is helping go beyond the IDE with their new intent product. Programmers stay oriented, they

5
00:00:45.534 --> 00:00:54.033
<v Kent Beck>keep learning, they see what's happened, they make strategic decisions, and meanwhile, agents go and do the detailed work.

6
00:00:54.033 --> 00:01:03.467
<v Kent Beck>The gap between an idea and a running system has never been narrower, and that's exciting. The gap between a running system

7
00:01:04.567 --> 00:01:05.667
<v Kent Beck>and a mature,

8
00:01:05.667 --> 00:01:10.200
<v Kent Beck>fully running system is the same as it ever was.

9
00:01:10.200 --> 00:01:19.033
<v Kent Beck>And the difference is not feature set, the difference is trust. Security, auditability, identity, the list of items a CISO

10
00:01:19.033 --> 00:01:35.167
<v Kent Beck>hands you before your system will run in their system. Teams try to tackle this themselves. How hard could it be? It turns out that this is both a very important problem and a very complex problem.

11
00:01:35.167 --> 00:01:40.767
<v Kent Beck>That's where WorkOS comes in. Single sign-on, identity providers,

12
00:01:40.767 --> 00:01:50.200
<v Kent Beck>role-based access management. WorkOS gives you the infrastructure to trust the systems that you're excited to have built.

13
00:01:50.200 --> 00:02:19.467
<v Kent Beck>Welcome to a very special edition of Still Burning, where we talk to geeks who still care and are still doing something about it. And I have a very special geek to share with you. My oldest, Bethany Andrews Beck, who's running for Congress in the 6th Congressional District of Massachusetts, and is also a high-level geek. Beth, welcome so much to Still Burning.

14
00:02:19.467 --> 00:02:21.334
Thank you so much for having me.

15
00:02:21.334 --> 00:02:23.601
<v Kent Beck>Yeah, I've known you for a while.

16
00:02:23.601 --> 00:02:24.534
Couple years.

17
00:02:24.534 --> 00:02:33.167
<v Kent Beck>Couple years. And so let me start with the question I always ask, which is, when did you first know that you were a geek?

18
00:02:33.167 --> 00:02:42.968
So the first pun I ever made was cheese-related. Okay. And we'd gone to the refrigerator.

19
00:02:42.968 --> 00:02:44.301
<v Kent Beck>Forgive me for not remembering.

20
00:02:44.301 --> 00:02:46.701
I mean, why would you?

21
00:02:46.701 --> 00:02:47.267
(Laughs)

22
00:02:47.267 --> 00:03:01.267
And I said, but that one's cheddar. And I was so proud that you laughed. And that's it. That was the start of all of this.

23
00:03:01.267 --> 00:03:01.901
(Laughs)

24
00:03:01.901 --> 00:03:06.334
<v Kent Beck>Okay. So that's a word geekdom. Right.

25
00:03:07.868 --> 00:03:09.901
<v Kent Beck>How about computer geekdom?

26
00:03:11.334 --> 00:03:12.035
<v Kent Beck>Ooh.

27
00:03:13.100 --> 00:03:24.601
Ooh. I really enjoyed a game called Widget Workshop. Yes. Where you built circuits and programs out of

28
00:03:25.801 --> 00:03:35.167
sort of anthropomorphized, like a switch was a rail switch, and a timer was dropping an elephant on Mars or something.

29
00:03:36.267 --> 00:03:36.667
And

30
00:03:37.501 --> 00:03:46.100
piecing together programs out of fun components. And making it do the thing that you wanted it to do.

31
00:03:47.834 --> 00:03:48.334
<v Kent Beck>And

32
00:03:49.901 --> 00:03:54.035
<v Kent Beck>at what point did you know that not everybody shared these interests?

33
00:03:56.501 --> 00:04:05.801
<v Kent Beck>This is a sad moment of separation in the life of every geek. You think, oh, the world's this amazing place full of puzzles. And then you realize, oh, I'm kind of alone.

34
00:04:05.801 --> 00:04:10.701
Well, I think for me, it was actually interesting. I met,

35
00:04:12.067 --> 00:04:24.035
one of our friends' kids had some learning disabilities. And I was trying to teach him something and it wasn't working. And his brother explained, well, he always teaches,

36
00:04:25.301 --> 00:04:27.801
thinks different. And

37
00:04:29.267 --> 00:04:43.334
I realized that there were ways that other people interacted that were different than me. And to play, to like interact with them, you have to figure out the puzzle of

38
00:04:44.768 --> 00:04:47.200
what is it that they enjoy?

39
00:04:48.334 --> 00:04:51.868
What engages them? Because everybody is interesting in some way.

40
00:04:52.935 --> 00:04:58.868
<v Kent Beck>Now that's a level of empathy that a lot of geeks struggle to achieve. Sounds like you had that early.

41
00:04:58.868 --> 00:05:01.001
People are fascinating.

42
00:05:01.001 --> 00:05:08.067
<v Kent Beck>Oh, God. And I think that helps. People are annoying. And I wish they'd all just... Really? Go away, yes.

43
00:05:08.067 --> 00:05:08.801
Oh.

44
00:05:08.801 --> 00:05:10.200
<v Kent Beck>I mean, not you personally.

45
00:05:10.200 --> 00:05:12.935
I appreciate that. But no, no, I

46
00:05:13.935 --> 00:05:25.701
think of it as the thing that's least, or that's most human. Like the thing that makes us people is the ways in which we're different. And we all bring

47
00:05:26.834 --> 00:05:39.634
something different to whatever collective endeavor we're doing. And there's always something we can't do. Like nobody can fly, right, without help. Yes. And

48
00:05:40.834 --> 00:05:51.501
if you want to achieve things that you can achieve by yourself, then like my capabilities matter. But if I want to achieve something that I can't achieve alone,

49
00:05:52.501 --> 00:05:58.200
then the question is what is the group of people who care about this thing? How do we

50
00:05:59.601 --> 00:06:04.200
collaborate? What makes it enjoyable? What makes it rewarding?

51
00:06:05.267 --> 00:06:06.067
And

52
00:06:07.134 --> 00:06:14.501
it lets us do things that I would get bored if I could only accomplish the things that I can accomplish by myself.

53
00:06:14.501 --> 00:06:16.200
<v Kent Beck>Yeah, okay.

54
00:06:17.434 --> 00:06:21.200
<v Kent Beck>I think I backed into that reluctantly.

55
00:06:23.067 --> 00:06:32.001
<v Kent Beck>Which is probably why I write books and speak and so on, to accomplish more than I can accomplish myself.

56
00:06:33.100 --> 00:06:38.801
<v Kent Beck>So tell me about some of your other geek-toms. You're a multifaceted geek.

57
00:06:38.801 --> 00:06:40.067
I am.

58
00:06:41.100 --> 00:06:51.467
I have started, my degree is in theater. Which is very much the study of people and how do we come together and build stories and

59
00:06:52.734 --> 00:06:54.501
talk about being people.

60
00:06:56.434 --> 00:07:01.401
And all of the context that we bring with that. So I got to study

61
00:07:03.167 --> 00:07:13.200
ancient history to modern day. What are the technologies of clothing? How does that influence what people wear and what that says about them?

62
00:07:16.434 --> 00:07:17.234
It turns out there,

63
00:07:18.334 --> 00:07:21.234
what shirt do I put on in the morning is a fascinating question.

64
00:07:21.234 --> 00:07:25.167
<v Kent Beck>Okay. If you go deep enough. It's not just whatever's on top.

65
00:07:25.167 --> 00:07:27.801
Right. It doesn't have to be. It can be. It can be.

66
00:07:27.801 --> 00:07:28.401
<v Kent Beck>Yeah.

67
00:07:28.401 --> 00:07:28.801
Yeah.

68
00:07:28.801 --> 00:07:32.567
<v Kent Beck>Well, I tend to go beyond the what's on top.

69
00:07:32.567 --> 00:07:33.868
Yeah, yeah.

70
00:07:34.935 --> 00:07:37.301
<v Kent Beck>So I remember the chicken phase.

71
00:07:37.301 --> 00:07:45.001
There was the chickens, yes. Actually, I was telling you with some of my references, like what made why chickens?

72
00:07:45.001 --> 00:07:46.601
<v Kent Beck>That's a great question.

73
00:07:46.601 --> 00:07:51.234
Right. They do fit on not very much land, which helped. Yeah.

74
00:07:52.301 --> 00:07:52.367
And

75
00:07:54.200 --> 00:07:56.134
the roosters really were out to get me.

76
00:07:56.134 --> 00:07:57.067
<v Kent Beck>Yes.

77
00:07:57.067 --> 00:08:01.701
Oh yeah. And so it was exciting in

78
00:08:02.968 --> 00:08:11.234
like slightly terrifying. Stimulating. Like they were quite large compared to small children. Yeah. And then they were delicious.

79
00:08:12.334 --> 00:08:18.801
<v Kent Beck>Yes, we went through that part of the, we completed the cycle of life. Yes, yeah. All the way to dinner.

80
00:08:18.801 --> 00:08:21.701
Yeah, and as a kid, there's

81
00:08:23.067 --> 00:08:32.734
something really real about, like oftentimes you're watching shows about things, or you're reading books about things, or someone's telling you about things.

82
00:08:33.768 --> 00:08:38.534
And the chickens are really there, and those spurs are really sharp.

83
00:08:39.734 --> 00:08:46.334
<v Kent Beck>So you're forced to be present in a way that you aren't if you're just viewing something on a screen. Right.

84
00:08:46.334 --> 00:08:51.634
And then I met other adults who knew lots of things about chickens.

85
00:08:51.634 --> 00:09:01.200
<v Kent Beck>And we're delighted to share them with somebody who looked interested. Right. Because the average person is not gonna get lit up about

86
00:09:03.200 --> 00:09:03.834
<v Kent Beck>chickens.

87
00:09:05.100 --> 00:09:05.734
But I

88
00:09:07.234 --> 00:09:15.467
think one of the things that I bring is that I get really interested in a lot of things. You know, at a facet, one of my friends

89
00:09:16.567 --> 00:09:18.768
leads road repair projects.

90
00:09:18.768 --> 00:09:19.634
<v Kent Beck>Okay.

91
00:09:19.634 --> 00:09:43.001
One time we had a fascinating conversation about the way that they grind down roads before they repave them. Okay. Because he thinks a lot about how do you grind down a road before you repair them. I'm glad somebody does. Right, and I think following your interest is one of the joys of being a geek, is following your curiosity and finding that joy.

92
00:09:44.200 --> 00:09:46.968
What is it that people care about? Because there's always a reason.

93
00:09:48.901 --> 00:09:56.035
Like the through line of all my different interests is that there's always a reason, people do things for reasons.

94
00:09:57.467 --> 00:10:03.935
And there may not be reasons I agree with, there may not be reasons we think of as noble,

95
00:10:05.167 --> 00:10:17.768
there may not be reasons that anyone has thought through, but there's always something that influences you, nudges you, maybe the button's orange instead of blue, and you're more likely to click it by like 20 plus percent.

96
00:10:19.301 --> 00:10:28.167
And when you think about that, then you can go about solving problems like no one's writing tests

97
00:10:29.601 --> 00:10:37.701
in ways that you don't get to if you're starting, if you're not curious about why people aren't writing tests.

98
00:10:37.701 --> 00:10:40.567
<v Kent Beck>Okay, so we've dived right to programming.

99
00:10:41.768 --> 00:10:47.434
<v Kent Beck>What reasons have you found for people not writing tests? I

100
00:10:49.100 --> 00:10:53.968
<v Kent Beck>taught you, your first lessons in programming were to remind me to write tests,

101
00:10:55.001 --> 00:11:14.868
<v Kent Beck>and then you were supposed to remind me if I didn't write the tests. And then I don't know if this actually happened, but I remember it. Clearly being very, you said, do you have a test for that? And I said, oh, honey, we don't need a test for this. And then it broke later and I realized, oh, gah.

102
00:11:14.868 --> 00:11:30.935
It was date printing. Okay. It was printing a date, and it turned out the format that Smalltalk had in its date printer was wrong, which is also, which I remember, because that was like the idea that somewhere down there, there's something that tells it how to print.

103
00:11:31.935 --> 00:11:38.501
I also asked you what a hash function was in that, and you declined to explain hash functions to a nine-year-old.

104
00:11:40.001 --> 00:11:43.601
<v Kent Beck>That shows a lack of imagination on my part for sure.

105
00:11:43.601 --> 00:11:47.901
I mean, you've learned some things, a couple years, I'm like, how would I?

106
00:11:49.601 --> 00:11:50.001
(Laughing)

107
00:11:50.001 --> 00:11:53.100
<v Kent Beck>Yeah, that one still may be beyond my powers.

108
00:11:53.100 --> 00:12:09.501
But that was, yeah, it was, and then I went and got a degree in theater, worked in a hospital, checking people in for a couple of years, waited tables for a bit, and then got my first programming job, and then I didn't write tests for the next seven years.

109
00:12:09.501 --> 00:12:16.001
<v Kent Beck>Okay, so why weren't you writing tests? This is not in a finger-wagging way.

110
00:12:16.001 --> 00:12:18.668
No, no, genuinely, it

111
00:12:20.367 --> 00:12:27.935
was an interesting question because I sort of knew that you were supposed to, right? And then I'm writing-- I did my best. Here I'm writing C++.

112
00:12:29.634 --> 00:12:40.401
There is no testing tool, the off-the-shelf, ready to go, and the IDE that I was using at the time, which was like the free version of

113
00:12:41.935 --> 00:12:43.601
Visual Studio, straight?

114
00:12:44.901 --> 00:13:13.935
So very bare bones, and I didn't have any examples. This was before we had all of the stack overflow on the internet, so this is far enough ago that I was reading things from paper books. Like, later I was working in Java, and I picked up Spring from a book in Japanese, which I do not speak in any way, but all the example code is in English, so I had no context except the code snippets in this paper book to figure out how to make the thing work, right? So in ye dark ages,

115
00:13:14.935 --> 00:13:21.367
how do you figure out what to test, what the format of a test is?

116
00:13:23.134 --> 00:13:43.067
And it wasn't something that I had examples for. And even when I went onto my next job, which was much stronger software development practices, we have 20-year-old code base that's remarkably clean, extremely stable, 1% test coverage.

117
00:13:44.701 --> 00:14:04.634
We had incredibly clean design that let you reason about the code in ways that tended to prevent the worst errors, but we just didn't have those kinds of tests. And what it turned out, part of what it was for me was learning how to write testable code first. Yes. So I learned to write testable code. And then

118
00:14:05.834 --> 00:14:21.467
I, and actually remember someone coming to me and being like, "Oh, I found this feature you wrote "all while ago, and I wanted to tell you "it's beautifully laid out." It was so easy to pick up, understand. It's just, you didn't have any tests for it, but they were really easy to add.

119
00:14:23.534 --> 00:14:29.167
And so I went and I looked at what Tessie wrote. And now I've got examples. And then I

120
00:14:30.301 --> 00:15:00.167
was doing my very first management role ever. And I decided I was just going to like brute force this a little bit. And I started just spending time figuring out how to test this old untest like legacy code that's not written with any idea of Tess in mind. And I just started writing down all of the things I did for that. And I started doing presentations. And every time I'd say, "Well, I'm on the mobile team "and we write Tess."

121
00:15:01.401 --> 00:15:01.935
And we...

122
00:15:01.935 --> 00:15:07.167
<v Kent Beck>It's a remarkably powerful leadership technique. It's to just pretend.

123
00:15:08.567 --> 00:15:17.100
Well, it's a, like, maybe we aren't doing it right now, but we do-ish. So we hope to.

124
00:15:17.100 --> 00:15:23.467
<v Kent Beck>Doing that phrasing of it, if you didn't write Tess, you would feel not part of the mobile team.

125
00:15:23.467 --> 00:15:42.534
Exactly. And so when you don't write a Tess, you think, "Why am I not doing it?" And then, and what happened is I would go into code reviews and instead of pointing out bugs, I would point out the Tess that was missing. So every time someone wrote a Tess, it caught a bug. And that dopamine loop is just so powerful.

126
00:15:42.534 --> 00:15:51.734
<v Kent Beck>Oh yeah, when you write the Tess and you predict red and it comes up red, and it's exactly the exception you predict that it would be.

127
00:15:53.467 --> 00:15:54.935
And for a bunch of the

128
00:15:56.134 --> 00:16:07.267
people I was working with were straight out of school. Yes. So they'd write the Tess not knowing it was gonna be, they didn't realize there was a bug there yet. And so they discover, each Tess is a discovery.

129
00:16:07.267 --> 00:16:07.935
<v Kent Beck>Right.

130
00:16:09.935 --> 00:16:15.567
<v Kent Beck>Is that a bigger rush than having the Tess pass when you think it's gonna pass?

131
00:16:15.567 --> 00:16:28.067
Oh yeah. Like, oh, it worked great. That's nothing like, I think what's really exciting is when you discover something that you didn't expect to see.

132
00:16:29.134 --> 00:16:30.134
<v Kent Beck>Yes.

133
00:16:31.401 --> 00:16:41.501
<v Kent Beck>Yeah, yeah, especially if you can then look at it and go, "I'm so glad that didn't make it into production." Right,

134
00:16:42.968 --> 00:16:50.834
<v Kent Beck>yeah. So now how can we get the genie to get excited about writing Tess predicting red?

135
00:16:51.968 --> 00:16:55.668
<v Kent Beck>It's actually red, woo, it packs itself on the back.

136
00:16:55.668 --> 00:16:58.234
So first it needs an endocrine system.

137
00:16:59.567 --> 00:17:18.734
So genies don't have enthusiasm, excitement. Like those things are things that we give to, like I think right now, or I think of the collaboration, the thing that exists is us plus the genie. Yeah. It's not, the computer is just a lump that sits there.

138
00:17:19.801 --> 00:17:41.834
And like a human brain is never gonna just sit there because we're constantly seeing things and hearing things and experience and having feeling hungry, maintaining our blood pressure, you know, avoiding passing out all of these things that our bodies do all the time. And the computer doesn't have any of that to do.

139
00:17:44.267 --> 00:17:49.301
And so we are the thing that makes it excited about writing Tess.

140
00:17:49.301 --> 00:17:54.701
<v Kent Beck>So why is it that there's such a temptation to

141
00:17:55.935 --> 00:17:57.668
<v Kent Beck>make like

142
00:17:59.935 --> 00:18:23.701
<v Kent Beck>agents, it was gonna be this independent thing that was gonna do a bunch of work. And then we realized, oh no, it's actually in a feedback loop. And now the next version of that is looping. We just say, well, just keep doing this until you're successful. We keep trying to write ourselves or draw ourselves out of the picture. Where does that,

143
00:18:24.734 --> 00:18:26.734
<v Kent Beck>where's the motivation for that come from?

144
00:18:26.734 --> 00:18:31.834
It's an interesting question. One thing I keep talking about is,

145
00:18:33.100 --> 00:18:46.001
because one thing that comes up is like, oh, we can have medications prescribed by agents. Well, no, you can have, what you're saying is patients will prescribe their own medications as long as they use this program to do it.

146
00:18:47.601 --> 00:18:48.301
And

147
00:18:49.401 --> 00:18:57.134
if you skip that part, you miss that the company writing the agent isn't taking any responsibility.

148
00:18:57.134 --> 00:18:58.301
<v Kent Beck>Right.

149
00:18:58.301 --> 00:18:58.634
Right.

150
00:18:59.768 --> 00:19:15.935
They aren't saying, oh, I, like if you go to the doctor, you may not even have been complaining about blood pressure. And if your blood pressure is high, they will say you need to take this thing, right? And it's a different,

151
00:19:17.868 --> 00:19:30.035
when I think there's the 10, there's a nervousness about humans. Like there's a nervousness about including humans just in things in general. We like to talk about

152
00:19:34.868 --> 00:19:44.634
automated scientific things as not involving people. Objective performance reviews. Yes. Are one of my bugaboos. Because if you

153
00:19:46.067 --> 00:19:49.701
don't have a subject, there is nothing judging anyone.

154
00:19:49.701 --> 00:19:50.334
<v Kent Beck>Right.

155
00:19:50.334 --> 00:19:53.734
Right. And you can't--

156
00:19:53.734 --> 00:19:56.367
<v Kent Beck>Just say nothing that they're incredibly easy to gain.

157
00:19:56.367 --> 00:20:40.100
Oh, right. Like also the, it's a, well, as soon as you tell people that something's objective, you can get away with making it incredibly biased and they will completely look over that because, oh, clearly it's objective. And so you get more biased systems by pretending that they are objective than admitting where subjectivity matters. And actually we don't care whether someone is objectively good at their job because we don't have a platonic ideal of a job for them to do. We have this particular job for them to do. And if they are bad at that job, it doesn't matter how good they are at some perfect job out in thought space, right? We actually have to be good at the thing that we're trying to accomplish.

158
00:20:41.167 --> 00:20:45.134
And that's not an objective goal. It's the thing that's a subjective goal.

159
00:20:46.768 --> 00:20:55.501
<v Kent Beck>Plus the system is so complicated. There's all these feedback loops and there's lots of other people involved and there's long-term versus short-term.

160
00:20:55.501 --> 00:20:57.601
And this is how you get,

161
00:20:59.801 --> 00:21:04.334
you get systems that reward behaviors that you don't actually want out of all of it.

162
00:21:05.401 --> 00:21:09.768
But I think that there's a tendency to avoid responsibility.

163
00:21:10.801 --> 00:21:18.367
We don't wanna feel responsible for the things that are happening, especially if they're not our, we don't feel like they're our faults.

164
00:21:18.367 --> 00:21:28.035
<v Kent Beck>Yeah, well that hurts to be, to have consequences flow to you for something you didn't do. Right. That just triggers all of the, this is unfair.

165
00:21:28.035 --> 00:21:46.200
Which is the job of management. Yeah. And it's why the transition from writing code to management is so hard for so many people is because you go, now you are responsible for things you have no control over. And the more control you try to have over them, the worse the outcomes are going to be.

166
00:21:46.200 --> 00:22:19.167
<v Kent Beck>Yes, which makes the, this shift to, let's just have the managers and we'll eliminate the individual contributors. That responsibility comes crashing back a hundred percent. Yeah. This reminds me of a story I read the other day where a autonomous vehicle whipped an illegal U-term right in front of a police car. And the police car pulled it over and it pulled over and they went to give the ticket and there's nobody in the car. Yeah. It's like,

167
00:22:21.067 --> 00:22:30.968
<v Kent Beck>somebody, it was illegal, it was unsafe. There needs to be consequences for somebody and there's just nobody to have consequences for.

168
00:22:30.968 --> 00:22:31.567
Yeah.

169
00:22:32.601 --> 00:22:46.301
Yeah, and if you, when we've written a set of rules for a world where only people take action and you can't erase yourself, because someone made that decision but it wasn't there and it wasn't then.

170
00:22:46.301 --> 00:22:46.701
<v Kent Beck>Yeah.

171
00:22:46.701 --> 00:22:52.401
Sometime in the past, some programmer, let that be a constraint that could be relaxed.

172
00:22:54.401 --> 00:23:29.701
And sometimes you want those, but I wrote, I was writing, when I was first writing self-driving car software back in 2008, we were doing the DARPA Grand Challenge and they would take the cars and they'd run them through an urban environment. And we had programmed ours, if you get stuck, if you can't move, relax constraints until you, you figure out how to get yourself out of it. And they had a place where they had blocked off a road with like a temporary roadblock. So our car sits there and thinks for a little while. And then the constraint it relaxed was the one that says, don't drive on sidewalks. So it just drove up on the sidewalk and drove around.

173
00:23:30.801 --> 00:23:31.668
<v Kent Beck>How creative.

174
00:23:31.668 --> 00:23:32.434
Right.

175
00:23:32.434 --> 00:23:33.401
(Both Laughing)

176
00:23:33.401 --> 00:23:35.301
<v Kent Beck>You could be so proud at that moment.

177
00:23:35.301 --> 00:23:45.668
Right, and you're like, I understand what my software just did. And also that was not what I would have liked my software to do in that moment, right? So it

178
00:23:46.768 --> 00:23:50.534
helps to have interacted with systems like

179
00:23:51.534 --> 00:24:04.200
this in some ways for a very long time. Because if you just encounter it for the first time, it feels like magic. Yeah. It feels like something that usually you only get when there's a mind behind it.

180
00:24:06.035 --> 00:24:17.968
And so the simplest explanation is, oh, look, I'm talking to a person. Or, oh, look, the computer is driving the car. Well, no, the software some programmer wrote at some point is driving this car.

181
00:24:17.968 --> 00:24:22.968
<v Kent Beck>And the software some programmer wrote under some set of incentives

182
00:24:24.534 --> 00:24:25.868
<v Kent Beck>created by

183
00:24:26.935 --> 00:24:39.734
<v Kent Beck>the organization they were in, and also the influence of what they ate that morning and whether they had a fight with their spouse. Like there's a lot that goes into it.

184
00:24:39.734 --> 00:24:41.167
And venture capital.

185
00:24:41.167 --> 00:24:48.067
<v Kent Beck>Right, what financial arrangements where that creates incentives also.

186
00:24:48.067 --> 00:24:58.334
Which other companies the board is invested in. What laws, tax, what tax laws? Like we saw when Trump cut

187
00:24:59.534 --> 00:25:05.968
the amount of research and development deductions in year one that

188
00:25:07.001 --> 00:25:10.834
it changed how companies were structuring their engineering departments.

189
00:25:12.868 --> 00:25:16.567
<v Kent Beck>And that's gonna flow through to all the downstream decisions.

190
00:25:16.567 --> 00:25:19.301
And so I think in some ways,

191
00:25:20.701 --> 00:25:48.401
one of my favorite shows is "The Good Place." And the conclusion of the show along the way is, the world is so complicated that we can no longer tell what the outcome of any of our decisions are. So how could you possibly know whether it's a good decision or a bad decision? And I think that that's overstating it because usually we can figure out why. It's very easy to feel like these are things we can't change.

192
00:25:49.534 --> 00:26:07.901
Oh, I get to tax like, oh well. I think this is where being a geek helps because you can get around a lot of these with creativity. Whether it's cultivating a sense of resentment. Oh, they told you to do your job badly.

193
00:26:09.234 --> 00:26:17.768
I think almost everybody's been asked at some point, well, how long would it take you to write if you didn't write the test? Yeah, that's, yeah. Even if the answer is

194
00:26:19.601 --> 00:26:24.834
one and a half times as long as it's gonna take me when I don't have to debug all of those bugs.

195
00:26:25.935 --> 00:26:31.434
But just channeling that into like doing the thing more

196
00:26:32.668 --> 00:26:39.301
is a useful instinct to help people. Oh, instead of getting mad about it,

197
00:26:40.567 --> 00:26:46.267
just realize it's your fingers on the keyboard and write more tests out of defiance.

198
00:26:48.267 --> 00:26:54.968
<v Kent Beck>I remember one of the favorite moments you told me there's a kind of

199
00:26:56.601 --> 00:27:57.134
<v Kent Beck>a workers strike called work to rule. Whereas if you have all these rules about exactly how you're supposed to do everything in a factory and the strike is the workers do exactly what it says in the book and nothing else. And your proposal was that we would have programmers perform one of these work to rule strikes and they had to refactor and they had to write tests and they had to integrate frequently and they had to collaborate. And the, but the problem with that as a strike technique is that you'd be so much more productive as a consequence. Right, yeah. Oh, yeah. We do know how to write good software, which is the title of a talk that we gave together. One of my highlights of my career was doing a keynote with you. And you had come up with this metaphor of the forest and the desert as a way to explain the difference.

200
00:27:58.534 --> 00:28:10.534
<v Kent Beck>Some people think that they're, you can write some tests, you can not write some tests and doesn't really change anything. Like it's a smooth transition and maybe it's a little worse or a little bit better.

201
00:28:11.801 --> 00:28:12.334
<v Kent Beck>And I think

202
00:28:14.634 --> 00:28:18.668
<v Kent Beck>we share an optimism that no, things really could be much better.

203
00:28:22.834 --> 00:28:28.167
<v Kent Beck>And we're baffled sometimes that people choose not to make, they choose worse.

204
00:28:29.801 --> 00:28:31.467
<v Kent Beck>Everybody can be better off.

205
00:28:31.467 --> 00:28:36.001
Well, depending on what we think better is.

206
00:28:36.001 --> 00:28:36.567
<v Kent Beck>Yes.

207
00:28:36.567 --> 00:28:41.001
And this is where having that instinct of asking why,

208
00:28:42.834 --> 00:29:10.501
like what is different about this? Is there is a useful mental loop to have of, oh, the people do things that don't seem to make any sense. Okay, what's the reason? And that's how we came to the forest and desert was asking why, so you came up with this way of writing software. Yeah, and then people proceeded to not do it. Yeah.

209
00:29:12.501 --> 00:29:17.301
And in fact, teams would do it. Be successful at building software and get fired.

210
00:29:17.301 --> 00:29:18.935
<v Kent Beck>Yep, over and over.

211
00:29:18.935 --> 00:29:27.768
Over and over. Because it didn't take into account what it was that management actually wanted, which wasn't working software.

212
00:29:29.100 --> 00:29:38.935
<v Kent Beck>Yeah, yeah, yeah, productivity was not the point. Reliability was not the point. You can deliver those, more of those things and less of other stuff

213
00:29:40.434 --> 00:29:41.367
<v Kent Beck>and then you get fired.

214
00:29:41.367 --> 00:29:41.868
Right.

215
00:29:43.567 --> 00:29:46.601
Which is part of why I'm less

216
00:29:47.668 --> 00:29:55.401
worried about our jobs than some people. I think the thing the AI agents do give managers is a sense of control.

217
00:29:56.501 --> 00:29:59.001
They do exactly what they're told, ish.

218
00:29:59.001 --> 00:29:59.868
<v Kent Beck>Yes.

219
00:29:59.868 --> 00:30:02.467
Not aspiring to mediocrity.

220
00:30:02.467 --> 00:30:03.035
<v Kent Beck>Yes.

221
00:30:04.567 --> 00:30:06.634
<v Kent Beck>They hope to rise to the level of mediocre.

222
00:30:06.634 --> 00:30:09.534
Yeah, they're trying to get to average.

223
00:30:10.534 --> 00:30:13.167
But they will do what you tell them to.

224
00:30:14.467 --> 00:30:24.167
And you get to feel like you're in control of this set of things. But that also means that it's your fault when it doesn't work.

225
00:30:24.167 --> 00:30:24.534
<v Kent Beck>Yeah.

226
00:30:25.534 --> 00:30:32.534
And it means that if it's not working, you don't have

227
00:30:36.200 --> 00:30:46.768
collaborative levers to pull. Right. Right, one of the things I do as a developer is talk to executives and say, "Ah, if you would like more of this thing,

228
00:30:48.634 --> 00:30:56.167
you're telling the developers this and so they are never going to give it to you." If you stop saying this, you can get the thing you want.

229
00:30:58.768 --> 00:31:05.768
<v Kent Beck>So what awakened the geek in you around politics?

230
00:31:07.901 --> 00:31:23.567
A little bit, Howard Dean's campaign was the first one that spoke to the issues I was seeing. And he told the story of here is why things are the way they are and here's how they could be different.

231
00:31:24.601 --> 00:31:35.467
And was talking about problems that I saw and then other people didn't seem to think were problems. And I think that's a very powerful moment.

232
00:31:35.467 --> 00:31:36.267
<v Kent Beck>Do you have an example?

233
00:31:36.267 --> 00:31:50.367
Like student debt. Okay, this was-- Housing prices back before that was a thing. Like we were talking about it now, right? Many, many years later.

234
00:31:51.768 --> 00:31:56.601
And it was partially that he was ahead of his time. So he did not have, he was telling

235
00:31:57.668 --> 00:32:00.701
a story that resonated with the people who had already noticed.

236
00:32:02.267 --> 00:32:05.901
But he was, if you're the first person telling a story,

237
00:32:07.768 --> 00:32:10.001
your audience is gonna be a lot more limited.

238
00:32:11.401 --> 00:32:12.134
And--

239
00:32:12.134 --> 00:32:13.901
<v Kent Beck>Well, you just sound like a whack job.

240
00:32:13.901 --> 00:32:18.868
Or you just sound like a whack job, which is why you go yee-haw and then everyone makes fun of you for a while.

241
00:32:20.035 --> 00:32:21.234
But the,

242
00:32:24.067 --> 00:32:43.834
so that started it. And then it was really the Occupy movement because we had this very concrete problem of a lot of people were out of work. So 18% of millennials did not have jobs. And I started talking about cutting unemployment benefits after they had bailed out the banks.

243
00:32:45.501 --> 00:32:51.035
And it started very simply. Someone was just like, "Hey, show up at Boston Commons tomorrow, we're all mad."

244
00:32:53.467 --> 00:33:18.634
And so he showed up and there were a lot of people there. And there were some people who had some techniques or how do you get a huge group of random strangers to make a decision? And so we decided where we were gonna go. And then we started taking, we were feeding people. We passed health inspections, right? Figuring out the basic logistics of having a lot of people in one place.

245
00:33:19.834 --> 00:33:38.901
Gives people something concrete to do together. Well, you're also talking about your political, like why would you spend your time being out here in the cold, in Boston? Like what brought you here? Because nobody was there because they were happy with how things were going.

246
00:33:38.901 --> 00:33:42.567
<v Kent Beck>Right, it was not a rave. Right, right.

247
00:33:43.734 --> 00:33:49.567
And realizing that lots of people independently have similar problems.

248
00:33:51.234 --> 00:33:52.200
And

249
00:33:53.868 --> 00:33:58.534
then I took those same technique and there are people who have tools we can use to solve them.

250
00:33:58.534 --> 00:34:00.301
<v Kent Beck>So do you have examples?

251
00:34:02.834 --> 00:34:21.634
Yeah, so one technique I use, I used a lot at work is the, I call it the Guild of Guilds. Because there's the idea that in tech companies you get together a bunch of people who work on similar kinds of things. Maybe they all write front end code, maybe they all interact with a particular

252
00:34:22.734 --> 00:34:37.567
analytic system or work on a particular code base. And those people get together, even if they're on different teams doing different things, you get together every other week, maybe once a month, and talk about what it's like to work on this thing and are there things we could be doing better.

253
00:34:38.935 --> 00:34:49.935
And the trick is to have one extra guild that is the leaders of each of those other guilds. And so then you get them together and they can talk about

254
00:34:51.167 --> 00:35:22.501
what it's like leading one of these. Are you getting a lot of enthusiasm? Are you running into people just yelling at each other? Are you seeing that there's two parts of the company and they're fighting in lots of different guilds? Oh, maybe our incentives are off across the company and we would have never figured that out if it wasn't this group, if we didn't have this group. And then the magic is you make that group open and at each of your other meetings, you say, "Hey, if you're interested in how this meeting runs,

255
00:35:23.668 --> 00:35:36.734
come to the Guild of Guilds because we're gonna talk about it." And whoever shows up is gonna end up leading one of these groups. Like if you are curious about how these groups work,

256
00:35:39.134 --> 00:35:40.801
you will end up in charge of one.

257
00:35:40.801 --> 00:35:42.567
<v Kent Beck>Another form of geekdom.

258
00:35:42.567 --> 00:35:53.367
Right, right. And so it's basically a way of finding the kinds of geeks who are interested in how groups of people do things together. And it creates a

259
00:35:54.401 --> 00:36:06.200
way to get somebody new in so that you're never, someone doesn't quit and then the group falls apart. You always have new people who are interested and enthused and have things they wanna accomplish,

260
00:36:07.467 --> 00:36:17.901
things that they're frustrated by that are motivating them to get involved. And all of that becomes the, makes it into a system that can keep going even after you leave the company.

261
00:36:19.367 --> 00:36:38.567
That's something that I learned because I showed up on the first day and they said, "Hey, anyone who's interested in how this meeting just ran, the facilitation group is meeting over here." And that was a trap. And you do end up immediately with responsibility if you show up to one of the, but it was fun and it was interesting and it's a way to

262
00:36:40.100 --> 00:36:44.035
build teams that can build software together really well.

263
00:36:46.234 --> 00:36:54.234
<v Kent Beck>Yeah, I went through a phase where I was really interested in that kind of group facilitation and I've really gotten away from it and now I'm wishing

264
00:36:55.401 --> 00:37:00.935
<v Kent Beck>that I had a good excuse to get back into it. Tell me this story about your friend, the preschool teacher.

265
00:37:02.401 --> 00:37:23.968
My friend, the preschool teacher. So my friend was telling me about her class and she was teaching a group of kindergartner and one of them figured out how to count beyond the numbers that they had figured, learned how to count. They had learned to count to 30 and they were all counting to 30 together and they finished counting to 30 and he said, "31."

266
00:37:25.868 --> 00:37:30.901
And another little kid looked over and said, "How do you know that?"

267
00:37:32.868 --> 00:37:56.534
And my friend said, "You know, the first kid is smart, "but the second kid is going to go so much further, "so much faster because she wasn't just figuring "the thing out, she was asking, "how do you figure that out?" And so if anyone in the group is smart enough to figure something out, she can take it and figure out what they did and then adopt it herself.

268
00:37:56.534 --> 00:37:57.901
<v Kent Beck>So this is the meta geek.

269
00:37:57.901 --> 00:37:58.834
Yes.

270
00:37:59.935 --> 00:38:01.801
And it is in fact called meta intelligence

271
00:38:02.834 --> 00:38:22.935
and is a thing that you can learn and teach and is an incredibly useful skill to pick up and is something that some kindergartners come with pre-installed and a lot of us have to practice and it means that you can go into any situation

272
00:38:24.035 --> 00:38:34.001
and look at who's being successful and think about why are they being successful? What need are they addressing? Why were they able to

273
00:38:35.234 --> 00:38:46.067
overcome the coefficient of friction wherever they are and start making change? Because the thing that stops us from doing better the most is just we don't think we can.

274
00:38:47.200 --> 00:38:56.067
<v Kent Beck>Right, people don't have that vision. Right. They don't imagine that they can. Right. And then sure enough, you can't.

275
00:38:56.067 --> 00:38:59.935
Right. And sometimes there's a good reason.

276
00:39:01.035 --> 00:39:05.334
Sometimes the reason quit four years ago and nobody has tried since.

277
00:39:06.634 --> 00:39:11.534
And so the way that I tend to find out what stops something from happening is I try it.

278
00:39:12.701 --> 00:39:23.267
And it means that you can't treat, I don't treat failure as a failure. Failure is just me figuring out what was gonna stop me. And then sometimes nothing does and that's boring. But--

279
00:39:24.334 --> 00:39:24.367
(Laughing)

280
00:39:24.367 --> 00:39:33.467
<v Kent Beck>You fail to fail. Yeah. And then you succeed. Yeah, right. Got it. Okay, last question. What is it that keeps you up at night?

281
00:39:35.401 --> 00:39:39.367
<v Kent Beck>Oh. Yeah, this is a nasty question to finish on, but.

282
00:39:40.801 --> 00:39:44.200
<v Kent Beck>I just got started asking it and then I can't stop.

283
00:39:45.768 --> 00:39:53.634
I think the thing that's so, there's a lot of possible worst case scenarios.

284
00:39:54.701 --> 00:39:58.834
And I'm pretty good at thinking up worst case scenarios.

285
00:39:58.834 --> 00:39:59.768
(Laughing)

286
00:39:59.768 --> 00:40:03.567
And then sometimes they come true and it's,

287
00:40:05.668 --> 00:40:27.868
yeah, I was certainly unfortunate. But it also means that I'm less overwhelmed than other people by what's happening. And so the case I'm most concerned about is not the robots do whatever they want. It's they do exactly what some people told them to do.

288
00:40:29.401 --> 00:40:35.434
Because we know that there are people out there who don't care about the vast majority of humanity.

289
00:40:36.768 --> 00:40:54.768
We know there are people who care about their own power over other people. And we are building technologies that could be a personal army, where you no longer need to collaborate with other people to commit mass atrocities. You just need enough money to do it yourself.

290
00:40:58.334 --> 00:41:03.035
<v Kent Beck>So bring thoughts. Thank you best so much. I appreciate it.

291
00:41:04.267 --> 00:41:05.334
(Laughing)

292
00:41:05.334 --> 00:41:07.901
<v Kent Beck>And that's it. Thank you so much for listening.

293
00:41:09.234 --> 00:41:09.501
<v Kent Beck>Thank you.