1
00:00:01,080 --> 00:00:04,799
Speaker 1: How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05,360 --> 00:00:08,560
Become a patron for just five dollars a month. You

3
00:00:08,599 --> 00:00:11,320
get access to a private RSS feed where all the

4
00:00:11,359 --> 00:00:14,560
shows have no ads. Twenty dollars a month, we'll get

5
00:00:14,599 --> 00:00:18,440
you that and a special dot NetRocks patron mug. Sign

6
00:00:18,519 --> 00:00:22,120
up now at Patreon dot dot NetRocks dot com.

7
00:00:22,160 --> 00:00:24,679
Speaker 2: Hey, Carl and Richard here with your twenty twenty four

8
00:00:24,839 --> 00:00:26,000
NDC schedule.

9
00:00:26,320 --> 00:00:29,640
Speaker 1: We'll be at as many NDC conferences as possible this year,

10
00:00:29,960 --> 00:00:33,200
and you should consider attending no matter what. The Copenhagen

11
00:00:33,240 --> 00:00:37,640
Developers Festival happens August twenty sixth through the thirtieth. Tickets

12
00:00:37,679 --> 00:00:40,719
at Cphdevfest dot com.

13
00:00:40,880 --> 00:00:44,719
Speaker 2: Ndcporto is happening October fourteenth through the eighteenth. Tickets at

14
00:00:44,799 --> 00:00:46,600
Ndcporto dot com.

15
00:00:46,600 --> 00:00:58,920
Speaker 3: We'll see you there, we hope.

16
00:01:01,159 --> 00:01:06,040
Speaker 1: Hey, guess what, it's dot net rocks number one four

17
00:01:06,480 --> 00:01:09,319
h So it's almost the beginning of World War One.

18
00:01:09,319 --> 00:01:13,599
Speaker 2: That's it. Sure we are, I'm doing this for a while.

19
00:01:13,680 --> 00:01:15,599
Just wait to use you the comment today, friend, you'll

20
00:01:15,640 --> 00:01:16,400
you'll laugh.

21
00:01:16,519 --> 00:01:19,280
Speaker 1: Oh that's gonna be good. Well, anyway, I'm Carl Franklins,

22
00:01:19,319 --> 00:01:23,280
Richard Campbell, and we're going to be talking to Ulrical

23
00:01:23,319 --> 00:01:27,760
Melgren in a few minutes. But first let's do that

24
00:01:27,840 --> 00:01:30,879
thing we love with a doo dooo dudes. Music? Better

25
00:01:30,920 --> 00:01:40,799
know a framework? All right? Man? What do you got? So?

26
00:01:41,200 --> 00:01:44,120
Our friend Simon Kropp sent me this. It's not as repo,

27
00:01:45,000 --> 00:01:48,280
it's Tyler Brinks and the name of it is Sequel

28
00:01:48,359 --> 00:01:54,920
Parser dash CS. It's an extensible sequel lexer and parser

29
00:01:55,000 --> 00:01:57,840
for dot net. Interesting. Yeah, it was ported from a

30
00:01:57,959 --> 00:02:02,719
Rust project. Right, you parsequel statements into an abstract syntax

31
00:02:02,760 --> 00:02:06,400
tree and there you go, and now you can, you know,

32
00:02:07,239 --> 00:02:08,919
querry your way around it. Interesting.

33
00:02:09,199 --> 00:02:09,400
Speaker 3: Cool?

34
00:02:09,439 --> 00:02:11,240
Speaker 2: Why do I want this? What's wrong with t sql?

35
00:02:11,400 --> 00:02:14,400
Speaker 1: Well some of us aren't tseql gods, such as yourself Richard.

36
00:02:14,879 --> 00:02:16,759
But I'm a god of anything good. Well you know

37
00:02:17,319 --> 00:02:18,039
I think you are.

38
00:02:18,800 --> 00:02:21,120
Speaker 2: But okay, just another way to get at the data.

39
00:02:21,319 --> 00:02:24,360
Speaker 1: Yep. I love it. And you know that's it and

40
00:02:24,479 --> 00:02:26,759
if you need it, you need it. That's what I think.

41
00:02:26,960 --> 00:02:28,400
That's fair. I buy that.

42
00:02:28,560 --> 00:02:28,960
Speaker 3: Yeah.

43
00:02:29,120 --> 00:02:31,159
Speaker 1: So who's talking to us today, Richard? Well, you know,

44
00:02:31,199 --> 00:02:31,439
I know.

45
00:02:31,400 --> 00:02:34,159
Speaker 2: We're talking about MOB programming, right yeah, And we've talked

46
00:02:34,159 --> 00:02:36,639
about mob programming before, so I figured I'd go back

47
00:02:36,719 --> 00:02:40,400
and what he's out of coincidence? But by the way,

48
00:02:40,439 --> 00:02:42,199
what he's still doing his thing, he's doing he's still

49
00:02:42,199 --> 00:02:45,319
doing workshops, he's out there. Yeah, by coincidence. The last

50
00:02:45,319 --> 00:02:47,800
time we talked about mob programming was in twenty thirteen

51
00:02:47,879 --> 00:02:51,159
on episode nine to twelve. Oh my gosh, now we

52
00:02:51,840 --> 00:02:56,840
published nineteen twelve today when we're recording this, Yeah, on

53
00:02:56,879 --> 00:03:00,360
August twenty seconds, so literally a thousand episodes ago.

54
00:03:01,240 --> 00:03:02,240
Speaker 1: We did something weird.

55
00:03:02,319 --> 00:03:05,439
Speaker 2: We actually talked to an entire mob, which included Woody

56
00:03:05,560 --> 00:03:10,479
Zoo right about mob programming. And actually we had a

57
00:03:10,479 --> 00:03:12,919
ton of comments on that show, so I figured I'd

58
00:03:12,960 --> 00:03:14,680
drag out a ten year old's comment. I mean, what's

59
00:03:14,719 --> 00:03:15,319
the big deal?

60
00:03:15,800 --> 00:03:18,960
Speaker 1: Really, it's a very American thing, right, It's like, oh,

61
00:03:19,039 --> 00:03:22,159
you like pair programming, how about mob programming? How about it?

62
00:03:22,199 --> 00:03:23,479
The only we know it would be better?

63
00:03:23,599 --> 00:03:29,159
Speaker 2: More So, ten years ago, Richard Garside wrote this comedy.

64
00:03:29,159 --> 00:03:31,719
He says, I'm wondering how far you can scale a mob?

65
00:03:32,000 --> 00:03:34,080
When does it stop making sense to recruit new people

66
00:03:34,080 --> 00:03:37,120
for one mob? And what point you start multi mobs?

67
00:03:37,599 --> 00:03:43,759
Speaker 1: See? See that's exactly my point. More more a mob

68
00:03:43,840 --> 00:03:47,039
not enough for you. More mobs make more mobs. You know.

69
00:03:47,080 --> 00:03:48,560
Speaker 2: I think we're gonna take that. Got to take that

70
00:03:48,639 --> 00:03:51,879
question over to el Rica at some point. So, Richard,

71
00:03:52,159 --> 00:03:53,800
thank you so much for comment. I hope you still

72
00:03:54,199 --> 00:03:56,919
hear this ten years on, or at least you'll get

73
00:03:56,960 --> 00:03:58,719
the email prom and so forth. A copy of music

74
00:03:58,759 --> 00:04:00,159
code BI it is on its way to you. And

75
00:04:00,199 --> 00:04:01,840
if you'd like a copy of music Cobe, I write

76
00:04:01,840 --> 00:04:03,840
a comment on the website at dot at Rocks dot

77
00:04:03,879 --> 00:04:06,000
com or on the facebooks. We publish every show there,

78
00:04:06,159 --> 00:04:07,439
and if you comment there and I read it on

79
00:04:07,439 --> 00:04:09,680
the show, we'll send you copy music Coby Music to.

80
00:04:09,560 --> 00:04:12,199
Speaker 1: Cobe by still going strong after all these years. Yeah,

81
00:04:12,719 --> 00:04:16,120
and still a favorite way for people to get into

82
00:04:16,160 --> 00:04:19,959
the zone when writing code works for me. And you

83
00:04:19,959 --> 00:04:22,439
can follow us on X Twitter because we've been there

84
00:04:22,480 --> 00:04:25,959
for years before it was X. Of course many many

85
00:04:26,040 --> 00:04:28,759
years before it was X. But the cool kids are

86
00:04:28,759 --> 00:04:32,120
hanging out. I'm mastadon, I'm at Carl Franklin at tech

87
00:04:32,199 --> 00:04:33,920
Hub dot social, and I'm.

88
00:04:33,839 --> 00:04:35,639
Speaker 2: Rich Campbell at Masdon dot social.

89
00:04:35,959 --> 00:04:37,759
Speaker 1: So send us a two. That's another way that you

90
00:04:37,759 --> 00:04:40,879
could get a copy of music to code by for sure. Okay,

91
00:04:41,040 --> 00:04:44,560
let me introduce our guest. Ulrika Malmgren has been in

92
00:04:44,600 --> 00:04:47,399
the software industry in some form for twenty years or

93
00:04:47,439 --> 00:04:51,199
so as of this recording. Anyway. She started out as

94
00:04:51,199 --> 00:04:55,279
a software tester, using exploratory testing to study and learn

95
00:04:55,319 --> 00:04:59,959
about software and users. After realizing that quality was more

96
00:05:00,000 --> 00:05:02,879
more than just testing, she worked as an agile coach

97
00:05:03,240 --> 00:05:06,160
to help teams improve their ways of working. But for

98
00:05:06,199 --> 00:05:08,720
the past eight years she's been a c sharp developer,

99
00:05:09,040 --> 00:05:12,560
working mostly with back end applications. The last six of

100
00:05:12,600 --> 00:05:16,279
those years have been using MOB programming as said fourth

101
00:05:16,519 --> 00:05:21,160
in the comment, or software teaming as it's also called

102
00:05:21,199 --> 00:05:24,240
as a way of working. So url COO, welcome to

103
00:05:24,360 --> 00:05:25,319
dot net rocks.

104
00:05:25,720 --> 00:05:27,040
Speaker 4: Thank you, thank you for having me.

105
00:05:27,120 --> 00:05:28,800
Speaker 2: I was really excited to see you had this talk

106
00:05:28,800 --> 00:05:31,319
at NBC Oslo, and I'd meant to do the interview

107
00:05:31,360 --> 00:05:33,560
there in person, but things happen, so now we're doing

108
00:05:33,600 --> 00:05:35,439
a little bit later from there because we haven't talked

109
00:05:35,480 --> 00:05:39,319
about MOB programming in ages, but clearly it's still going

110
00:05:39,360 --> 00:05:42,519
on wood He still doing his thing, like there's plural

111
00:05:42,560 --> 00:05:46,600
size videos on the topic. How do you explain mob programmer.

112
00:05:46,839 --> 00:05:48,360
That's team programming.

113
00:05:48,600 --> 00:05:52,439
Speaker 5: Ah, I would explain it as the entire team is

114
00:05:52,720 --> 00:05:58,319
working together, so we're programming together. I liked how you said,

115
00:05:58,360 --> 00:06:02,160
like para programming on steroids were even more power programming.

116
00:06:03,120 --> 00:06:04,600
Speaker 4: But also.

117
00:06:05,560 --> 00:06:08,480
Speaker 5: Not just the programming part of it, So the entire

118
00:06:08,519 --> 00:06:13,399
team is working together, but maybe also answering emails, preparing

119
00:06:13,399 --> 00:06:16,360
power port presentations, all the other stuff that you do

120
00:06:16,600 --> 00:06:17,959
when you're doing software development.

121
00:06:18,439 --> 00:06:20,759
Speaker 1: I was going to say, the last time we talked

122
00:06:20,759 --> 00:06:23,800
to Witty about this, everybody was in a room and

123
00:06:23,839 --> 00:06:28,319
one person was driving visual studio or whatever the software is,

124
00:06:29,000 --> 00:06:31,680
and everybody else is sort of chiming in. And now,

125
00:06:31,759 --> 00:06:35,439
in the age of zoom and remote, that must be

126
00:06:35,600 --> 00:06:37,319
quite a bit different, isn't it.

127
00:06:37,319 --> 00:06:41,480
Speaker 4: It is, but it works really well, so we do that.

128
00:06:41,920 --> 00:06:45,759
Speaker 5: Actually, my team is fully remote, so I get to

129
00:06:45,759 --> 00:06:48,600
spend a lot of time with my cat, and that's good.

130
00:06:49,199 --> 00:06:53,000
But what we do is we have a computer at

131
00:06:53,040 --> 00:06:57,480
the office, and we're using ANIDSK to remote to that computer,

132
00:06:58,360 --> 00:07:01,839
and we have a slack or a team call or

133
00:07:01,839 --> 00:07:06,319
something ongoing HM, and we talk and we do all

134
00:07:06,360 --> 00:07:10,240
of our communication and programming on that computer. So I

135
00:07:10,279 --> 00:07:13,240
don't have the source code on my laptop. Actually, I

136
00:07:13,279 --> 00:07:17,040
only use my laptop to connect to this computer and

137
00:07:17,120 --> 00:07:22,160
to do personal work, things like things that are just

138
00:07:22,199 --> 00:07:23,360
for me, right, And.

139
00:07:23,319 --> 00:07:25,519
Speaker 2: I find that a fairly common practice putting my run

140
00:07:25,560 --> 00:07:28,839
ass hat on where the sort of data integrity points

141
00:07:28,839 --> 00:07:30,439
of view or keeping all the source code in the

142
00:07:30,879 --> 00:07:34,319
company means you're just logging into a virtual machine or

143
00:07:34,319 --> 00:07:37,600
a remote instance somewhere and that's where all the code lives,

144
00:07:38,279 --> 00:07:40,839
and the home machines don't actually have don't ever run

145
00:07:40,879 --> 00:07:43,600
the code, they just have access to it through a console.

146
00:07:45,600 --> 00:07:48,480
And that solves the problem that you know, you don't

147
00:07:48,519 --> 00:07:51,000
have to synchronize, like you're all working one place and

148
00:07:51,040 --> 00:07:52,959
you still have that MOB program in mindset of there's

149
00:07:53,000 --> 00:07:56,639
one active keyboard on the code.

150
00:07:56,759 --> 00:07:57,959
Speaker 1: How many monitors do you have?

151
00:07:58,759 --> 00:08:01,160
Speaker 4: I have the one is a big one.

152
00:08:01,199 --> 00:08:03,079
Speaker 5: That's the downside of it, because we only have one

153
00:08:03,079 --> 00:08:05,319
monitor on the office, so we that's the one we

154
00:08:05,399 --> 00:08:06,959
have connected to.

155
00:08:07,920 --> 00:08:10,480
Speaker 2: And I certainly remember that from some of the other

156
00:08:10,519 --> 00:08:14,199
conversations we had in this space where often somebody in

157
00:08:14,240 --> 00:08:18,040
the MOB is on another machine and they're searching for

158
00:08:18,120 --> 00:08:21,800
code samples, and other cases of addressing this particular problem

159
00:08:21,879 --> 00:08:26,120
like many in some cases totally short circuit the development process, like, wait,

160
00:08:26,160 --> 00:08:28,480
this has been done. Here's an example, and it's starting

161
00:08:28,480 --> 00:08:30,480
to look like what we're already doing. Like, let's go

162
00:08:30,560 --> 00:08:32,240
dig into this exactly.

163
00:08:32,320 --> 00:08:35,799
Speaker 5: You can while you're troubleshooting. You can have multiple threads

164
00:08:35,879 --> 00:08:38,120
of googling going on at the same time, so you

165
00:08:38,159 --> 00:08:40,600
can be I'll stack over frough a couple of people

166
00:08:41,000 --> 00:08:43,600
trying to find what could be a possible solution for

167
00:08:43,679 --> 00:08:46,039
this at the same time if you want to.

168
00:08:46,240 --> 00:08:49,120
Speaker 1: Yeah, so I knew what he told us about the

169
00:08:49,200 --> 00:08:54,000
metrics being you know, productivity wise being very very good.

170
00:08:55,519 --> 00:08:57,679
Are there any new numbers or any numbers that you

171
00:08:57,720 --> 00:09:00,759
can share with us in terms of, you know, single

172
00:09:01,000 --> 00:09:04,799
developer at a time and a team working versus pair

173
00:09:04,919 --> 00:09:06,799
programming versus mob programming.

174
00:09:07,440 --> 00:09:12,120
Speaker 5: I'm not aware of any, and in our teams we've

175
00:09:12,120 --> 00:09:12,759
only done this.

176
00:09:12,919 --> 00:09:15,039
Speaker 4: We don't have any numbers to compare to.

177
00:09:15,960 --> 00:09:19,840
Speaker 5: Yeah, but I feel that there's so many situations where

178
00:09:19,879 --> 00:09:23,960
we are that this software team and mopgram is just

179
00:09:24,039 --> 00:09:28,000
helping us so much that I would have to say

180
00:09:28,039 --> 00:09:31,039
that the numbers would have to be good towards more programming.

181
00:09:31,759 --> 00:09:34,519
I'm thinking of all the during the summer. Now, because

182
00:09:34,559 --> 00:09:38,039
of vacations, I was sometimes alone at work and I

183
00:09:38,120 --> 00:09:40,120
was sitting there and it took me a while to

184
00:09:40,159 --> 00:09:43,440
figure out why I was doing this stupid mistake, which

185
00:09:43,440 --> 00:09:46,480
would have been something that my team would have pointed

186
00:09:46,480 --> 00:09:47,200
out immediately.

187
00:09:47,200 --> 00:09:49,399
Speaker 4: They would have seen immediately that I was doing something.

188
00:09:49,879 --> 00:09:53,039
Speaker 1: You say, this is an interesting dynamic here. Now, what

189
00:09:53,080 --> 00:09:55,399
if you have I don't know, let's say you have

190
00:09:55,480 --> 00:09:59,679
a team of thirty and ten of those team members

191
00:09:59,759 --> 00:10:03,279
are working on this part of the app, and ten

192
00:10:03,360 --> 00:10:05,000
are working on another part of the app, and ten

193
00:10:05,039 --> 00:10:07,600
and working on any Does everybody work on the same

194
00:10:07,679 --> 00:10:10,279
thing all at the same time, so like there's no

195
00:10:10,360 --> 00:10:14,480
such thing as a merge conflict or how does that work?

196
00:10:14,559 --> 00:10:16,840
Speaker 5: Yeah, I'm not very good at bronchos because I've never

197
00:10:16,919 --> 00:10:17,559
used them.

198
00:10:18,000 --> 00:10:21,679
Speaker 1: Yeah wow, yeah those.

199
00:10:21,600 --> 00:10:27,159
Speaker 5: Sizes though, So we have teams of for now, two

200
00:10:27,240 --> 00:10:28,120
to five people.

201
00:10:28,360 --> 00:10:29,919
Speaker 1: Yeah, yeah, so.

202
00:10:29,840 --> 00:10:31,559
Speaker 4: We don't have that kind of a size of a team.

203
00:10:31,639 --> 00:10:32,799
Speaker 1: And that's a dressing a dressing.

204
00:10:32,799 --> 00:10:35,840
Speaker 2: Their listener Richard Garsides comments like, how big is what

205
00:10:35,879 --> 00:10:38,240
can a mob really be? Five seems like a reasonable

206
00:10:38,320 --> 00:10:40,399
number where everybody can still be engaged.

207
00:10:40,639 --> 00:10:44,799
Speaker 5: Yeah, I would say three is really good, and then yeah,

208
00:10:44,840 --> 00:10:47,320
the engagement thing is a thing because if you were

209
00:10:47,879 --> 00:10:49,840
doing it, So one way of doing more programming is

210
00:10:50,039 --> 00:10:52,759
using a timer and having people rotate at the keyboard.

211
00:10:52,840 --> 00:10:56,279
So you'd say, every ten minutes we change driver, we

212
00:10:56,399 --> 00:10:58,600
changed a person is sitting at the keyboard when is

213
00:10:58,639 --> 00:11:02,039
actually typing the code. But all of the time you

214
00:11:02,080 --> 00:11:04,440
get to have input on what is being done. But

215
00:11:04,519 --> 00:11:09,240
sometimes you want to rotate, and if you are five people,

216
00:11:09,320 --> 00:11:12,120
you get ten minutes at the keyboard and then you

217
00:11:12,200 --> 00:11:13,679
have to wait forty minutes.

218
00:11:13,840 --> 00:11:14,519
Speaker 1: Once an hour y.

219
00:11:14,600 --> 00:11:17,039
Speaker 4: Yeah, and for some people.

220
00:11:17,000 --> 00:11:19,720
Speaker 2: If typing is what you like in programming, right, I mean,

221
00:11:19,919 --> 00:11:23,600
I got to think there's some natural typers and some

222
00:11:23,799 --> 00:11:28,159
natural searchers and some natural reviewers.

223
00:11:27,559 --> 00:11:28,799
Speaker 4: Too, exactly.

224
00:11:29,039 --> 00:11:32,960
Speaker 5: So we have tried those kind of rotation patterns, but

225
00:11:32,960 --> 00:11:36,039
we've also sometimes gone away from them and have had

226
00:11:36,080 --> 00:11:41,080
a more natural kind of cycle of some people like

227
00:11:41,120 --> 00:11:44,440
to type more, some people like to go go think more.

228
00:11:44,519 --> 00:11:44,960
Speaker 4: Yeah.

229
00:11:45,000 --> 00:11:46,679
Speaker 1: So to get back to what I was saying before

230
00:11:46,720 --> 00:11:51,039
though about multiple team sections working on different sections of

231
00:11:51,080 --> 00:11:54,320
the code. What if there's somebody on the team that

232
00:11:54,639 --> 00:11:56,679
you know when you go down a rabbit hole in

233
00:11:56,720 --> 00:12:00,840
a particular thing, that they're not even working on. Do

234
00:12:00,960 --> 00:12:03,120
they contribute as well? Do you have to take time

235
00:12:03,159 --> 00:12:06,320
to explain what the other people have done to those

236
00:12:06,360 --> 00:12:09,240
who haven't done it yet. I mean, there is that

237
00:12:09,320 --> 00:12:10,240
a problem.

238
00:12:09,919 --> 00:12:13,120
Speaker 5: That's actually sort of an excellent point towards my programming

239
00:12:13,120 --> 00:12:16,240
and the fact that when you are in the mob

240
00:12:16,279 --> 00:12:18,759
and you're working on a thing, you get to see

241
00:12:19,159 --> 00:12:22,559
the rabbit holes, so to see, like, Okay, we went

242
00:12:22,639 --> 00:12:25,600
down this path and we found a dead end. This

243
00:12:25,799 --> 00:12:28,720
wasn't actually the way to solve this problem. And you're

244
00:12:28,799 --> 00:12:31,159
learning those things as well, because if you're just doing

245
00:12:31,200 --> 00:12:34,960
like a pull request and you're sort of explaining this

246
00:12:35,080 --> 00:12:39,200
is what I did, you rarely explain the other paths,

247
00:12:39,399 --> 00:12:40,960
the paths that you didn't take.

248
00:12:40,879 --> 00:12:42,240
Speaker 4: The things that were dead ends.

249
00:12:42,440 --> 00:12:44,840
Speaker 5: Sure, you get to learn the thinking that up to

250
00:12:44,960 --> 00:12:46,360
the actual solution, but I.

251
00:12:46,320 --> 00:12:49,559
Speaker 1: Can also see how you know, if you've got parallel

252
00:12:50,519 --> 00:12:53,960
sections of the team working on different aspects of the

253
00:12:54,000 --> 00:12:57,120
application all at the same time, are they three times

254
00:12:57,120 --> 00:13:00,159
as productive as the whole team working on one of

255
00:13:00,159 --> 00:13:03,039
those at a time? Like some people may think.

256
00:13:02,919 --> 00:13:07,039
Speaker 5: That, yeah, I think you want to have very like

257
00:13:07,200 --> 00:13:10,360
your own domain or your own application and not have

258
00:13:10,480 --> 00:13:11,679
to share that with someone else.

259
00:13:11,720 --> 00:13:14,000
Speaker 4: I think that's also a key to getting making it

260
00:13:14,080 --> 00:13:14,960
work all right.

261
00:13:14,799 --> 00:13:18,919
Speaker 1: So breaking down the teams into sections that are working

262
00:13:19,000 --> 00:13:22,759
on a particular thing. We're all working on that thing. Yeah,

263
00:13:22,879 --> 00:13:23,559
that makes sense.

264
00:13:23,759 --> 00:13:26,799
Speaker 2: And the point being that, just like we saw with

265
00:13:26,840 --> 00:13:28,960
pair program, and there's two pairs of eyes on something,

266
00:13:29,440 --> 00:13:32,279
you tend to make fewer mistakes, Like that code tends

267
00:13:32,279 --> 00:13:34,960
to be very check inable and sticks around. There's less

268
00:13:35,000 --> 00:13:39,240
iterating on it. I like the third pair of eyes

269
00:13:39,240 --> 00:13:43,000
because they do the other thing. You know, you definitely

270
00:13:43,000 --> 00:13:45,200
need two pairs of eyes on the code at any

271
00:13:45,240 --> 00:13:48,639
given moment, so that as soon as that third ones introduced,

272
00:13:48,679 --> 00:13:50,639
that's the one that could be searching yeah, you know,

273
00:13:50,840 --> 00:13:55,240
or thinking yeah and pulling new information into the equation,

274
00:13:55,399 --> 00:13:59,559
or reading even just reading the smacks in more detail

275
00:13:59,600 --> 00:14:01,600
and saying do we actually understand this? Right?

276
00:14:01,720 --> 00:14:05,120
Speaker 1: Like? You know, it's kind of like a continuity person

277
00:14:05,240 --> 00:14:08,080
on a movie set, isn't it somebody who's got a

278
00:14:08,320 --> 00:14:10,919
sixty thousand foot view of everything and says, oh know,

279
00:14:10,960 --> 00:14:13,080
in that last shot, the coffee mug was half full.

280
00:14:13,159 --> 00:14:14,159
You got to fill it up again.

281
00:14:15,399 --> 00:14:18,320
Speaker 5: It also sometimes looks a bit back when we were

282
00:14:18,320 --> 00:14:19,960
in the office and doing this. It looked a bit

283
00:14:20,000 --> 00:14:22,919
weird to the others because we were sitting and discussing

284
00:14:22,960 --> 00:14:26,200
a lot, and we were talking and talking, and then

285
00:14:26,200 --> 00:14:30,360
finally we reached consensus about what is it we're actually solving,

286
00:14:30,519 --> 00:14:32,200
how do we want to go about this, what's a

287
00:14:32,279 --> 00:14:35,799
solution we can all stand behind. And then when we

288
00:14:35,840 --> 00:14:39,720
finally reached that consensus, just typing out the code wasn't

289
00:14:39,759 --> 00:14:41,360
really something that took us very long.

290
00:14:41,440 --> 00:14:44,440
Speaker 2: It was the easy part because you had consensus. And

291
00:14:44,679 --> 00:14:46,600
I got to think, if you've got four people agreeing

292
00:14:46,639 --> 00:14:49,919
on a path and they're really agreeing, like there's not

293
00:14:49,919 --> 00:14:52,799
a lot of bullying going on, the quality of that's

294
00:14:52,799 --> 00:14:53,720
going to be pretty high.

295
00:14:53,799 --> 00:14:54,519
Speaker 4: Yeah, it is.

296
00:14:55,279 --> 00:14:57,039
Speaker 5: And also you get but you have to sort of

297
00:14:57,080 --> 00:14:59,559
learn to sort of this is something I really want

298
00:14:59,600 --> 00:15:03,159
to stand up for, right, I'm just I'm not we're

299
00:15:03,200 --> 00:15:05,559
doing tabs and not spaces. I'm going to die on

300
00:15:05,600 --> 00:15:08,279
that hill now, that kind of thing. And then you

301
00:15:08,320 --> 00:15:09,919
need to figure out what are the things that I'm

302
00:15:09,919 --> 00:15:11,720
willing to let go of and that I'm willing to

303
00:15:12,840 --> 00:15:17,440
slip because I think you can't win every bottle. You

304
00:15:17,480 --> 00:15:21,639
can't have four people having absolute consensus and everything. So

305
00:15:21,679 --> 00:15:24,360
you have to be a bit of a You can't

306
00:15:24,399 --> 00:15:26,480
be too opinionated about everything.

307
00:15:27,559 --> 00:15:31,039
Speaker 2: You can't fight to the death on everything, and nobody's

308
00:15:31,080 --> 00:15:33,039
going to want to work with you eventually. Like there's

309
00:15:33,080 --> 00:15:36,159
just there's got to be some This is not that

310
00:15:36,240 --> 00:15:39,639
important to me, it seems more important to you. Let's

311
00:15:39,639 --> 00:15:41,919
try it, because let's face it, none of this is permanent.

312
00:15:42,480 --> 00:15:45,559
You could go back and revise. Yeah, better to just

313
00:15:45,919 --> 00:15:47,399
get to a path where it's like, I don't see

314
00:15:47,399 --> 00:15:48,600
a problem with that. I don't know that I do

315
00:15:48,600 --> 00:15:50,120
it that way, but I don't see a problem. Let's

316
00:15:50,120 --> 00:15:52,480
go and see what we get. Yeah, yeah, I think

317
00:15:52,480 --> 00:15:55,200
that's That's the compelling part of this is that the

318
00:15:55,879 --> 00:15:58,200
biggest thing you get away from with pair programming, I

319
00:15:58,279 --> 00:16:03,240
noticed is the those death sparals just trapped in. I

320
00:16:03,320 --> 00:16:05,320
can't get this out the door. I'm just smashing my

321
00:16:05,360 --> 00:16:08,440
head on the keyboard, and another pair of eyes and

322
00:16:08,919 --> 00:16:12,919
ultimately another pair of hands just breaks that up. And

323
00:16:12,960 --> 00:16:14,039
you're always rubber ducking.

324
00:16:14,159 --> 00:16:18,840
Speaker 5: Yeah exactly. And also you're learning like IF when you're IF.

325
00:16:18,879 --> 00:16:22,240
I'm not very good at CSS, for example, but my

326
00:16:22,279 --> 00:16:24,639
colleagues are better than me, so if I were to

327
00:16:24,679 --> 00:16:27,799
solve this future of my own, my CSS that I

328
00:16:27,840 --> 00:16:29,879
would produce would be at a certain level, which is

329
00:16:29,919 --> 00:16:33,559
not very good. But when we're doing this together, we

330
00:16:33,639 --> 00:16:38,720
always get like the best person's level of knowledge, right,

331
00:16:38,799 --> 00:16:40,960
which is also really interesting and I'm learning at the

332
00:16:40,960 --> 00:16:41,440
same time.

333
00:16:41,480 --> 00:16:43,600
Speaker 2: Do you switch keyboards at that point? Like does the

334
00:16:43,679 --> 00:16:45,320
CSS when you hit to the point where it's like,

335
00:16:45,320 --> 00:16:47,320
well we need little CSS here, It's like, all right,

336
00:16:47,399 --> 00:16:48,440
already take that.

337
00:16:48,879 --> 00:16:49,679
Speaker 1: Yeah.

338
00:16:49,720 --> 00:16:52,480
Speaker 5: Maybe the other way around though, maybe I'll take that

339
00:16:52,519 --> 00:16:54,759
because I'm not so good a right, so you can

340
00:16:54,960 --> 00:16:55,679
be the one.

341
00:16:55,559 --> 00:16:59,559
Speaker 2: To turn yeah and let them coach you through exactly

342
00:16:59,600 --> 00:17:02,759
better see sess yeah, and sharing that knowledge.

343
00:17:02,840 --> 00:17:05,119
Speaker 5: I need to get this from my fingers, to get

344
00:17:05,119 --> 00:17:05,960
the mechanics of it.

345
00:17:06,160 --> 00:17:06,759
Speaker 1: And that's an.

346
00:17:06,640 --> 00:17:09,279
Speaker 2: Interesting angle on this, and it also speaks to I

347
00:17:09,319 --> 00:17:11,759
don't want three of the same person on here on

348
00:17:11,799 --> 00:17:13,960
this project. I want an array of skills.

349
00:17:14,039 --> 00:17:16,799
Speaker 1: I'm trying to think of the pushback, right, If you

350
00:17:16,880 --> 00:17:18,720
have a team of five and you go to your

351
00:17:18,720 --> 00:17:23,279
manager and say, hey, instead of everybody working on stuff

352
00:17:23,319 --> 00:17:25,680
and branching and merging and all that stuff, why don't

353
00:17:25,680 --> 00:17:31,079
we work together? You know, the pushback might be is

354
00:17:31,559 --> 00:17:35,240
I think, well, you have to prove that the productivity

355
00:17:35,359 --> 00:17:41,039
exceeds what you can do individually and the quality. Productivity

356
00:17:41,039 --> 00:17:43,240
and quality they go hand in hand.

357
00:17:43,480 --> 00:17:46,000
Speaker 5: Yeah, And people always say that, and it's really interesting

358
00:17:46,039 --> 00:17:50,200
because has this sort of working individually, has that really

359
00:17:50,240 --> 00:17:53,359
proven itself to be good productivity and good quality?

360
00:17:53,440 --> 00:17:54,920
Speaker 1: M Right?

361
00:17:55,039 --> 00:17:58,480
Speaker 5: Like did we always we were doing software perfectly on time,

362
00:17:58,640 --> 00:18:01,400
bug free, and then some people came along and say

363
00:18:01,400 --> 00:18:04,240
can we work together? And everything went downhills from there.

364
00:18:04,319 --> 00:18:08,039
Speaker 2: Just do more unit tests. But I mean, I think

365
00:18:08,039 --> 00:18:09,279
I want to play with the math on it. So

366
00:18:09,279 --> 00:18:12,359
if we've got four people in a four week sprint,

367
00:18:13,000 --> 00:18:16,200
each takes a task, all right, in the end of

368
00:18:16,240 --> 00:18:20,000
four weeks, you're supposed to deliver four tasks. Now flip

369
00:18:20,039 --> 00:18:22,079
that on his head, and four people work on each

370
00:18:22,240 --> 00:18:25,880
task a week each, all four of them work on

371
00:18:25,920 --> 00:18:27,680
it once. Are you going to get a better result?

372
00:18:27,680 --> 00:18:31,960
Can they deliver those four features one a week collaboratively?

373
00:18:32,119 --> 00:18:34,440
And then I mean, I think it's hard to deny

374
00:18:34,680 --> 00:18:36,759
that you'll get better quality code for having more eyes

375
00:18:36,759 --> 00:18:37,000
on it.

376
00:18:37,039 --> 00:18:38,599
Speaker 1: That's always true, definitely.

377
00:18:38,799 --> 00:18:42,000
Speaker 2: So the quality question is not there the productivity question.

378
00:18:42,160 --> 00:18:44,200
The question is can you get those four features built

379
00:18:44,240 --> 00:18:46,839
that sprint. Like that would be my argument to the

380
00:18:46,880 --> 00:18:49,119
team lead. It's like, hey, our goals deliver these four

381
00:18:49,160 --> 00:18:51,079
things in the sprint. How we do it?

382
00:18:51,480 --> 00:18:53,480
Speaker 1: Don't ask? You know, you can't. You don't have the

383
00:18:53,519 --> 00:18:57,400
benefit of parallel universes. You can't say all right, it'll

384
00:18:57,440 --> 00:18:59,319
do bose ways and see what happens at the end.

385
00:19:00,160 --> 00:19:02,839
Speaker 5: Remember that there's so much more to program to software

386
00:19:02,880 --> 00:19:06,480
development and just the programming part. There's like reading the code.

387
00:19:06,519 --> 00:19:09,440
There's understanding the code, there's understanding why are we doing

388
00:19:09,440 --> 00:19:12,920
this in the first place. There's so many other things

389
00:19:13,480 --> 00:19:16,200
that you're doing. And I think that if you've been

390
00:19:16,240 --> 00:19:20,039
a part of all of the code production up until now,

391
00:19:20,839 --> 00:19:23,039
you're rarely going to be in a position where you're

392
00:19:23,039 --> 00:19:26,279
sitting there and you're not understanding what a certain post

393
00:19:26,319 --> 00:19:28,319
of code is doing because you were there when it

394
00:19:28,400 --> 00:19:31,599
was created. So the part when it is okay, I'm

395
00:19:31,640 --> 00:19:34,039
reading code is taking me a long time to understand

396
00:19:34,279 --> 00:19:38,480
what previous the previous programmer was doing. That part is

397
00:19:38,519 --> 00:19:40,720
gone because you were there for that part.

398
00:19:41,000 --> 00:19:43,519
Speaker 1: Yeah, well, you have the potential for new kinds of nastiness,

399
00:19:43,519 --> 00:19:46,319
don't you like when people don't agree, and they're resistant

400
00:19:46,319 --> 00:19:48,440
to doing it the right way. Has it ever come

401
00:19:48,480 --> 00:19:49,359
to fist the cuffs?

402
00:19:50,960 --> 00:19:54,519
Speaker 5: I think it's even more passive aggressiveness in all the

403
00:19:54,599 --> 00:19:57,240
sines where you're sort of like, oh, I'm going to

404
00:19:57,359 --> 00:20:00,279
change this now, that's my turn to where on this

405
00:20:00,319 --> 00:20:02,000
future I'm going to change it to what I think

406
00:20:02,079 --> 00:20:02,440
is better.

407
00:20:03,319 --> 00:20:06,759
Speaker 2: Edit the code right in front of them. Yeah it's

408
00:20:06,839 --> 00:20:07,880
not pretty.

409
00:20:08,160 --> 00:20:12,000
Speaker 1: Well, Dave did this and introduced a bug because he

410
00:20:12,160 --> 00:20:15,480
wasn't smart enough to think that this and that. So

411
00:20:15,519 --> 00:20:17,039
I'll just fix it right now.

412
00:20:18,440 --> 00:20:21,799
Speaker 5: But also, my most the argument that I like the

413
00:20:21,839 --> 00:20:24,720
most about when you talk about productivity is the one

414
00:20:24,720 --> 00:20:27,079
thing that you hear in every retrospective is we have

415
00:20:27,160 --> 00:20:28,400
to be better at knowledge sharing.

416
00:20:29,759 --> 00:20:31,359
Speaker 4: That's always the thing that comes up.

417
00:20:31,440 --> 00:20:33,079
Speaker 1: And then you share all the time.

418
00:20:33,400 --> 00:20:35,640
Speaker 5: Yeah, and then you have people say like, okay, so

419
00:20:35,640 --> 00:20:38,359
we should have knowledge sharing sessions and then that doesn't happen,

420
00:20:38,720 --> 00:20:41,160
or we should we should be better at talking to

421
00:20:41,200 --> 00:20:43,440
each other, and then that doesn't happen. But we don't

422
00:20:43,519 --> 00:20:47,200
have to solve that problem because we're organically knowledge sharing

423
00:20:47,400 --> 00:20:49,599
all the time. Yeah, we don't have to think about

424
00:20:49,839 --> 00:20:52,079
is this an important thing that we need to tell

425
00:20:52,119 --> 00:20:53,079
someone else about.

426
00:20:53,200 --> 00:20:55,519
Speaker 1: Also really good if one person leaves the team.

427
00:20:55,680 --> 00:20:57,359
Speaker 4: Yeah, yeah, that's brilliant.

428
00:20:57,559 --> 00:20:59,880
Speaker 2: You've always got more pairs of eyes on the code.

429
00:21:00,319 --> 00:21:02,960
You've got them routinely teaching each other. You're not doing

430
00:21:02,960 --> 00:21:06,480
a separate teaching exercise, right, Like the fact that the

431
00:21:06,640 --> 00:21:10,440
skilled CSS person who's in the MOB walked you through

432
00:21:10,440 --> 00:21:13,680
writing better CSS, as opposed to doing like a luncheon

433
00:21:13,759 --> 00:21:17,480
learn on CSS, or just simply getting all the CSS

434
00:21:17,559 --> 00:21:20,519
work from the whole team all the time so that

435
00:21:20,519 --> 00:21:23,000
that person gets better and better but never really teaches

436
00:21:23,000 --> 00:21:25,839
anyone else. Like, there's a whole bunch of things solved

437
00:21:25,880 --> 00:21:28,000
at the same time with this approach, and only a

438
00:21:28,000 --> 00:21:30,160
small part of it is writing the code exactly.

439
00:21:30,319 --> 00:21:32,359
Speaker 1: I think she use a different term than in the MOB.

440
00:21:34,000 --> 00:21:34,519
Speaker 4: That's what I want.

441
00:21:34,559 --> 00:21:37,720
Speaker 5: I want to flip this conversation around, like ken, I

442
00:21:37,839 --> 00:21:41,640
think I when I started to submit talks about this topic,

443
00:21:41,759 --> 00:21:44,599
I wanted to contrast it to the other way of

444
00:21:44,599 --> 00:21:47,200
working the thing that we were doing before. Right, And

445
00:21:47,839 --> 00:21:49,640
it turns out I felt like I needed to find

446
00:21:49,640 --> 00:21:52,039
a name for it because I would have more programming.

447
00:21:52,039 --> 00:21:53,920
That's not a particularly good name, But we talk about

448
00:21:53,920 --> 00:21:57,160
a software team maybe sometimes which is slightly better, but

449
00:21:57,839 --> 00:21:58,920
still a name for something.

450
00:21:59,279 --> 00:21:59,799
Speaker 1: How do you like it?

451
00:22:00,160 --> 00:22:01,319
Speaker 2: Ensemble programming.

452
00:22:02,240 --> 00:22:08,920
Speaker 1: That's very, very very the word area day. Yeah, yeah,

453
00:22:09,559 --> 00:22:13,000
I like it. But yeah, group programming perhaps programming.

454
00:22:13,200 --> 00:22:16,039
Speaker 4: Yeah, but what's the other thing then, what's the thing

455
00:22:16,079 --> 00:22:18,240
that most people are programming? Yeah?

456
00:22:19,319 --> 00:22:24,799
Speaker 5: Yeah, I like that one, and I think I like

457
00:22:24,839 --> 00:22:28,079
even better one that we came up with in the group,

458
00:22:28,160 --> 00:22:34,240
which was individual centered programming or development, because if we

459
00:22:34,319 --> 00:22:37,799
have if in more programming, you take the work and

460
00:22:37,880 --> 00:22:41,680
everyone flocks to the work and does the work. In

461
00:22:41,720 --> 00:22:45,400
the other style, you split the work to the individuals, right, but.

462
00:22:45,359 --> 00:22:48,319
Speaker 2: You still have this great ritual of merging it all together.

463
00:22:48,759 --> 00:22:51,759
But you now are oscillating between working individually and working

464
00:22:51,759 --> 00:22:54,559
in a team where you all have to collaborate on

465
00:22:54,599 --> 00:22:56,880
the integration cycle. Why not just be in the team

466
00:22:57,119 --> 00:22:57,839
all the time?

467
00:22:58,039 --> 00:23:00,519
Speaker 1: About mono programming and polyprogram.

468
00:23:02,079 --> 00:23:04,119
Speaker 4: Multi threaded, single threaded, Yeah.

469
00:23:04,000 --> 00:23:08,440
Speaker 1: Right, remin brain goes, oh, looks like the cat is

470
00:23:08,480 --> 00:23:09,119
taking a walk.

471
00:23:09,599 --> 00:23:13,960
Speaker 2: Yeah, but actually at this point about the oscillation of

472
00:23:14,079 --> 00:23:17,680
switching modes where you go head down on your own

473
00:23:18,400 --> 00:23:21,440
sometimes you know, in a tail spin, to try and

474
00:23:21,480 --> 00:23:23,880
produce your portion of the work. To bring to the team,

475
00:23:23,920 --> 00:23:25,599
and then you work as a team to do the

476
00:23:25,599 --> 00:23:30,039
integration just seems weirder than why if you just work

477
00:23:30,079 --> 00:23:31,039
as a team the whole time.

478
00:23:31,359 --> 00:23:33,880
Speaker 5: Yeah, And there's so much wasted time that is spent

479
00:23:34,119 --> 00:23:38,759
during those synchronizations, like the stand ups, Yeah, what did

480
00:23:38,759 --> 00:23:39,640
you do yesterday?

481
00:23:40,119 --> 00:23:41,240
Speaker 4: What are you going to do today?

482
00:23:41,960 --> 00:23:44,119
Speaker 5: And then you have long stand ups, so then you

483
00:23:44,160 --> 00:23:46,599
spend the retrospectives talking about how should we have better

484
00:23:46,640 --> 00:23:47,119
stand ups?

485
00:23:47,160 --> 00:23:48,519
Speaker 4: So first you waste the time during.

486
00:23:48,359 --> 00:23:50,759
Speaker 1: The stand ups, then you waste more time.

487
00:23:50,559 --> 00:23:53,440
Speaker 5: Than you're wasting the retrospective time talking about how you

488
00:23:53,680 --> 00:23:55,559
can waste the time in a better way.

489
00:23:55,960 --> 00:23:56,440
Speaker 1: Yeah.

490
00:23:56,480 --> 00:23:58,400
Speaker 2: What if everybody knew what everybody was working on because

491
00:23:58,400 --> 00:24:02,480
they all worked on it. Yeah, Yeah, suddenly this weird

492
00:24:02,559 --> 00:24:04,839
idea seems like the normal idea, and what we've been

493
00:24:04,880 --> 00:24:05,559
doing is weird.

494
00:24:05,599 --> 00:24:08,240
Speaker 1: I would think though, that in bigger projects where you

495
00:24:08,240 --> 00:24:13,319
have multiple silos of work, it could pose more of

496
00:24:13,359 --> 00:24:15,440
a problem, don't you What.

497
00:24:15,359 --> 00:24:17,799
Speaker 4: Would be some multiple silos?

498
00:24:18,000 --> 00:24:20,839
Speaker 1: All right, So let's say you're working on a project

499
00:24:20,839 --> 00:24:23,599
that has a solution that has thirty or forty projects,

500
00:24:24,200 --> 00:24:27,279
and you know they hire one person to work on

501
00:24:27,319 --> 00:24:30,039
this one project. Because it uses a particular language or

502
00:24:30,079 --> 00:24:34,480
technology or something, and another person is doing the data

503
00:24:34,599 --> 00:24:39,160
the back end, another person is doing the communications, right,

504
00:24:39,200 --> 00:24:43,960
I mean you've got a team of twenty or thirty people.

505
00:24:44,559 --> 00:24:48,480
That seems a little bit far reaching from me.

506
00:24:48,880 --> 00:24:52,400
Speaker 5: No, yeah, maybe this wouldn't be the best solution for that,

507
00:24:52,519 --> 00:24:54,799
but maybe it would be splitting up that problem.

508
00:24:55,039 --> 00:24:56,799
Speaker 4: Yeah, in a different way.

509
00:24:57,119 --> 00:24:59,200
Speaker 2: Yeah, let's come into this another angle. We kind of

510
00:24:59,240 --> 00:25:04,519
recognize that at any given mob, any given ensemble is

511
00:25:04,559 --> 00:25:07,279
three to five people, right, Yeah, you have a limit,

512
00:25:07,519 --> 00:25:10,440
and so there's a cadence as fast as you can

513
00:25:10,480 --> 00:25:13,000
produce code with that team. Even if that team works

514
00:25:13,160 --> 00:25:15,920
flawlessly together, they're in their their space, they know what

515
00:25:15,920 --> 00:25:17,680
they're doing. They're only going to put out so much

516
00:25:17,680 --> 00:25:20,200
code in so much time, as efficiently as they can be.

517
00:25:20,240 --> 00:25:21,640
And that could be a lot. A lot of projects

518
00:25:21,680 --> 00:25:24,599
could be happily solved that way. But you have a

519
00:25:24,720 --> 00:25:28,240
larger project with way more milestones that need to be done,

520
00:25:28,279 --> 00:25:31,200
and you want to have more people working together. I

521
00:25:31,279 --> 00:25:34,039
don't think you make the individual mob bigger, But now

522
00:25:34,079 --> 00:25:38,759
you get into multiple mobs and you're back to possibly

523
00:25:38,759 --> 00:25:42,519
fighting that synchronization problem wherever. So often those mobs need

524
00:25:42,559 --> 00:25:45,160
to come together to synchronize their code.

525
00:25:45,160 --> 00:25:47,680
Speaker 1: But at least they would be working within their own

526
00:25:47,720 --> 00:25:51,200
domain hopefully and wouldn't be crossing each other, so there'd

527
00:25:51,240 --> 00:25:54,119
be less chances for emerged conflicts and things like that.

528
00:25:54,640 --> 00:25:56,680
I hope, yeah, I mean would you would?

529
00:25:56,680 --> 00:25:58,640
Speaker 2: This is where the architect comes into play and we

530
00:25:58,759 --> 00:26:03,319
build boundaries to say here, you know, maybe negotiate the APIs.

531
00:26:03,920 --> 00:26:06,119
You might even have a mob of mobs here where

532
00:26:06,240 --> 00:26:09,279
one lead from each mob gets together with the other

533
00:26:09,440 --> 00:26:11,839
four mobs and they go through the architecture of how

534
00:26:11,839 --> 00:26:13,680
they're going to build those interfaces.

535
00:26:13,440 --> 00:26:14,880
Speaker 1: Middle management mobs.

536
00:26:16,920 --> 00:26:20,440
Speaker 2: But now you're getting to, like you said, a twenty

537
00:26:20,519 --> 00:26:24,359
to twenty thirty people working on a project that's a

538
00:26:24,400 --> 00:26:27,480
lot of code like but you know, and it's really

539
00:26:27,519 --> 00:26:29,319
a speed thing that they want a certain level of

540
00:26:29,359 --> 00:26:31,920
deliverables in a certain amount of time. So you're going

541
00:26:32,000 --> 00:26:33,880
to introduce complexity. There's no two ways about it. Like

542
00:26:33,920 --> 00:26:37,000
you can't can't get twenty people sitting around one keyboard

543
00:26:37,039 --> 00:26:39,160
and be productive. There's a threshold there.

544
00:26:39,200 --> 00:26:41,319
Speaker 1: But I like the multiple groups or multiple mobs or

545
00:26:41,359 --> 00:26:46,440
multiple ensembles idea because as as these five, four or

546
00:26:46,440 --> 00:26:49,839
five person units, they can be a lot more productive

547
00:26:49,960 --> 00:26:55,000
in their silo than the four or five individually working well.

548
00:26:55,319 --> 00:26:57,079
Speaker 2: And the bigger thing is recognized. Every piece of code

549
00:26:57,079 --> 00:26:58,559
is looked at by multiple peeple, so it tends to

550
00:26:58,599 --> 00:26:59,400
be a higher quality.

551
00:26:59,519 --> 00:27:01,079
Speaker 1: Yeah, produced more rapidly.

552
00:27:01,400 --> 00:27:03,200
Speaker 2: Yeah, you know, because as soon as we getting the

553
00:27:03,200 --> 00:27:04,839
mobs of mobs where now we could be back to well,

554
00:27:04,839 --> 00:27:06,559
why don't you just have individual developers they do the

555
00:27:06,599 --> 00:27:09,920
same consolidation because an individual makes more mistakes and a

556
00:27:10,000 --> 00:27:10,839
group makes for your.

557
00:27:11,000 --> 00:27:14,160
Speaker 1: And some simple rules like those pieces that are shared

558
00:27:14,200 --> 00:27:17,799
among all the projects that somebody has to update, you know,

559
00:27:17,960 --> 00:27:20,519
they have to eraise their hand and tell everybody, hey,

560
00:27:20,559 --> 00:27:22,799
I'm gonna be working on this tonight or tomorrow morning.

561
00:27:23,359 --> 00:27:26,319
Check all your stuff in by five, and then you know,

562
00:27:26,480 --> 00:27:28,279
have it done in a couple hours, and then we

563
00:27:28,319 --> 00:27:31,759
can you know, just prepare. I'm not trying to say,

564
00:27:32,039 --> 00:27:35,319
trying to prevent merch conflicts before they happen. Yeah, yeah,

565
00:27:35,519 --> 00:27:36,640
you would hope, you would.

566
00:27:36,400 --> 00:27:39,319
Speaker 5: Hope if you were to have some sort of synchronization

567
00:27:39,359 --> 00:27:41,160
in between, you can at least send any of the

568
00:27:41,200 --> 00:27:44,240
team members from any of the mobs, because they will

569
00:27:44,240 --> 00:27:45,200
have the same knowledge.

570
00:27:45,200 --> 00:27:47,160
Speaker 1: They should have all the same knowledge.

571
00:27:46,880 --> 00:27:48,880
Speaker 4: About their work at least delegates.

572
00:27:48,960 --> 00:27:51,039
Speaker 2: But just like you have somebody good at CSS, you

573
00:27:51,119 --> 00:27:53,240
might have somebody good at persuading.

574
00:27:53,759 --> 00:27:57,640
Speaker 1: So you want to send it to that mob. Interesting,

575
00:27:57,839 --> 00:28:00,160
it's not just about technology.

576
00:28:00,799 --> 00:28:03,359
Speaker 2: Well, it never is, right, Like, this is all about

577
00:28:03,400 --> 00:28:05,440
how well we work together and how we come to

578
00:28:05,559 --> 00:28:09,000
consensus on things, and how different viewpoints make for a

579
00:28:09,039 --> 00:28:13,480
better answer when done constructively. It can be done toxically,

580
00:28:13,680 --> 00:28:15,319
like what I what I find in you about this

581
00:28:15,480 --> 00:28:18,599
is like, this will certainly hunt down the toxic people

582
00:28:18,599 --> 00:28:21,160
in your group. If you can't make this team programming work,

583
00:28:21,440 --> 00:28:22,880
it's going to show fast.

584
00:28:23,519 --> 00:28:24,079
Speaker 1: Yeah.

585
00:28:24,160 --> 00:28:27,160
Speaker 4: It requires people to be humble and to be curious

586
00:28:27,200 --> 00:28:27,960
about other people.

587
00:28:28,039 --> 00:28:30,799
Speaker 2: Yeah, and to expect understand that they're they're capable, like

588
00:28:30,839 --> 00:28:31,559
they all deliver.

589
00:28:32,119 --> 00:28:33,440
Speaker 4: Yeah, you have to.

590
00:28:33,480 --> 00:28:37,680
Speaker 5: If someone has an adverse solution to yours, you have

591
00:28:37,720 --> 00:28:41,119
to be more curious about why would you that be

592
00:28:41,480 --> 00:28:44,480
a good solution in your opinion? Right, rather than to

593
00:28:44,640 --> 00:28:46,960
bash them and be sure that you win that argument.

594
00:28:47,200 --> 00:28:50,000
Speaker 2: Mm hmmm, well anyway, don't win any argument, right. The

595
00:28:50,039 --> 00:28:53,160
code bench it right, Like, I'm perfectly willing and I've

596
00:28:53,200 --> 00:28:55,400
been in that situation with two really smart people and said,

597
00:28:55,400 --> 00:28:57,119
all right, we're both going to write and we're going

598
00:28:57,160 --> 00:28:57,839
to have a bake off.

599
00:28:57,880 --> 00:29:01,400
Speaker 1: Then right, and you'll see what we That's a fun way.

600
00:29:01,880 --> 00:29:04,200
Speaker 2: Yeah, it's it's an approach. It has its own problems.

601
00:29:04,279 --> 00:29:07,680
Now we talk about metrics. Actually we should break for

602
00:29:07,720 --> 00:29:14,480
a moment for these very important messages, and we're back.

603
00:29:14,680 --> 00:29:17,160
It's done at Rocks. I'm Richard Campell. Let's call Franklin hey,

604
00:29:17,920 --> 00:29:21,519
and talking to our friend Luruka about mob programming for

605
00:29:21,559 --> 00:29:24,480
the first time in a long time. But it feels

606
00:29:24,559 --> 00:29:28,000
more mature now, like I'm maybe it's just as I'm older.

607
00:29:28,519 --> 00:29:32,319
I'm like, duh, yeah, working together better.

608
00:29:33,079 --> 00:29:34,160
Speaker 1: We have more tools now.

609
00:29:34,400 --> 00:29:37,319
Speaker 5: Yeah, to me it feels it feels like the obvious approach.

610
00:29:37,440 --> 00:29:40,319
But it is because I've been doing it for every

611
00:29:40,400 --> 00:29:43,559
day for six years, so sure. To me, it feels

612
00:29:43,599 --> 00:29:45,599
a bit odd to do it any other way, Like

613
00:29:45,680 --> 00:29:47,799
why would you split up the work and split up?

614
00:29:47,960 --> 00:29:48,839
May I have more risk?

615
00:29:49,599 --> 00:29:49,839
Speaker 1: Yeah?

616
00:29:49,960 --> 00:29:52,759
Speaker 2: Yeah, I mean people do pseudo mobbing anyway. The number

617
00:29:52,759 --> 00:29:54,480
of times I've seen an organization where each person has

618
00:29:54,480 --> 00:29:56,039
a piece of code, but they keep checking in with

619
00:29:56,160 --> 00:29:58,880
each other about problems they're having with their code. The

620
00:29:58,960 --> 00:30:01,960
problem is that that's an in interruption driven way to

621
00:30:02,079 --> 00:30:05,160
do it. So that other person was focused and working,

622
00:30:05,240 --> 00:30:06,880
and you pulled them out of that to ask them

623
00:30:06,920 --> 00:30:07,839
a CSS question.

624
00:30:08,200 --> 00:30:10,880
Speaker 1: Idd interruption driven development, that's it.

625
00:30:11,200 --> 00:30:14,000
Speaker 5: I'm terrible at asking for help when I'm working alone.

626
00:30:14,519 --> 00:30:16,799
I will sit and bang my head against the solution.

627
00:30:16,880 --> 00:30:21,039
I'm trying to figure it out. Yeah, maybe this thing.

628
00:30:22,000 --> 00:30:23,799
I'll just try this thing, then I'll ask for help.

629
00:30:24,279 --> 00:30:26,400
Speaker 2: Yeah, totally. And that's what I saw with Paar programmer.

630
00:30:26,440 --> 00:30:28,880
Right away as the other person knows the moment you're

631
00:30:28,880 --> 00:30:32,400
spinning because they're there, they've watched it happen, right, and

632
00:30:32,680 --> 00:30:35,920
it's that coach effect of dude, you're spinning, like it's okay,

633
00:30:36,480 --> 00:30:38,880
let's get you out of the spiral, Like let's rethink the.

634
00:30:38,920 --> 00:30:40,640
Speaker 1: Problem and come at it from a different direction.

635
00:30:40,839 --> 00:30:44,759
Speaker 2: So you no longer have to have the sort of

636
00:30:44,880 --> 00:30:47,799
executive function to go, oh, I'm spinning here, pull yourself

637
00:30:47,839 --> 00:30:49,200
out of it and try and find a way. There's

638
00:30:49,240 --> 00:30:50,960
somebody there, puts the hand on the shoulder.

639
00:30:51,000 --> 00:30:55,480
Speaker 1: It's like, hey, the four most important words a programmer

640
00:30:55,599 --> 00:31:01,039
can memorize and use is well, that didn't work right,

641
00:31:01,279 --> 00:31:03,279
You've got to know when to say that and try

642
00:31:03,400 --> 00:31:06,640
something else. Yeah, wow, wow, indeed this is normal.

643
00:31:07,119 --> 00:31:10,359
Speaker 2: But the remote angles interesting too, because I guess our

644
00:31:10,400 --> 00:31:12,920
text so much better than it was in the past.

645
00:31:12,960 --> 00:31:14,480
Time we were talking about this, like to just sit

646
00:31:14,559 --> 00:31:17,920
in a zoom call or a team's call with all

647
00:31:17,960 --> 00:31:21,240
the faces there, and you know, the code window and

648
00:31:21,359 --> 00:31:24,680
handing off control for typing, and then beside that you've

649
00:31:24,720 --> 00:31:26,680
got another window open because you're doing a little searching

650
00:31:26,799 --> 00:31:29,680
or checking or going over docs and and a steady

651
00:31:29,720 --> 00:31:33,799
stream of conversation about what we're writing. Doesn't even seem

652
00:31:33,839 --> 00:31:36,119
weird now, and a few years ago that wouldn't be

653
00:31:36,160 --> 00:31:41,440
that easy. The pandemic fixed this really pandemic. The pandemic,

654
00:31:41,759 --> 00:31:43,400
I'm not going to go that far, but I'm saying

655
00:31:43,640 --> 00:31:50,319
everybody's ring got better. The etiquette of online communication evolved.

656
00:31:50,920 --> 00:31:53,440
Remember we had the stupid hat period during the pandemic

657
00:31:53,519 --> 00:31:55,400
when everybody turned on a filter so they had the

658
00:31:55,440 --> 00:31:56,160
digital hats on.

659
00:31:56,359 --> 00:31:57,079
Speaker 1: I never did that.

660
00:31:57,319 --> 00:31:59,759
Speaker 2: You missed all that, now, no, you missed out.

661
00:32:00,599 --> 00:32:03,920
Speaker 1: I guess I saw other idiots doing it, but I

662
00:32:04,079 --> 00:32:06,200
did not did not partake of that.

663
00:32:06,480 --> 00:32:10,200
Speaker 2: But it literally was like a rapid incubator evolution to

664
00:32:10,400 --> 00:32:15,279
emerge etiquettes around around online, which I mean it speaks

665
00:32:15,279 --> 00:32:18,440
to there must be a sort of agreed upon etiquette

666
00:32:18,440 --> 00:32:21,559
and mob programming too, like are you big on the

667
00:32:21,720 --> 00:32:22,839
every camera on thing?

668
00:32:23,440 --> 00:32:24,799
Speaker 4: No, we don't actually do that.

669
00:32:26,559 --> 00:32:29,559
Speaker 5: I think one thing that is interesting with the combination

670
00:32:29,720 --> 00:32:32,880
of remoting and more programming is we spend so many

671
00:32:32,920 --> 00:32:35,640
hours a day talking to each other, right that we're

672
00:32:35,680 --> 00:32:39,440
getting to know each other very well. Yeah, And I've

673
00:32:39,680 --> 00:32:44,960
have onboarded people fully remotely and in a way where

674
00:32:44,960 --> 00:32:47,240
you sort of you get to know them personally because

675
00:32:48,200 --> 00:32:50,400
while you're working, you sort of you crack a joke

676
00:32:50,680 --> 00:32:53,079
and then you end up having a mini break talking

677
00:32:53,119 --> 00:32:53,960
about something else.

678
00:32:54,880 --> 00:32:58,440
Speaker 2: I need caffeinated beverage. Now, please do you leave on?

679
00:32:58,680 --> 00:33:01,839
You stay on through lunch already, windy unplug.

680
00:33:02,839 --> 00:33:04,680
Speaker 4: No, we typically.

681
00:33:05,920 --> 00:33:09,720
Speaker 5: Have real lunch breaks and have uh have other breaks

682
00:33:09,720 --> 00:33:12,079
as well, so we try to make sure to have

683
00:33:13,960 --> 00:33:18,079
a break every hour and lunch breaks. And I'm an introvert,

684
00:33:18,160 --> 00:33:22,079
so for me, being remote and getting a lunch by

685
00:33:22,160 --> 00:33:22,720
my own.

686
00:33:22,799 --> 00:33:25,720
Speaker 1: Yeah, is actually important, is really valuable.

687
00:33:26,039 --> 00:33:27,519
Speaker 2: And you need to get off the screen. You need

688
00:33:27,599 --> 00:33:29,400
to get up and move around a bit.

689
00:33:29,799 --> 00:33:33,599
Speaker 1: I got to feed my cat. Yeah, I'm kind of

690
00:33:33,680 --> 00:33:37,640
chuckling because Ulrica's cat has jumped into her lap and

691
00:33:37,839 --> 00:33:39,160
is showing us it's butt.

692
00:33:40,359 --> 00:33:44,759
Speaker 2: Yes, that's brilliant. You're you're keeping it together, just fine

693
00:33:44,759 --> 00:33:49,160
and everything. Everything a great cat again. Another thing that

694
00:33:49,240 --> 00:33:52,079
came out of the online was the pet sessions and

695
00:33:52,319 --> 00:33:56,480
children children wandering in such as I was having a

696
00:33:56,559 --> 00:33:59,160
long talk with a senior executive at Microsoft at one

697
00:33:59,200 --> 00:34:01,480
point and the little girls came piling into the room

698
00:34:01,480 --> 00:34:03,480
and she goes, really sorry. I'm like, it's all good.

699
00:34:03,680 --> 00:34:07,400
Put on a speaker, let's chat. Tell us the story.

700
00:34:07,440 --> 00:34:08,440
They want to tell you stories.

701
00:34:08,440 --> 00:34:09,039
Speaker 1: I want to hear them.

702
00:34:09,119 --> 00:34:11,559
Speaker 2: Let's do it, you know, to spend spend six seven

703
00:34:11,639 --> 00:34:14,159
minutes letting the kids tell about getting home from school

704
00:34:14,159 --> 00:34:15,400
and then they off they go again.

705
00:34:15,679 --> 00:34:16,559
Speaker 1: Way better answer.

706
00:34:17,079 --> 00:34:20,119
Speaker 2: You know, everybody's delighted you talk about, you know, connecting

707
00:34:20,199 --> 00:34:21,280
with folks so exactly.

708
00:34:21,519 --> 00:34:24,480
Speaker 1: Yeah, you know, the social aspect of it. We we

709
00:34:24,800 --> 00:34:26,880
you know, talked about it as being good, but it

710
00:34:27,039 --> 00:34:30,000
really is good. I mean, we can't dismiss that as

711
00:34:30,159 --> 00:34:34,719
a benefit a small benefit. It's a huge benefit. I mean,

712
00:34:34,880 --> 00:34:38,119
you have people that connect with each other are more

713
00:34:38,199 --> 00:34:42,079
happy in general. Well, and if they're more happy, then

714
00:34:42,119 --> 00:34:44,920
they're going to be more productive and gonna want to

715
00:34:45,239 --> 00:34:45,920
solve problems.

716
00:34:46,079 --> 00:34:48,840
Speaker 2: Teams that trust each other are more productive. Yeah, because

717
00:34:48,880 --> 00:34:52,119
it resolves arguments faster. If I trust it, you're smart

718
00:34:52,199 --> 00:34:54,800
and good at what you do. When you disagree with me,

719
00:34:55,159 --> 00:34:57,280
you almost get this, I must have done something wrong,

720
00:34:57,320 --> 00:35:00,239
like what did I miss? Rather than the defensive No,

721
00:35:00,639 --> 00:35:01,719
you know, I know I'm right.

722
00:35:02,239 --> 00:35:02,440
Speaker 4: Yeah.

723
00:35:02,639 --> 00:35:05,199
Speaker 2: That trust makes those things fast.

724
00:35:05,639 --> 00:35:05,840
Speaker 4: Yeah.

725
00:35:05,960 --> 00:35:06,199
Speaker 1: I mean.

726
00:35:06,280 --> 00:35:08,400
Speaker 5: Also, we have uncovered a couple of techniques that we

727
00:35:08,559 --> 00:35:12,320
use when we notice that we have I wouldn't see

728
00:35:12,320 --> 00:35:15,639
a conflict, but maybe different ideas on how to solve

729
00:35:15,679 --> 00:35:18,840
a problem. So one thing that we've done is that

730
00:35:18,920 --> 00:35:22,760
we've actually split the team up in those cases and

731
00:35:22,880 --> 00:35:25,239
we get to go and sit by ourselves, uh and

732
00:35:25,400 --> 00:35:29,039
maybe draw a bit on a on a PowerPoint or

733
00:35:29,079 --> 00:35:32,000
a Mirro or something like that, draw out your solution,

734
00:35:32,239 --> 00:35:34,599
your idea of how we should do this, and then

735
00:35:34,639 --> 00:35:38,760
we come together and we present those those pictures to

736
00:35:38,800 --> 00:35:42,760
each other. Because when you are remoting and you don't

737
00:35:42,800 --> 00:35:46,280
have the whiteboard just next to you, it can be

738
00:35:46,320 --> 00:35:48,800
a good idea to be able to just sit by

739
00:35:48,840 --> 00:35:51,480
yourself and get get to draw a solution, get to

740
00:35:51,519 --> 00:35:53,440
think about the problem on your own, and then then

741
00:35:53,519 --> 00:35:56,519
come back and talk about how should we solve it together.

742
00:35:56,599 --> 00:36:00,599
Speaker 2: It also resists the loudest voice effect to right or

743
00:36:00,639 --> 00:36:02,840
the law. You know, I've often had a talker in

744
00:36:02,920 --> 00:36:04,599
the group where it's like, hey, if I just agree

745
00:36:04,639 --> 00:36:09,239
with you, you stop talking. You know, So to diffuse

746
00:36:09,320 --> 00:36:11,320
that and go okay, everybody, go in your respective corners

747
00:36:11,920 --> 00:36:15,119
and draw out your finish your idea to present back

748
00:36:15,639 --> 00:36:20,199
equalizes the fast talker versus the quieter, more contemplative one.

749
00:36:20,400 --> 00:36:23,880
Like that quiet person if they had thirty minutes to

750
00:36:24,039 --> 00:36:26,320
really round out their idea and then present it with

751
00:36:26,400 --> 00:36:29,039
everybody watching, is going to land better.

752
00:36:29,239 --> 00:36:30,239
Speaker 1: That's a great technique.

753
00:36:30,280 --> 00:36:33,159
Speaker 2: Well an, that's the you know, the amount of moderation

754
00:36:33,280 --> 00:36:34,840
I've done over the years. It's like, how do I

755
00:36:34,920 --> 00:36:38,440
make sure the quieter, thoughtful person gets heard and to

756
00:36:38,880 --> 00:36:41,199
unplug the mob for a bit and let them go

757
00:36:41,360 --> 00:36:43,880
and do that and then come back and everybody gets

758
00:36:43,920 --> 00:36:45,840
a cycle talk through the ideas.

759
00:36:46,039 --> 00:36:49,440
Speaker 1: That's great. You know if in this in another case,

760
00:36:49,719 --> 00:36:53,840
you might have three different ways to achieve the same thing,

761
00:36:54,840 --> 00:36:56,880
and so rather than you know, and it could be

762
00:36:56,960 --> 00:37:00,400
something relatively simple. So rather than have everybody go through

763
00:37:00,440 --> 00:37:03,559
all three of those potential solutions all at once, you

764
00:37:03,760 --> 00:37:07,360
have them split up for say an hour. All Right,

765
00:37:07,440 --> 00:37:09,159
you try it this way, you try it that way,

766
00:37:09,199 --> 00:37:11,840
you try it this way, and then we'll come make off. Yeah,

767
00:37:11,960 --> 00:37:14,159
bake off. Right. You don't want to spend too much

768
00:37:14,199 --> 00:37:17,199
time doing that, but you can where if you're starting

769
00:37:17,519 --> 00:37:20,679
as a group. But if you're not starting as a group,

770
00:37:20,880 --> 00:37:23,480
then you don't have those options. No, you might have it.

771
00:37:23,840 --> 00:37:25,840
Speaker 2: It might have happened privately in each room and only

772
00:37:25,880 --> 00:37:28,199
find out an integration with people spent two weeks on it,

773
00:37:28,599 --> 00:37:31,679
right right, to spend a couple of hours spiking it

774
00:37:32,039 --> 00:37:34,679
and then bring the code. I mean three people go

775
00:37:34,800 --> 00:37:37,159
off to write that code in different ways. One of

776
00:37:37,199 --> 00:37:39,039
them's going to come back O Okay, my idea wasn't

777
00:37:39,039 --> 00:37:41,000
that good when I actually tried to code, like nope,

778
00:37:41,920 --> 00:37:44,119
And then the other two to come back with different approaches,

779
00:37:44,159 --> 00:37:46,719
and it's like, okay, well let's put some insutation around this,

780
00:37:46,800 --> 00:37:49,360
spend it up. What are we looking at? And I'll

781
00:37:49,400 --> 00:37:51,639
bet you none of them are correct, like all of them.

782
00:37:51,679 --> 00:37:54,320
It's like, hey, the way you did that instrumentation was

783
00:37:54,360 --> 00:37:55,960
better than the way I did it. My code may

784
00:37:56,039 --> 00:37:58,440
be fast, but you measure better, Like, let's borrow from

785
00:37:58,519 --> 00:38:00,679
each other and you get a better result. I just

786
00:38:00,760 --> 00:38:02,480
think about how people feel at the end of the

787
00:38:02,559 --> 00:38:03,880
day after an experience like that.

788
00:38:04,199 --> 00:38:06,920
Speaker 4: Yeah, it's much more fun you something together.

789
00:38:07,159 --> 00:38:09,119
Speaker 1: Yeah, I feel like I've been at recess one day

790
00:38:09,159 --> 00:38:10,760
with my friends in grammar school, you know.

791
00:38:10,880 --> 00:38:13,679
Speaker 2: But also heard also took it out for a spin.

792
00:38:14,280 --> 00:38:18,719
Also got affirmed like that's pretty cool, and I never

793
00:38:18,800 --> 00:38:20,920
thought of it that way. We're not doing it that way,

794
00:38:20,960 --> 00:38:25,480
but that was pretty cool. Yeah, that seems very positive.

795
00:38:25,719 --> 00:38:29,679
So many positive elements to this versus now you know,

796
00:38:29,800 --> 00:38:32,199
this oscillation between working independently and trying to integrate.

797
00:38:32,280 --> 00:38:34,280
Speaker 5: Well, so touching on the thing that people are going

798
00:38:34,320 --> 00:38:37,079
to be noticing if they try OUTMA programming, they are

799
00:38:37,159 --> 00:38:39,920
going to be noticing personal conflicts in a way that

800
00:38:40,039 --> 00:38:43,920
you didn't have before because you're used to maybe if

801
00:38:43,960 --> 00:38:47,320
you had a different opinions in a meeting, you would

802
00:38:47,360 --> 00:38:50,000
split up and then go to different desks, right, but

803
00:38:50,199 --> 00:38:52,760
here you're sort of you get stuck in that those

804
00:38:52,800 --> 00:38:55,920
different opinions. You're stuck in that moment of Okay, we're

805
00:38:55,960 --> 00:38:58,719
not agreeing, we have to solve this, and you're going.

806
00:38:58,639 --> 00:38:59,360
Speaker 4: To be stuck in that.

807
00:39:01,360 --> 00:39:01,519
Speaker 1: Right.

808
00:39:01,639 --> 00:39:04,000
Speaker 4: Yeah. Different, So maybe you will notice.

809
00:39:03,800 --> 00:39:07,079
Speaker 5: That your retrospectives might be a bit less about how

810
00:39:07,159 --> 00:39:10,360
do we have a faster stand up and more of okay, so,

811
00:39:11,079 --> 00:39:14,320
how should we handle when we have different opinions?

812
00:39:14,519 --> 00:39:15,199
Speaker 4: What should we do?

813
00:39:15,519 --> 00:39:18,679
Speaker 1: It's not just that, but personality type clashes. Yes, Like

814
00:39:18,840 --> 00:39:22,400
if you're not emotionally intelligent enough to realize that, oh,

815
00:39:23,079 --> 00:39:26,159
that person is the direct opposite of me on the

816
00:39:27,079 --> 00:39:31,440
the Carl Jung's spectrum or the Myers Briggs scale or

817
00:39:31,480 --> 00:39:34,760
whatever you want to use, and you're not smart enough

818
00:39:34,800 --> 00:39:38,159
to know that, all right, well, you know I have

819
00:39:38,360 --> 00:39:41,760
to read past the body language and all of that

820
00:39:41,920 --> 00:39:45,039
other stuff that I'm taking in as information and just

821
00:39:45,159 --> 00:39:48,320
get to what they're saying. Yeah, yeah, that can be tough.

822
00:39:48,559 --> 00:39:50,519
Speaker 5: Yes, I think you will grow as a person in

823
00:39:50,599 --> 00:39:53,960
that sense because you will have to to learn about

824
00:39:54,000 --> 00:39:58,719
other people's personalities. Sure, a bit more and maybe there

825
00:39:58,880 --> 00:40:02,800
to say I feel like comfortable when you're interrupting me,

826
00:40:04,599 --> 00:40:07,960
can I please speak things like that that might come

827
00:40:08,039 --> 00:40:11,480
up to the surface in a way that wouldn't come

828
00:40:11,559 --> 00:40:13,639
up to the surface when you don't have to stick

829
00:40:13,679 --> 00:40:14,199
in the moment.

830
00:40:14,599 --> 00:40:14,800
Speaker 4: Sure.

831
00:40:15,159 --> 00:40:19,840
Speaker 2: Yeah, I keep thinking back to who is the politician said?

832
00:40:19,880 --> 00:40:21,960
Can I finish root?

833
00:40:22,280 --> 00:40:24,800
Speaker 1: There you goanage.

834
00:40:25,039 --> 00:40:27,159
Speaker 2: But you know, I think and you also will have

835
00:40:27,360 --> 00:40:30,239
refereeing type personalities in there. It's like, wait, let's hear

836
00:40:30,320 --> 00:40:32,559
this out. Yeah, I mean it gets challenging when you

837
00:40:32,559 --> 00:40:35,079
get in a situation where we disagree on this. Somebody

838
00:40:35,119 --> 00:40:37,239
wants to spite the code. The other one's like, why

839
00:40:37,480 --> 00:40:39,920
we don't need to do this, Let's get moving on.

840
00:40:40,360 --> 00:40:44,119
It's different people are different pacing. So but I think

841
00:40:44,719 --> 00:40:46,639
he speaks Now I'm thinking in terms of it has

842
00:40:46,679 --> 00:40:48,760
to be an uneed even number, so you don't end

843
00:40:48,840 --> 00:40:50,320
up with a perfect splint on any position.

844
00:40:50,599 --> 00:40:52,480
Speaker 4: Yeah, it does help to have that.

845
00:40:53,119 --> 00:40:57,519
Speaker 2: Yeah, three or five, four would be problematic. Yeah, because

846
00:40:57,599 --> 00:40:59,880
you will have that schism. So yeah, better to have

847
00:41:00,079 --> 00:41:02,880
it and even split, so at least you can get

848
00:41:02,920 --> 00:41:07,760
a sense of, well, the majority disagrees with you, wethough

849
00:41:07,760 --> 00:41:10,360
hopefully they do that kindness. There's got to be a

850
00:41:10,400 --> 00:41:12,159
lot of kindness in this. You're going to be successful.

851
00:41:12,199 --> 00:41:14,000
It speaks to certain set of personalities.

852
00:41:14,320 --> 00:41:21,159
Speaker 1: Yes, indeed, challenges besides the things that we've talked about. Obviously,

853
00:41:21,480 --> 00:41:26,400
I've brought up pushback potential, you know a few things

854
00:41:26,440 --> 00:41:29,920
that you need to be kind of understand before you

855
00:41:30,000 --> 00:41:34,199
pitch this kind of thing. But what are some challenges

856
00:41:34,599 --> 00:41:37,320
or potential pitfalls that people could fall into that we

857
00:41:37,440 --> 00:41:38,480
haven't already talked about.

858
00:41:39,239 --> 00:41:42,679
Speaker 5: I find a typical one that I've heard is when

859
00:41:42,719 --> 00:41:47,079
people go, this work is not suitable for more programming.

860
00:41:47,559 --> 00:41:47,960
Speaker 1: Interesting.

861
00:41:48,719 --> 00:41:51,559
Speaker 5: Yeah, so you're doing a lot of more work and

862
00:41:51,679 --> 00:41:54,719
then things get difficult. Maybe it's a bug that you're

863
00:41:54,760 --> 00:41:58,800
supposed to troubleshoot, and you're a bit stressed out, and

864
00:41:58,880 --> 00:42:02,119
then it gets a it gets difficult, and then your

865
00:42:02,239 --> 00:42:07,280
instinct will be to retract from the difficult moment. And

866
00:42:07,400 --> 00:42:10,440
so people have lots of opinions on this work is

867
00:42:10,519 --> 00:42:15,519
not suitable for mobbing, And I think.

868
00:42:16,199 --> 00:42:18,199
Speaker 2: Is there work that's not suitable for mobbing?

869
00:42:18,760 --> 00:42:25,639
Speaker 5: Possibly if you're doing something very repetitive like putting changing

870
00:42:25,800 --> 00:42:28,280
all the lines in a two hundred and fifty row file,

871
00:42:28,440 --> 00:42:29,639
maybe something like that, that just.

872
00:42:29,679 --> 00:42:31,440
Speaker 2: Means that the rest of the mob is bored. The

873
00:42:31,639 --> 00:42:34,320
typers typing as fast as they can as opposed to

874
00:42:34,960 --> 00:42:37,119
like you, if you've got three people who can and

875
00:42:37,199 --> 00:42:41,320
agree on something that seems very marveable, because otherwise you

876
00:42:41,320 --> 00:42:43,599
would have found out the disagreement after the code was

877
00:42:43,599 --> 00:42:44,199
already written.

878
00:42:44,639 --> 00:42:49,079
Speaker 5: Yeah, but I think situations where you are typically troubleshooting

879
00:42:49,119 --> 00:42:50,760
situations are a bit more difficult.

880
00:42:50,960 --> 00:42:55,159
Speaker 4: Interesting, So what typically ends up? And this is so funny.

881
00:42:56,519 --> 00:42:59,840
Speaker 5: Had a colleague was a senior developer, Like we all

882
00:43:00,000 --> 00:43:02,360
looked up to him, and he had really good solutions

883
00:43:02,400 --> 00:43:05,000
every time. And at one point in time someone asks

884
00:43:05,039 --> 00:43:08,400
him like, okay, so, in your opinion, what makes a

885
00:43:08,480 --> 00:43:12,679
senior developer? And his answer was someone who reads the

886
00:43:12,800 --> 00:43:18,159
error messages that Yeah. I was like, surely that can

887
00:43:18,639 --> 00:43:20,480
That can't be the level that we're holding people out.

888
00:43:20,760 --> 00:43:23,559
But if you look around, people not reading error.

889
00:43:23,400 --> 00:43:26,079
Speaker 4: Messages often a problem. Yeah.

890
00:43:26,440 --> 00:43:28,119
Speaker 5: And so if you did that in a mob situation

891
00:43:28,280 --> 00:43:31,440
where no one actually reads the actual message and everyone

892
00:43:31,519 --> 00:43:35,400
goes like, oh I know what this is yea, and

893
00:43:35,559 --> 00:43:37,960
people have different ideas on what this is is.

894
00:43:40,239 --> 00:43:42,840
Speaker 4: And you're a bit stressed because he's a production error.

895
00:43:43,599 --> 00:43:45,679
Speaker 2: You let somebody, You let the person on the keyboard

896
00:43:45,760 --> 00:43:48,960
run with their immediate age things, but my off the keyboard,

897
00:43:49,000 --> 00:43:50,800
I would want a copy of that error message and

898
00:43:50,880 --> 00:43:53,679
looking it up, and somebody else is searching through log

899
00:43:53,760 --> 00:43:56,599
saying how often it's happened? Like debugging is a group.

900
00:43:56,679 --> 00:43:59,960
Seems really powerful, but it is, but it's hard.

901
00:44:00,119 --> 00:44:01,119
Speaker 4: Oney, hour a bit stressed.

902
00:44:01,320 --> 00:44:04,519
Speaker 1: Yeah, yeah, I can see. Another challenge would be people

903
00:44:04,559 --> 00:44:08,440
who think slower than other people. So take my wife

904
00:44:08,480 --> 00:44:12,119
and I playing a game, for example, she can figure

905
00:44:12,159 --> 00:44:14,800
out we play a logic game, right, and she figures

906
00:44:14,800 --> 00:44:17,119
stuff out way before I do because I'm a programmer, right,

907
00:44:17,119 --> 00:44:21,519
I'm methodical. All right, apply this rule, eliminate these possibilities.

908
00:44:21,519 --> 00:44:24,239
Apply that rule, and she's like, it's there, you idiot.

909
00:44:25,360 --> 00:44:34,119
Speaker 2: You so, But mixing intuitive and logical processing often builds

910
00:44:34,159 --> 00:44:37,559
great results. Yeah, you know, as long as everyone's got

911
00:44:37,559 --> 00:44:40,480
a little patience for each other. I'm coming at this

912
00:44:40,519 --> 00:44:43,360
from an administrator's perspective, where we've been firefighting. It four

913
00:44:43,400 --> 00:44:46,800
of us firefighting an outage, often remote, you know, with

914
00:44:46,880 --> 00:44:49,800
an IRC channel open, which ends up being a record

915
00:44:49,840 --> 00:44:53,280
of us actually diagnosing the problem. And the joke is

916
00:44:53,320 --> 00:44:55,239
every time it's like, hey, it was a six hour outage.

917
00:44:55,239 --> 00:44:58,119
It took us one hour detect it, four hours to

918
00:44:58,239 --> 00:45:01,239
diagnose it, and fifteen minutes to implement the fixing, get

919
00:45:01,239 --> 00:45:03,239
it up and running again, and then another hour to

920
00:45:03,320 --> 00:45:08,960
write it up. But everything is about diagnostics. But having

921
00:45:09,039 --> 00:45:12,760
multiple eyes on logs and searches and so forth made

922
00:45:12,760 --> 00:45:14,320
a huge difference for us. I never thought of it

923
00:45:14,360 --> 00:45:17,760
as mobbing, you know, because we weren't acssarily creating anything.

924
00:45:17,800 --> 00:45:19,719
We were just trying to put out a fire. Yeah,

925
00:45:20,000 --> 00:45:22,920
but you know, the big rule repeating to ourselves is like,

926
00:45:23,039 --> 00:45:27,480
don't make the hole deeper. If you're going to make

927
00:45:27,519 --> 00:45:30,039
a change, you know what change you've made in how

928
00:45:30,079 --> 00:45:32,679
to revert it. So, you know, often we get it

929
00:45:32,760 --> 00:45:34,880
back up, but we've mangled six things trying to get

930
00:45:34,920 --> 00:45:37,719
it back up because we didn't actually fully diagnose the problem.

931
00:45:38,039 --> 00:45:39,719
Speaker 5: And I think that's one of the situations where people

932
00:45:40,960 --> 00:45:43,519
but it's common that people sometimes do I few them

933
00:45:43,559 --> 00:45:47,280
up perming from time to time. They can the teams

934
00:45:47,280 --> 00:45:49,440
can go okay, so this is really important to get right.

935
00:45:49,519 --> 00:45:52,800
Let's do this thing together, or this is an actual outage,

936
00:45:52,880 --> 00:45:57,639
let's do that together. But maybe they're not revert to

937
00:45:57,760 --> 00:45:59,519
it when it comes to normal work.

938
00:45:59,760 --> 00:46:02,960
Speaker 2: Is to do a periodic mob programming with a team,

939
00:46:03,480 --> 00:46:07,079
maybe as a transition from the from traditional styles.

940
00:46:07,639 --> 00:46:09,880
Speaker 5: I think A common one which is pretty good is

941
00:46:10,199 --> 00:46:14,719
onboarding team members. Right, that's a good place to start

942
00:46:14,760 --> 00:46:15,599
if you're in.

943
00:46:15,599 --> 00:46:18,840
Speaker 2: The mob and the mom help them big up, build

944
00:46:18,840 --> 00:46:21,480
out their configuration, and get to check in able code.

945
00:46:22,639 --> 00:46:25,039
Always my threshold for how many days after we hire

946
00:46:25,079 --> 00:46:27,480
someone can they are they capable of checking in code.

947
00:46:27,840 --> 00:46:30,280
It's not about their programming ability, it's about understanding the

948
00:46:30,320 --> 00:46:33,079
infrastructure well enough to have gotten to the point where

949
00:46:33,079 --> 00:46:34,639
their code can be checked in and pulled into this

950
00:46:34,840 --> 00:46:37,719
into the pipeline. Yeah, doing that as a mob would

951
00:46:37,760 --> 00:46:40,320
be more fun, But I'd love this statement you said, like,

952
00:46:40,400 --> 00:46:42,840
this code's too important to do individually, so we'll do

953
00:46:42,920 --> 00:46:46,639
it as a group. It's like, isn't all code that important?

954
00:46:48,000 --> 00:46:50,199
As soon as you can say that, then it's like, oh,

955
00:46:50,239 --> 00:46:52,559
this code is stupid. Let one person work on it.

956
00:46:53,039 --> 00:46:55,760
Speaker 1: Do you transcribe these sessions and refer back to those

957
00:46:55,800 --> 00:46:57,760
transcripts when you have issues?

958
00:46:58,559 --> 00:46:59,559
Speaker 4: No, we haven't done that.

959
00:47:00,719 --> 00:47:04,039
Speaker 5: We can some transcry to summarize it, because it's good

960
00:47:04,119 --> 00:47:06,840
to know why I did with this actually happen mm hmm,

961
00:47:07,800 --> 00:47:09,559
But we haven't had any transcription so far.

962
00:47:09,880 --> 00:47:12,840
Speaker 2: Although let's face it, with a new ll M technology

963
00:47:12,880 --> 00:47:17,119
of the things. Transcription has gotten way easier, transition and summarization. Yeah,

964
00:47:17,239 --> 00:47:19,880
you know, if you're paying for the premium version of

965
00:47:20,000 --> 00:47:23,360
teams that comes in the box now with with copil,

966
00:47:23,519 --> 00:47:27,199
with M three ct I copilot, that every imagine every

967
00:47:28,639 --> 00:47:32,480
you know, six seven hour programming session. At the end

968
00:47:32,519 --> 00:47:35,519
of it, you get an everybody gets an email saying

969
00:47:35,519 --> 00:47:37,039
this is what you did today. I don't know how

970
00:47:37,119 --> 00:47:39,719
high quality that would be, but that's the tools we

971
00:47:39,800 --> 00:47:44,360
have now, Like it's peaks to the whole other elevation. Interesting,

972
00:47:45,199 --> 00:47:46,880
this may actually be getting easier.

973
00:47:47,719 --> 00:47:51,920
Speaker 1: Yeah, all right, So have we left any stone unturned?

974
00:47:52,320 --> 00:47:55,840
Is there anything else that you want to talk about now?

975
00:47:56,000 --> 00:47:58,719
Speaker 5: I think I think with the most important thing for

976
00:47:58,840 --> 00:48:02,599
me is how how I feel like while we're doing

977
00:48:02,719 --> 00:48:03,360
knowledge work.

978
00:48:03,719 --> 00:48:05,360
Speaker 4: I think that's what we should optimize for.

979
00:48:06,920 --> 00:48:09,960
Speaker 5: And a knowledge work is about its about knowledge sharing

980
00:48:11,400 --> 00:48:13,960
and learning new things and helping each other grow and

981
00:48:15,119 --> 00:48:17,639
learning from each other. So I think I think my

982
00:48:17,800 --> 00:48:21,960
programming is is the best fit for that, and to me,

983
00:48:22,079 --> 00:48:24,800
it feels like it should be the normal, the normal

984
00:48:24,840 --> 00:48:27,880
way working the team. And then there could be situations

985
00:48:27,920 --> 00:48:32,679
where you could go for individual or solo work in

986
00:48:32,760 --> 00:48:35,880
certain situations, perhaps, but I think the normal should be

987
00:48:37,599 --> 00:48:38,440
working as a team.

988
00:48:38,559 --> 00:48:40,079
Speaker 1: M h. Great stuff.

989
00:48:40,239 --> 00:48:42,440
Speaker 2: So are there resources you point people to for this?

990
00:48:42,559 --> 00:48:47,360
Speaker 5: Alrica, I would say Woody is all the book. Software

991
00:48:47,400 --> 00:48:50,880
teaming would be a good a good place.

992
00:48:52,320 --> 00:48:55,440
Speaker 1: What's next for you? What's in your inbox? H oh?

993
00:48:55,679 --> 00:48:57,599
Speaker 4: We are going to be.

994
00:48:59,079 --> 00:49:01,880
Speaker 5: Continuing on a sourcing so I was listening to your

995
00:49:02,119 --> 00:49:03,599
last episode just today.

996
00:49:04,599 --> 00:49:06,480
Speaker 4: Yeah, so that's gonna be fun.

997
00:49:06,639 --> 00:49:10,159
Speaker 1: Yep. Good well. Thank you for bringing this topic back

998
00:49:10,280 --> 00:49:12,559
to dot net rocks. It's been great and it's good

999
00:49:12,599 --> 00:49:15,480
to hear that you're being successful with it, and I

1000
00:49:15,639 --> 00:49:19,960
hope some of our listeners are also thinking about doing this.

1001
00:49:20,239 --> 00:49:22,599
It's good stuff. Thank you, Thank you all right, and

1002
00:49:22,639 --> 00:49:25,360
we'll talk to you next time on dot net rocks.

1003
00:49:46,159 --> 00:49:48,679
Dot net Rocks is brought to you by Franklin's Net

1004
00:49:48,960 --> 00:49:52,880
and produced by Pop Studios, a full service audio, video

1005
00:49:53,000 --> 00:49:57,000
and post production facility located physically in New London, Connecticut,

1006
00:49:57,320 --> 00:50:01,519
and of course in the cloud online it wop dot com.

1007
00:50:02,320 --> 00:50:04,360
Visit our website at d O T N E t

1008
00:50:04,679 --> 00:50:08,679
R O c k S dot com for RSS feeds, downloads,

1009
00:50:08,880 --> 00:50:12,519
mobile apps, comments, and access to the full archives. Going

1010
00:50:12,599 --> 00:50:15,960
back to show number one recorded in September two thousand

1011
00:50:16,000 --> 00:50:18,599
and two. And make sure you check out our sponsors.

1012
00:50:18,800 --> 00:50:21,599
They keep us in business. Now go write some code.

1013
00:50:22,159 --> 00:50:25,559
See you next time. You got J Middle Vans

1014
00:50:27,760 --> 00:50:27,800
Speaker 4: And

