1
00:00:00,040 --> 00:00:04,080
A lot of problems that we are 
facing is due to the interface. 

2
00:00:04,400 --> 00:00:08,320
We are actually giving somebody 
else feedback, but we're sitting

3
00:00:08,320 --> 00:00:12,240
in front of a computer looking 
at the tool and having a text 

4
00:00:12,240 --> 00:00:14,400
box there and we are actually 
alone. 

5
00:00:14,800 --> 00:00:17,720
Most people forget that they're 
actually talking to a person. 

6
00:00:18,080 --> 00:00:21,880
Understanding and comprehending 
and changing code is first of 

7
00:00:21,880 --> 00:00:24,400
all something that we do a lot 
more than writing code. 

8
00:00:24,400 --> 00:00:27,920
It takes much more time to do 
that and it's really hard. 

9
00:00:27,920 --> 00:00:30,160
And cultural reviews is one of 
the things that you have to do 

10
00:00:30,160 --> 00:00:32,240
that. 
And what I see is a lot of teams

11
00:00:32,240 --> 00:00:36,880
have very fast turn around 
times, but they are just looking

12
00:00:36,880 --> 00:00:39,040
over at the glance, if they even
look at it. 

13
00:00:39,040 --> 00:00:41,480
So it's more window dressing 
activity. 

14
00:00:41,800 --> 00:00:44,520
And then a lot of teams, and I 
think they have more pain points

15
00:00:44,520 --> 00:00:47,760
is when it takes a lot of time, 
it takes very long time. 

16
00:00:47,760 --> 00:00:50,880
But the value of the cultivaries
are very low, especially for 

17
00:00:50,880 --> 00:00:54,640
cultivates, because I hear this 
idea of cultivaries are so bad 

18
00:00:54,640 --> 00:00:58,960
for our productivity and they're
really destroying our whole 

19
00:00:59,200 --> 00:01:01,720
focus that we have. 
But I think that's really far 

20
00:01:01,720 --> 00:01:03,680
from the truth. 
I think people that are already 

21
00:01:03,680 --> 00:01:07,200
struggling with their 
productivity or with scheduling 

22
00:01:07,280 --> 00:01:10,320
their work, they are struggling 
more with Cultivates. 

23
00:01:23,800 --> 00:01:26,280
Hello guys, welcome back to 
another new episode of the 

24
00:01:26,280 --> 00:01:29,480
Technical Journal Podcast. 
Today I have Doctor Michaela 

25
00:01:29,480 --> 00:01:32,160
Greiler here, so I'll call her 
Michaela. 

26
00:01:32,440 --> 00:01:36,000
So she will be talking a lot 
about code reviews today. 

27
00:01:36,080 --> 00:01:40,520
So specifically how we can do 
awesome code reviews, maybe any 

28
00:01:40,520 --> 00:01:44,480
new trends recently about code 
reviews and how code reviews is 

29
00:01:44,480 --> 00:01:47,600
related to developer experience.
So welcome to the show, 

30
00:01:47,600 --> 00:01:50,400
Michaela. 
Hello, thank you so much for 

31
00:01:50,400 --> 00:01:52,720
having me. 
I'm super excited to be on your 

32
00:01:52,720 --> 00:01:55,080
show. 
So Michaela, in the beginning, I

33
00:01:55,080 --> 00:01:58,440
always love to ask my guest 
maybe 1st to tell us more about 

34
00:01:58,440 --> 00:02:00,840
yourself, right? 
So maybe specifically any 

35
00:02:00,840 --> 00:02:03,400
highlights or turning points 
that you think we all can learn 

36
00:02:03,400 --> 00:02:07,160
from you? 
Turning points, Well I got into 

37
00:02:08,080 --> 00:02:12,680
programming and informatics and 
computer science quite late in 

38
00:02:12,680 --> 00:02:16,720
my like 18/19/20 years old or 
around that. 

39
00:02:16,720 --> 00:02:21,440
I think it was 18 or 19 and I 
came from an art school, right? 

40
00:02:21,440 --> 00:02:26,040
So I was actually studying art 
in my school had a big focus on 

41
00:02:26,040 --> 00:02:29,600
that and computers didn't play a
big part, right? 

42
00:02:29,600 --> 00:02:32,000
So it was quite adverse to 
computers. 

43
00:02:32,000 --> 00:02:36,400
So when I then finished the 
school and I had to go to 

44
00:02:36,400 --> 00:02:38,360
university, I was thinking, what
should I do? 

45
00:02:38,360 --> 00:02:40,960
And I think a lot of people 
thought like psychology would be

46
00:02:40,960 --> 00:02:43,480
something that I could do or 
maybe I don't know, like 

47
00:02:43,560 --> 00:02:46,760
history, but all of that were 
things that I could never 

48
00:02:46,760 --> 00:02:49,640
imagine myself doing. 
And also art was something that 

49
00:02:49,640 --> 00:02:53,880
I really love, still love, but I
didn't want to do it for like as

50
00:02:53,880 --> 00:02:56,480
a profession, right? 
So it felt like something that I

51
00:02:56,480 --> 00:03:00,880
do for recreation or in my free 
time, but I didn't want to make 

52
00:03:00,880 --> 00:03:04,400
money from my art. 
Felt really like ethically wrong

53
00:03:05,080 --> 00:03:07,200
to do that, right? 
To have somebody tell me how to 

54
00:03:07,200 --> 00:03:10,080
do my art stuff. 
So yes, I was thinking what 

55
00:03:10,080 --> 00:03:11,920
should I do? 
And in the last year of my 

56
00:03:11,960 --> 00:03:16,240
school, I was already attending 
university classes and I can 

57
00:03:16,240 --> 00:03:17,680
recommend that to everybody, 
right? 

58
00:03:17,680 --> 00:03:21,240
So in the afternoons I was 
sitting into different classes. 

59
00:03:21,240 --> 00:03:24,120
Psychology was 1. 
So I realized this is not for 

60
00:03:24,120 --> 00:03:26,360
me. 
Or I was also sitting in a 

61
00:03:26,360 --> 00:03:28,800
physics class and in 
mathematics. 

62
00:03:28,800 --> 00:03:31,880
And I also popped into an 
informatics class, right, for 

63
00:03:31,880 --> 00:03:35,600
something about algorithms and 
transactions and SOLID 

64
00:03:35,600 --> 00:03:38,840
principles and things like that.
And it was really like, I really

65
00:03:38,840 --> 00:03:42,080
like that part, right? 
Like the kind of thinking. 

66
00:03:42,240 --> 00:03:44,920
And so I decided I'm going to 
study computer science. 

67
00:03:44,920 --> 00:03:47,880
And everybody was like, you 
cannot even turn on the 

68
00:03:47,880 --> 00:03:49,520
computer. 
How are you going to study 

69
00:03:49,520 --> 00:03:51,800
computer science? 
And so I bought myself a book, 

70
00:03:51,800 --> 00:03:53,880
which is not very computer 
science like, right? 

71
00:03:53,880 --> 00:03:58,360
And then a bookstore bought 
myself a book, and then I read 

72
00:03:58,360 --> 00:04:01,320
about algorithms in a very 
abstract way at that point. 

73
00:04:01,320 --> 00:04:03,880
But I decided, well, this is 
really what I want to do. 

74
00:04:04,320 --> 00:04:07,120
And yeah, in the first year, I 
have to say I struggled quite a 

75
00:04:07,120 --> 00:04:09,720
bit because there were a lot of 
other people that know already 

76
00:04:09,720 --> 00:04:12,760
how to program. 
I really indeed had a problem 

77
00:04:12,760 --> 00:04:15,640
with knowing how to turn on the 
computer, how to go to a 

78
00:04:15,640 --> 00:04:17,959
website, how to log in and 
things like this. 

79
00:04:17,959 --> 00:04:22,840
It was really new to me. 
So, yeah, it was a steep 

80
00:04:22,840 --> 00:04:24,320
learning curve. 
It's pretty that way. 

81
00:04:24,320 --> 00:04:27,200
But I always felt like this is 
it's the right thing to do. 

82
00:04:27,200 --> 00:04:29,640
And I know that there were a lot
of people that doubt it and that

83
00:04:29,640 --> 00:04:32,320
I can do that. 
But I think, you know, now it's 

84
00:04:32,600 --> 00:04:35,320
almost 20 years later, it was 
the right decision. 

85
00:04:35,320 --> 00:04:38,360
It was a good decision for me. 
And so I would encourage 

86
00:04:38,360 --> 00:04:42,560
everybody to really try out 
stuff, even if it's very much 

87
00:04:42,560 --> 00:04:44,440
not what you are used to do, 
right? 

88
00:04:44,440 --> 00:04:48,280
Or what people believe that you 
can do or what others think 

89
00:04:48,280 --> 00:04:50,440
about you. 
I think a lot of people have 

90
00:04:50,440 --> 00:04:54,160
perceptions about what a person 
is interested in or what they 

91
00:04:54,160 --> 00:04:56,800
can do or what they will 
struggle with, which is not 

92
00:04:56,800 --> 00:04:58,800
true. 
And it's not true, right? 

93
00:04:58,800 --> 00:05:03,400
So really trust in yourself and 
try out the things and don't let

94
00:05:03,400 --> 00:05:06,880
yourself be discouraged from the
opinions that others have about 

95
00:05:06,920 --> 00:05:08,720
you and your life. 
Yeah. 

96
00:05:09,840 --> 00:05:11,640
Right, thank you so much for 
sharing your story. 

97
00:05:11,640 --> 00:05:12,840
I think it's pretty unique, 
right? 

98
00:05:12,840 --> 00:05:16,280
So even though you started late 
and kind of like struggled, but 

99
00:05:16,280 --> 00:05:19,480
I think looking at your career, 
right, you did a lot of research

100
00:05:19,480 --> 00:05:22,360
in the computer science space. 
So I think that's something that

101
00:05:22,360 --> 00:05:25,000
we all can learn from, right? 
So don't be discouraged, even 

102
00:05:25,000 --> 00:05:27,920
though you started late, you can
always give it a go. 

103
00:05:27,920 --> 00:05:31,280
And if you like it, I think 
anybody can succeed just by 

104
00:05:31,280 --> 00:05:33,600
following, you know, your 
passion and working hard. 

105
00:05:33,960 --> 00:05:38,800
So from all your work, I can see
you love code reviews a lot, 

106
00:05:38,800 --> 00:05:40,560
right? 
So in fact you have a website 

107
00:05:40,560 --> 00:05:42,440
called Awesome Code Reviews 
right? 

108
00:05:42,680 --> 00:05:45,480
So I think code reviews is 1 
aspect that is very important in

109
00:05:45,480 --> 00:05:48,320
software development. 
Some teams actually love code 

110
00:05:48,320 --> 00:05:51,240
reviews, but some teams actually
dread code reviews. 

111
00:05:51,520 --> 00:05:54,360
In your specific case, what 
makes you think that code 

112
00:05:54,360 --> 00:05:59,120
reviews should be awesome? 
Well, that maybe it's the other 

113
00:05:59,120 --> 00:06:00,840
way around. 
I think that if you have code 

114
00:06:00,840 --> 00:06:03,200
reviews on your team, they 
should be awesome, right? 

115
00:06:04,720 --> 00:06:08,280
They can be very dreadful and as
you said, like I would not 

116
00:06:08,280 --> 00:06:10,840
actually have. 
I didn't only do my bachelor's 

117
00:06:10,840 --> 00:06:13,320
in computer science, but I also 
did my masters. 

118
00:06:13,320 --> 00:06:17,880
And then I went on to do my PhD 
and I was in my PHDI was looking

119
00:06:17,880 --> 00:06:22,320
at productivity of developers 
and how software engineering 

120
00:06:22,320 --> 00:06:25,720
practices actually help us 
achieve our goals or not, right?

121
00:06:25,720 --> 00:06:28,440
So my PhD was very empirically 
driven. 

122
00:06:28,440 --> 00:06:32,360
So we did empirical studies 
either with static analysis, 

123
00:06:32,360 --> 00:06:36,600
dynamic analysis, data mining, 
or also qualitative studies 

124
00:06:36,600 --> 00:06:39,120
where we interviewed people. 
And I really like this mixed 

125
00:06:39,120 --> 00:06:41,640
approach, right? 
I, I feel that this brings us 

126
00:06:41,640 --> 00:06:44,320
close as to what's actually 
going on, right? 

127
00:06:44,320 --> 00:06:48,720
So when we do pure studies on 
looking at the data that we have

128
00:06:48,720 --> 00:06:51,800
in front of us, we often don't 
see the big picture or we don't 

129
00:06:51,800 --> 00:06:53,240
see really what's happening 
here. 

130
00:06:53,240 --> 00:06:56,880
We see a lot of correlations, 
but we don't understand the 

131
00:06:56,880 --> 00:06:59,440
causations at all, right? 
And I'm not saying that we 

132
00:06:59,680 --> 00:07:01,920
totally understand the 
causations if you are putting 

133
00:07:02,000 --> 00:07:04,800
people into the picture, right? 
But if you're starting to ask 

134
00:07:04,800 --> 00:07:07,880
them, you come much, much closer
than with the correlations that 

135
00:07:07,880 --> 00:07:10,600
you have in your data, right? 
So I really like this two sided 

136
00:07:10,600 --> 00:07:12,480
approaches where we have mixed 
research. 

137
00:07:12,480 --> 00:07:15,360
And from that, that brought 
matches to code reviews, right? 

138
00:07:15,360 --> 00:07:17,920
I started then working at 
Microsoft Research. 

139
00:07:18,280 --> 00:07:21,640
I did a couple of studies there 
at Microsoft, which was awesome 

140
00:07:21,640 --> 00:07:23,960
because we have like all these, 
you know, we have access to all 

141
00:07:23,960 --> 00:07:26,120
these teams. 
You can really work with product

142
00:07:26,120 --> 00:07:27,800
teams. 
Like I worked with Office, with 

143
00:07:27,800 --> 00:07:31,200
Windows, with Exchange, with all
of them, with Visual Studio, 

144
00:07:31,200 --> 00:07:33,640
right? 
So you have access to all this 

145
00:07:33,640 --> 00:07:37,600
data we had like it was a cloud 
mine called at that time, right?

146
00:07:37,600 --> 00:07:41,640
So we had like all the commit 
messages, we had the source 

147
00:07:41,640 --> 00:07:43,800
code, right? 
We had the error messages, the 

148
00:07:44,000 --> 00:07:45,800
tracing and tracking. 
We had all of that, right? 

149
00:07:45,800 --> 00:07:48,920
We could look at this wealth of 
knowledge from this data, but 

150
00:07:48,920 --> 00:07:51,440
then you also had access to the 
developers. 

151
00:07:51,440 --> 00:07:55,120
And so I tackled with a lot of 
different teams, different 

152
00:07:55,120 --> 00:07:56,880
problems. 
And I saw that cult reviews is 

153
00:07:57,200 --> 00:08:01,040
one of those things that a lot 
of teams struggle actually with,

154
00:08:01,040 --> 00:08:02,840
right? 
So this awesome cult reviews is 

155
00:08:02,840 --> 00:08:06,440
something that some teams 
experience, but a lot of teams 

156
00:08:06,440 --> 00:08:09,400
are not experiencing that. 
And what I also saw is that 

157
00:08:09,600 --> 00:08:12,520
there's no training, right? 
If you say, well, let's do a 

158
00:08:12,520 --> 00:08:16,160
test initiative in our company, 
then well, there are trainings 

159
00:08:16,160 --> 00:08:17,760
and there are courses and there 
are books. 

160
00:08:17,760 --> 00:08:21,400
And you know, we all know that 
for testing we have to 1st learn

161
00:08:21,400 --> 00:08:24,640
the basic stuff and then we 
level up and we get better at 

162
00:08:24,640 --> 00:08:27,080
it. 
But for code reviews somehow, 

163
00:08:27,080 --> 00:08:30,320
and still I need a lot of 
developers, even senior 

164
00:08:30,320 --> 00:08:32,520
developers that I asked them and
they said, well, what do you 

165
00:08:32,520 --> 00:08:35,240
have to learn about code reviews
to just look at the code? 

166
00:08:35,240 --> 00:08:38,120
And I'm like, well, you have to 
learn how to code, right? 

167
00:08:38,120 --> 00:08:40,960
You have to understand code is 
one of the most difficult 

168
00:08:40,960 --> 00:08:42,400
things, right? 
I think it's much harder to 

169
00:08:42,400 --> 00:08:44,960
understand code from somebody 
else than to write your own 

170
00:08:45,400 --> 00:08:48,560
code, right? 
If I ask you to write a bottle 

171
00:08:48,560 --> 00:08:50,520
sort, maybe you can do it, 
right? 

172
00:08:50,520 --> 00:08:52,920
And you go through the thing 
yourself. 

173
00:08:52,920 --> 00:08:55,040
But then if you read it and you 
have to understand that's 

174
00:08:55,040 --> 00:08:57,680
actually bottle sort, right? 
It could be that it takes even 

175
00:08:57,680 --> 00:09:00,040
longer, right? 
It depends a little bit, but 

176
00:09:00,040 --> 00:09:03,440
yeah, so understanding and 
comprehending and changing code 

177
00:09:03,440 --> 00:09:06,440
is first of all something that 
we do a lot more than writing 

178
00:09:06,440 --> 00:09:08,520
code. 
It takes much more time to do 

179
00:09:08,520 --> 00:09:11,400
that and it's really hard. 
And code reviews is one of the 

180
00:09:11,400 --> 00:09:12,760
things that you have to do that,
right? 

181
00:09:12,760 --> 00:09:15,840
It's the foundation is that I am
able to understand the code that

182
00:09:15,840 --> 00:09:19,520
somebody else has written and 
still there are no courses 

183
00:09:19,520 --> 00:09:21,520
around it, right? 
There is no training. 

184
00:09:21,800 --> 00:09:25,840
People are thrown into that and 
go on and give good comments to 

185
00:09:25,840 --> 00:09:27,960
code. 
And then in addition to this 

186
00:09:27,960 --> 00:09:30,360
technical perspective, right, 
that we have to understand the 

187
00:09:30,360 --> 00:09:33,600
code and we have to know how 
good code looks like. 

188
00:09:33,600 --> 00:09:35,960
Or, you know, if there's an anti
pattern, we have to detect it, 

189
00:09:35,960 --> 00:09:37,880
right? 
We have to have this, let's call

190
00:09:37,880 --> 00:09:40,240
it technical knowledge. 
There's also these social 

191
00:09:40,240 --> 00:09:42,920
aspects that are going on in 
Cultivis, which is much harder 

192
00:09:42,920 --> 00:09:46,000
than testing, right? 
For testing, you go and you know

193
00:09:46,000 --> 00:09:49,840
how to write good test cases and
you know about integration tasks

194
00:09:49,840 --> 00:09:51,960
or you know, unit tasks and how 
to do them. 

195
00:09:52,400 --> 00:09:54,680
But then that's it, right? 
But for Cultivis, it's really 

196
00:09:54,680 --> 00:09:57,080
the interaction as well, right? 
With somebody else, with your 

197
00:09:57,080 --> 00:10:00,440
teammates, there are power 
struggles, their hierarchies, 

198
00:10:00,440 --> 00:10:04,160
their cultural things happening.
So it's actually a vault of 

199
00:10:04,160 --> 00:10:07,880
problems that people are thrown 
into without any guidance. 

200
00:10:08,120 --> 00:10:10,400
And so I found this topic very, 
very interesting. 

201
00:10:10,400 --> 00:10:12,560
So it was for me, it was really 
eye opening. 

202
00:10:12,560 --> 00:10:15,480
It was like there were a lot of 
things that came together. 

203
00:10:15,480 --> 00:10:18,080
I thought, why is nobody really 
tackling that right? 

204
00:10:18,080 --> 00:10:21,400
And I guess a lot of people shy 
away because it's hard, right? 

205
00:10:21,400 --> 00:10:23,600
It's a hard problem to solve for
teams. 

206
00:10:23,760 --> 00:10:28,720
There's not one strategy or one 
technique that suits all 

207
00:10:28,720 --> 00:10:32,880
different teams, companies and, 
and, and development practices, 

208
00:10:32,880 --> 00:10:34,720
right? 
And I think This is why a lot of

209
00:10:34,720 --> 00:10:37,320
people are not touching it. 
But I think this is also why I 

210
00:10:37,320 --> 00:10:39,760
think it's really super 
interesting and why I love 

211
00:10:39,760 --> 00:10:43,600
working in the space, love 
working with teams and trying to

212
00:10:44,080 --> 00:10:45,640
find out what their problems 
are. 

213
00:10:45,640 --> 00:10:48,400
And this is also where we are 
now starting to touch the 

214
00:10:48,400 --> 00:10:51,000
developer experience area a 
little bit, right? 

215
00:10:51,000 --> 00:10:54,600
So really understanding what is 
the experience of code reviews 

216
00:10:54,720 --> 00:10:59,320
in the teams for developers? 
And then how can we tweak and 

217
00:10:59,360 --> 00:11:02,960
change their practices, adapt 
different practices so they have

218
00:11:02,960 --> 00:11:06,080
an awesome experience that they 
feel like this is really helping

219
00:11:06,080 --> 00:11:07,640
us. 
We know why we're doing code 

220
00:11:07,640 --> 00:11:09,560
reviews, right? 
We're getting all the benefits 

221
00:11:09,560 --> 00:11:11,440
of the code reviews, not only 
the drawbacks. 

222
00:11:12,040 --> 00:11:14,760
Yeah, if I can classify maybe 
some different software 

223
00:11:14,760 --> 00:11:18,000
development teams, right. 
I think many of the teams which 

224
00:11:18,000 --> 00:11:20,360
are not mature. 
So I think the code reviews 

225
00:11:20,360 --> 00:11:23,440
process probably do not even 
exist, right, Because they are 

226
00:11:23,640 --> 00:11:26,480
all about writing code, churning
out features and getting it 

227
00:11:26,480 --> 00:11:28,880
done, you know, release it to 
the production and things like 

228
00:11:28,880 --> 00:11:31,320
that. 
But as you can tell from high 

229
00:11:31,320 --> 00:11:33,600
performing software development 
teams, actually code reviews is 

230
00:11:33,600 --> 00:11:35,560
kind of like the cornerstone of 
their practice. 

231
00:11:35,560 --> 00:11:38,800
And in fact it is probably one 
of the biggest differentiator in

232
00:11:38,800 --> 00:11:40,960
order to come up with a high 
quality software. 

233
00:11:41,360 --> 00:11:44,680
So I, I think in your website as
well, I can see that you're 

234
00:11:44,680 --> 00:11:48,160
trying to make code reviews as 
part of the superpower for any 

235
00:11:48,160 --> 00:11:50,200
teams, right? 
And I think it's what you 

236
00:11:50,200 --> 00:11:52,520
mentioned, we don't have 
trainings, we don't have 

237
00:11:52,520 --> 00:11:54,840
probably good metrics out of 
that as well, right? 

238
00:11:54,840 --> 00:11:57,760
With testing, maybe you can see 
the test output, test report 

239
00:11:57,960 --> 00:12:00,720
coverage, even maybe with code 
reviews, something that is more 

240
00:12:01,040 --> 00:12:03,320
abstract and it's kind of like 
difficult. 

241
00:12:03,840 --> 00:12:06,600
So maybe tell us a little bit 
more, how can we gauge within 

242
00:12:06,600 --> 00:12:09,560
the team where the code reviews 
is something that we are still 

243
00:12:09,560 --> 00:12:13,240
being challenged or something 
that has actually given us a lot

244
00:12:13,240 --> 00:12:16,080
of impact in terms of software 
development process? 

245
00:12:16,880 --> 00:12:19,120
Yeah. 
So when we look at the 

246
00:12:19,120 --> 00:12:21,640
challenges or the pain points 
that come with code reviews, 

247
00:12:21,640 --> 00:12:25,000
there's really a diverse set of 
problems of challenges that 

248
00:12:25,000 --> 00:12:28,160
people have, right? 
It's a sociotechnical 

249
00:12:28,520 --> 00:12:30,720
engineering practice, right? 
So you have the technical 

250
00:12:30,720 --> 00:12:33,560
problems, you have the social 
problems, and then also it's a 

251
00:12:33,600 --> 00:12:36,360
team practice, which is another 
dimension, right? 

252
00:12:36,360 --> 00:12:40,400
So we have problems with, it's 
not only me writing my code, but

253
00:12:40,400 --> 00:12:42,400
we have to synchronize with each
other, right? 

254
00:12:42,400 --> 00:12:45,040
We have to make sure that I'm 
doing it when you need it, 

255
00:12:45,040 --> 00:12:46,440
right? 
And the other way around. 

256
00:12:46,440 --> 00:12:50,080
And that I give you the feedback
in a way that you are also able 

257
00:12:50,080 --> 00:12:53,520
to take it or to do positive 
changes to it. 

258
00:12:53,800 --> 00:12:55,640
But when it comes to code 
reviewers, what I really like, 

259
00:12:55,640 --> 00:12:58,440
because it's a complex thing 
when we look at it, I think that

260
00:12:58,840 --> 00:13:01,880
I'd really try to break it down 
into two dimensions, right? 

261
00:13:01,880 --> 00:13:04,880
And this is very simplified in 
the abstract. 1 is the speed 

262
00:13:04,880 --> 00:13:07,240
dimension, right? 
And one is the value dimension, 

263
00:13:07,400 --> 00:13:09,160
right? 
So I think if teams have the 

264
00:13:09,160 --> 00:13:12,880
first assessment of their 
practice, we can look at how 

265
00:13:12,880 --> 00:13:14,680
fast are we doing cult reviews, 
right? 

266
00:13:14,680 --> 00:13:17,960
So what's the turn around time? 
How is that experience going on?

267
00:13:17,960 --> 00:13:20,280
And then also what's the value 
that they're getting out, right?

268
00:13:20,280 --> 00:13:22,520
And on my website, you can look 
it up. 

269
00:13:22,520 --> 00:13:24,040
It's called the Code review 
Quadrant. 

270
00:13:24,160 --> 00:13:28,720
I called it that. 
I try to separate teams into 4 

271
00:13:28,720 --> 00:13:30,800
buckets whereby it's very 
fluxed, right? 

272
00:13:30,800 --> 00:13:33,520
So you can be somewhere on those
two dimensions, right? 

273
00:13:33,520 --> 00:13:37,520
But what I see is a lot of teams
have very fast turn around 

274
00:13:37,520 --> 00:13:42,080
times, but they are just looking
over at the glance, if they even

275
00:13:42,080 --> 00:13:44,480
look at it, right? 
So it's more window dressing 

276
00:13:44,480 --> 00:13:47,160
activity. 
We don't really need that kind 

277
00:13:47,160 --> 00:13:49,680
of code review, right? 
We just pretend to be doing 

278
00:13:49,680 --> 00:13:51,480
something and we're not actually
doing it. 

279
00:13:52,000 --> 00:13:55,440
But it's also not such a burden.
And then a lot of teams, and I 

280
00:13:55,440 --> 00:13:58,760
think they have more pain points
is when it takes a lot of time, 

281
00:13:58,760 --> 00:14:00,640
right? 
It takes very long time, but the

282
00:14:00,640 --> 00:14:02,640
value of the cult reviews are 
very low. 

283
00:14:03,240 --> 00:14:05,680
And I see a lot of teams are 
actually somewhere here, right? 

284
00:14:05,760 --> 00:14:09,360
And there are a couple of root 
causes for that, right? 

285
00:14:09,360 --> 00:14:12,000
So when it takes a long time, it
could be that code reviews are 

286
00:14:12,000 --> 00:14:13,960
large, right? 
So you're dreading to even look 

287
00:14:13,960 --> 00:14:17,720
at them or that you are having 
problems really understanding 

288
00:14:17,720 --> 00:14:19,040
the code. 
So it could be that we are 

289
00:14:19,040 --> 00:14:21,320
assigning the wrong people to 
the code reviews, right? 

290
00:14:21,320 --> 00:14:24,520
Or people are randomly assigned 
to different aspects. 

291
00:14:24,680 --> 00:14:28,680
A lot of people do this cross 
team contribute techniques and 

292
00:14:28,680 --> 00:14:30,160
they read somewhere online. 
Right? 

293
00:14:30,160 --> 00:14:33,600
It's a cool good thing to do and
there are definitely papers out 

294
00:14:33,600 --> 00:14:35,200
there. 
That also said, cross team code 

295
00:14:35,200 --> 00:14:37,560
reviews are awesome. 
And then they think like, we 

296
00:14:37,560 --> 00:14:39,720
have to do that, right? 
And I see that so often for 

297
00:14:39,720 --> 00:14:42,920
practices around everything, but
especially code reviews, right? 

298
00:14:42,920 --> 00:14:44,760
So we see there are papers out 
there. 

299
00:14:44,880 --> 00:14:48,760
I even wrote one of those that 
said, well, two people are a 

300
00:14:48,760 --> 00:14:50,280
sweet spot for code reviews, 
right? 

301
00:14:50,280 --> 00:14:53,280
So you have to have at least 2 
code reviewers and then they put

302
00:14:53,280 --> 00:14:56,280
2 code reviewers at somewhere in
the policy of their chains, 

303
00:14:56,280 --> 00:14:58,000
right? 
For GitHub or GitHub or 

304
00:14:58,000 --> 00:15:01,400
Bitbucket, more whatnot. 
And then every minor change 

305
00:15:01,400 --> 00:15:02,960
needs two people to approve, 
right? 

306
00:15:02,960 --> 00:15:05,320
And people get really frustrated
with any like comic. 

307
00:15:06,000 --> 00:15:09,360
This is horrible. 
I, I just did this change and 

308
00:15:09,360 --> 00:15:11,760
now I have to go through the 
whole approval process again, 

309
00:15:11,760 --> 00:15:14,520
right? 
So I think there are a lot of 

310
00:15:14,640 --> 00:15:17,960
problems then because it's such 
a broad practice and it touches 

311
00:15:17,960 --> 00:15:20,680
so many things. 
There are many, many bottlenecks

312
00:15:20,680 --> 00:15:23,920
and many problems and friction 
points that people who get 

313
00:15:23,920 --> 00:15:27,160
thrown into. 
And what I urge people always to

314
00:15:27,240 --> 00:15:30,480
look at is the reason why are we
doing this right? 

315
00:15:30,480 --> 00:15:34,360
And are we accomplishing what we
want to do with what we are 

316
00:15:34,360 --> 00:15:37,040
doing, right? 
So for example, I think it's a 

317
00:15:37,040 --> 00:15:40,880
very valid and very good 
empirical insight, right? 

318
00:15:41,000 --> 00:15:43,880
For example, how many people 
should be have on a code review?

319
00:15:43,880 --> 00:15:47,760
And it's nice to know that two 
people are four eyes, see more, 

320
00:15:47,760 --> 00:15:49,680
right? 
And it's actually even six eyes 

321
00:15:49,680 --> 00:15:52,000
because there is the person that
writing it and then you have to 

322
00:15:52,000 --> 00:15:53,920
have two ribiers. 
So it's good. 

323
00:15:54,160 --> 00:15:58,240
But don't take it like a dog 
mark and say, well, for every 

324
00:15:58,240 --> 00:16:00,640
change, there have to be two 
people, right? 

325
00:16:00,640 --> 00:16:04,080
So what we want to accomplish, 
what probably high risk changes,

326
00:16:04,560 --> 00:16:08,280
it would be really problematic 
if bugs go through, I'll 

327
00:16:08,280 --> 00:16:10,640
probably want to have at least 
two people that are looking 

328
00:16:10,640 --> 00:16:13,200
through that change, right? 
But then if you look at other 

329
00:16:13,200 --> 00:16:15,960
research, we see it all. 
If I'm assigning a person that 

330
00:16:15,960 --> 00:16:18,800
has never seen this code base 
before, chances are very low 

331
00:16:18,800 --> 00:16:21,840
that they are really finding 
bugs or that they can give me 

332
00:16:21,840 --> 00:16:24,720
very valuable feedback, right? 
So, and I have to combine that 

333
00:16:24,720 --> 00:16:27,960
and think about, OK, then if I 
have a high risk change here, I 

334
00:16:27,960 --> 00:16:30,400
assign two people that are 
familiar with that, right? 

335
00:16:30,920 --> 00:16:33,360
But then maybe for another code 
change, I have a different 

336
00:16:33,360 --> 00:16:35,000
reason to do the code reviews, 
right? 

337
00:16:35,000 --> 00:16:37,040
Because finding box is not the 
only reason. 

338
00:16:37,400 --> 00:16:39,000
It's also a lot about knowledge 
sharing. 

339
00:16:39,000 --> 00:16:40,560
It's a lot about mentoring, 
right? 

340
00:16:40,560 --> 00:16:44,240
And so if I want to mentor, then
I will have a very different 

341
00:16:44,280 --> 00:16:47,520
selection for a code reviewer 
and, and put that person on it. 

342
00:16:47,760 --> 00:16:52,160
So I'm giving workshops for code
reviews, I'm giving courses for 

343
00:16:52,160 --> 00:16:53,920
code reviews. 
And a lot of those things are 

344
00:16:53,920 --> 00:16:56,880
really understanding the basic 
and I think empirical research 

345
00:16:56,880 --> 00:17:01,040
is very, very good to have a 
fundamental of understanding of 

346
00:17:01,040 --> 00:17:04,240
how things work. 
But then it's about us reasoning

347
00:17:04,240 --> 00:17:08,160
about the motivations we have 
and if the strategies and the 

348
00:17:08,160 --> 00:17:11,280
techniques that we are, the 
practices that we are putting in

349
00:17:11,280 --> 00:17:14,680
place and also the policies, if 
they make sense to achieve that.

350
00:17:14,680 --> 00:17:16,720
And very often you see a 
mismatch here, right? 

351
00:17:16,720 --> 00:17:21,160
So you see somebody had a very 
good reason to say, well, this 

352
00:17:21,160 --> 00:17:24,000
is, for example, our policy. 
And then they put it in place, 

353
00:17:24,000 --> 00:17:28,920
but it's not as generalizable. 
And so then it becomes hindering

354
00:17:28,920 --> 00:17:31,760
for this practice to be awesome,
to be a good experience. 

355
00:17:31,760 --> 00:17:36,280
And people are are struggling to
re understand and see the value 

356
00:17:36,280 --> 00:17:38,560
of it and very often for good 
reasons, right? 

357
00:17:38,920 --> 00:17:42,800
On the other hand, I have seen 
teams and I've worked with teams

358
00:17:43,080 --> 00:17:45,400
where we could really transform 
their code reviews, right, make 

359
00:17:45,400 --> 00:17:47,760
them reasonable and make them a 
good practice that you're 

360
00:17:47,760 --> 00:17:49,680
achieving your goals. 
And then it's an awesome 

361
00:17:50,000 --> 00:17:52,200
practice, right? 
And it's something that can have

362
00:17:52,200 --> 00:17:53,880
a lot. 
And I know a lot of developers 

363
00:17:53,880 --> 00:17:56,560
that would say, I'm never going 
to company or never going to 

364
00:17:56,560 --> 00:17:58,680
accept the offer from a company 
anymore. 

365
00:17:58,880 --> 00:18:03,120
But code reviews are not part of
the engineering practices. 

366
00:18:03,120 --> 00:18:04,680
And where they are done in a 
good way, right? 

367
00:18:04,680 --> 00:18:07,400
Where you can really learn and 
build this connection with your 

368
00:18:07,400 --> 00:18:10,680
teammates together. 
Yeah, especially in the code 

369
00:18:10,680 --> 00:18:13,760
base that is large enough where 
you also have many developers 

370
00:18:13,760 --> 00:18:16,200
involved in the team, right? 
So I think the quadrants that 

371
00:18:16,200 --> 00:18:17,920
you mentioned definitely makes 
sense, right? 

372
00:18:17,920 --> 00:18:20,880
The speed of the code review 
process and also the value that 

373
00:18:20,880 --> 00:18:22,960
comes out from the code review 
process. 

374
00:18:23,360 --> 00:18:26,320
So maybe since you have been 
dealing a lot with the empirical

375
00:18:26,320 --> 00:18:29,800
study and also seeing a lot of 
different teams, right, Maybe if

376
00:18:29,800 --> 00:18:33,240
you can give us a guideline 
here, like what is fast enough 

377
00:18:33,360 --> 00:18:35,600
in terms of code review? 
Is it the number of days? 

378
00:18:35,600 --> 00:18:38,760
Is it within the same day? 
And what kind of value that 

379
00:18:38,760 --> 00:18:42,240
people should feel when they 
come out of a very good code 

380
00:18:42,240 --> 00:18:44,480
review process? 
So maybe a little bit of, I 

381
00:18:44,480 --> 00:18:46,960
don't know, guidance here so 
that people understand like what

382
00:18:46,960 --> 00:18:49,600
does it mean to be fast and what
does it mean to be valuable in 

383
00:18:49,600 --> 00:18:51,640
terms of code review? 
Yeah. 

384
00:18:51,640 --> 00:18:55,040
So I think that especially this 
past, it's similar to how many 

385
00:18:55,400 --> 00:18:58,240
reviews do you have to have when
one cult reviews, right. 

386
00:18:58,240 --> 00:19:00,680
So I don't think it's good to 
generalize here. 

387
00:19:01,200 --> 00:19:05,120
I think couple of weeks is 
probably too slow, right? 

388
00:19:05,120 --> 00:19:07,880
And I think everybody would 
agree that that's too slow. 

389
00:19:08,240 --> 00:19:11,640
I think a turn around time 
within a day is reasonable, 

390
00:19:11,800 --> 00:19:13,520
right? 
But then it really depends a 

391
00:19:13,520 --> 00:19:17,640
little bit on the pace of the 
company on the team makeup, 

392
00:19:17,640 --> 00:19:19,520
right. 
So where are people located? 

393
00:19:19,520 --> 00:19:21,560
Are they all in the same place, 
right? 

394
00:19:21,560 --> 00:19:24,480
In the same city, in the same 
country, in the same continent, 

395
00:19:24,480 --> 00:19:27,760
right Already maybe in the same 
oftenings already remote, right?

396
00:19:27,760 --> 00:19:31,080
So there are a lot of question 
and very similar to that what I 

397
00:19:31,080 --> 00:19:32,880
said before, right? 
There's not one 

398
00:19:33,160 --> 00:19:36,000
one-size-fits-all strategy here,
right? 

399
00:19:36,000 --> 00:19:38,360
So I don't think there's one 
code review turn around time 

400
00:19:38,360 --> 00:19:40,800
that we can say, but this is 
what we want to achieve. 

401
00:19:40,800 --> 00:19:43,560
Google, for example, has a code 
review turn around time from 

402
00:19:43,560 --> 00:19:47,200
around 4 hours, the upper right,
right, which is very fast. 

403
00:19:47,800 --> 00:19:50,240
And there are probably a couple 
of companies that are faster, 

404
00:19:50,240 --> 00:19:52,280
but not a lot, right? 
Most of them are slower. 

405
00:19:52,520 --> 00:19:55,320
But then for example, some teams
at Microsoft, they have even a 

406
00:19:55,480 --> 00:19:59,040
policy that says, well, if you 
are under 24 hours, you're not 

407
00:19:59,040 --> 00:20:01,600
allowed to approve this code 
review because we want to make 

408
00:20:01,600 --> 00:20:04,280
sure that there are others that 
are having the time to look at 

409
00:20:04,280 --> 00:20:06,880
it that for example, in a 
different time zone, right? 

410
00:20:06,880 --> 00:20:10,760
So on purpose, there is some 
struggling in it where we slow 

411
00:20:10,760 --> 00:20:12,960
it actually down, right? 
We say, well, and it could be 

412
00:20:12,960 --> 00:20:15,920
also a lifestyle thing, right? 
So that we say, well, if you're 

413
00:20:15,920 --> 00:20:19,320
going home at 5:00. 
We don't want somebody to be 

414
00:20:19,320 --> 00:20:22,240
forced to look at it during the 
non business hours. 

415
00:20:22,240 --> 00:20:25,280
So we make sure that there's 
enough time that people have 

416
00:20:25,640 --> 00:20:27,560
actually have to look at the 
thing. 

417
00:20:27,720 --> 00:20:32,200
But again, I think it really 
depends on the kind of team that

418
00:20:32,200 --> 00:20:35,760
we are working with, what kind 
of software are they developing,

419
00:20:35,760 --> 00:20:38,600
right? 
So if you have a very fast-paced

420
00:20:38,600 --> 00:20:42,400
environment or we can change the
software really quickly, I think

421
00:20:42,400 --> 00:20:44,480
then code reach should be also 
quicker, right? 

422
00:20:44,480 --> 00:20:46,640
If you have something that takes
a lot of time. 

423
00:20:47,080 --> 00:20:51,160
Nowadays, what I see more and 
more people struggling with is 

424
00:20:51,160 --> 00:20:54,400
not even that we are maybe in a 
different time zone, but 

425
00:20:54,680 --> 00:20:58,600
nowadays it's even about the 
pipelines that we are having, 

426
00:20:58,600 --> 00:20:59,720
right? 
They're getting big, especially 

427
00:20:59,720 --> 00:21:02,560
for bigger companies, right, 
That have a large test suite, 

428
00:21:02,560 --> 00:21:05,520
for example, that have a lot of 
code that needs to be compiled, 

429
00:21:05,520 --> 00:21:07,520
right? 
So we are scheduling our 

430
00:21:07,520 --> 00:21:10,000
continuous integration pipeline,
which is also right. 

431
00:21:10,000 --> 00:21:13,360
So we wanted that. 
But nowadays we see then, well, 

432
00:21:13,360 --> 00:21:14,920
this takes really a lot of time,
right? 

433
00:21:14,920 --> 00:21:17,840
So do we want to make this PR 
now or do we wait a little, a 

434
00:21:17,840 --> 00:21:20,160
little bit, right? 
And even the cost that we have 

435
00:21:20,240 --> 00:21:23,400
for compiled time and for test 
time and so on, right? 

436
00:21:23,400 --> 00:21:26,480
So I'm not saying that this is a
good reason to slow your code 

437
00:21:26,480 --> 00:21:28,360
reviews down. 
I'm just saying this is a new 

438
00:21:28,360 --> 00:21:31,400
dimension of problems that I see
popping up over the last couple 

439
00:21:31,400 --> 00:21:33,600
of years that's getting bigger 
and bigger for a lot of 

440
00:21:33,600 --> 00:21:36,720
companies, right? 
It should be fast enough that 

441
00:21:36,720 --> 00:21:38,840
you don't forget what you're 
working on, right? 

442
00:21:38,840 --> 00:21:42,440
So when I work on something and 
I'm waiting, let's say four 

443
00:21:42,440 --> 00:21:44,720
days, it could be that I have 
already forgotten, right? 

444
00:21:44,720 --> 00:21:47,640
It could be that it's slowing me
down and I feel like this is 

445
00:21:47,640 --> 00:21:50,160
actually too slow. 
So I would really come back to 

446
00:21:50,160 --> 00:21:54,400
the experience of people and ask
them for how do you feel about 

447
00:21:54,400 --> 00:21:56,880
it, right? 
So when you get the code review 

448
00:21:56,880 --> 00:22:00,160
tomorrow or let's say in two 
days, do you feel this is 

449
00:22:00,160 --> 00:22:02,400
holding you back? 
There's actually something else 

450
00:22:02,400 --> 00:22:05,360
that you're working on then. 
Well, we have to increase the 

451
00:22:05,360 --> 00:22:07,880
pace, right? 
If people are actually quite OK 

452
00:22:07,880 --> 00:22:11,000
with it and they say, well, 
that's totally fine for our 

453
00:22:11,000 --> 00:22:14,480
rhythm that we have because we 
have this kind of work style and

454
00:22:14,480 --> 00:22:16,880
I'm working actually on that and
this is over there. 

455
00:22:16,880 --> 00:22:19,720
I know exactly. 
And then let's say 3 days, it 

456
00:22:19,720 --> 00:22:22,800
comes back and I have scheduled 
it and I'm prepared that this is

457
00:22:22,800 --> 00:22:25,960
coming back back, then, then 
that's fine, right? 

458
00:22:26,000 --> 00:22:29,440
So I would go back really to the
experience of how people are 

459
00:22:29,840 --> 00:22:32,680
feeling about the turn around 
times. 

460
00:22:33,120 --> 00:22:35,360
And this is also when I'm doing 
a workshop with the team, for 

461
00:22:35,360 --> 00:22:38,080
example, one of the things that 
I'm doing with them, I walk with

462
00:22:38,080 --> 00:22:40,840
them through a service, through 
a questionnaire where we get 

463
00:22:40,840 --> 00:22:43,640
these pain points out and NBC 
well, actually turn around time 

464
00:22:43,640 --> 00:22:47,320
is a problem or is not a problem
or what kind of degree this 

465
00:22:47,320 --> 00:22:50,200
problem is, right? 
And the interesting thing is 

466
00:22:50,200 --> 00:22:52,400
also when I'm working, for 
example, with larger 

467
00:22:52,400 --> 00:22:55,480
organizations, sometimes it 
could be that have several teams

468
00:22:55,480 --> 00:22:58,120
from different departments on 
one workshop. 

469
00:22:58,760 --> 00:23:02,000
And then we would have like this
team thinks could we turn around

470
00:23:02,000 --> 00:23:03,720
time server actually way too 
slow. 

471
00:23:04,000 --> 00:23:06,880
And this thinks it's just fine. 
But the one that thinks it's too

472
00:23:06,880 --> 00:23:09,800
slow have a faster cadence than 
the one that are thinking it's 

473
00:23:09,800 --> 00:23:11,960
fine. 
And so that's why I think it's 

474
00:23:11,960 --> 00:23:14,600
really, I would even say 
unprofessional to say, well, 

475
00:23:14,720 --> 00:23:17,760
let's say 4 hours, that's what 
you should do or 24 hours, 

476
00:23:17,760 --> 00:23:21,160
that's what you should do. 
But I would definitely think in 

477
00:23:21,160 --> 00:23:24,280
dates or a day, not in weeks, 
right? 

478
00:23:24,280 --> 00:23:28,080
So everything that takes several
days, I think is for a lot of 

479
00:23:28,080 --> 00:23:30,920
people in general a problem, 
yeah. 

480
00:23:31,720 --> 00:23:33,960
Thanks for the insights. 
So I think definitely makes 

481
00:23:33,960 --> 00:23:36,120
sense, right? 
It's highly contextual based on 

482
00:23:36,120 --> 00:23:38,920
your team set up and maybe the 
also the pace that you are 

483
00:23:38,920 --> 00:23:41,040
working with, right. 
And I think you mentioned a 

484
00:23:41,040 --> 00:23:44,120
couple of times about experience
since you're also part of this 

485
00:23:44,120 --> 00:23:46,920
developer experience research 
with Abby Noda and you know 

486
00:23:46,920 --> 00:23:50,120
Doctor McGrath and story and go 
for screen, right? 

487
00:23:50,440 --> 00:23:52,640
So something that is quite 
related to developer experience 

488
00:23:52,640 --> 00:23:55,680
is definitely this code review 
process and even the state of 

489
00:23:55,680 --> 00:23:59,240
DevOps report also include code 
review as part of the factor in 

490
00:23:59,240 --> 00:24:02,440
the high performing team, right?
So maybe in your point of view, 

491
00:24:02,440 --> 00:24:04,800
right, since you come up with 
this research from the developer

492
00:24:04,800 --> 00:24:09,440
experience as well, how highly 
correlated is code review with a

493
00:24:09,440 --> 00:24:11,920
good development experience that
developers are having? 

494
00:24:12,760 --> 00:24:17,640
Yeah, I think that my answer 
would be the same, right? 

495
00:24:17,640 --> 00:24:21,080
So I don't think that you can 
really correlate having code 

496
00:24:21,080 --> 00:24:23,240
reviews with a good experience, 
right? 

497
00:24:24,120 --> 00:24:28,240
But they can impact experience 
in both ways, right? 

498
00:24:28,240 --> 00:24:30,720
So you can have code reviews 
that impact the developer 

499
00:24:30,720 --> 00:24:33,840
experience in a positive and in 
a negative way, right? 

500
00:24:33,840 --> 00:24:37,280
So slow code reviews or code 
reviews that are having a harsh 

501
00:24:37,280 --> 00:24:41,760
feedback culture, we definitely 
see that they are decreasing the

502
00:24:42,040 --> 00:24:44,520
code, the developer experience, 
right? 

503
00:24:44,760 --> 00:24:48,120
But code review is where we have
like a lot of learning going on,

504
00:24:48,120 --> 00:24:51,080
a lot of mentoring where people 
feel safe to talk about. 

505
00:24:51,080 --> 00:24:53,880
And this has again, to do with 
psychological safety as well, 

506
00:24:53,880 --> 00:24:55,880
right? 
And this is coming up also in 

507
00:24:55,880 --> 00:24:59,240
the Dora research, for example. 
Psychological safety is super 

508
00:24:59,240 --> 00:25:03,480
important for developer 
experience for high performing 

509
00:25:03,480 --> 00:25:05,560
teams as well. 
I came up in that research as 

510
00:25:05,560 --> 00:25:08,000
well, right? 
And also in our DX research, 

511
00:25:08,240 --> 00:25:11,800
psychological safety and culture
were the only factors from all 

512
00:25:11,800 --> 00:25:14,640
the different factors that are 
influencing developer 

513
00:25:14,640 --> 00:25:17,200
experience. 
But we could see that it has 

514
00:25:17,200 --> 00:25:19,000
bigger impact than the others, 
right? 

515
00:25:19,000 --> 00:25:22,560
So we asked them, for example, 
because we had like over 25 

516
00:25:22,560 --> 00:25:25,720
factors that we distilled in 
this research and there were 

517
00:25:25,720 --> 00:25:28,400
more example factors like 
program management, right? 

518
00:25:28,400 --> 00:25:31,640
So how reasonable are the 
deadlines or how much technical 

519
00:25:31,640 --> 00:25:35,320
debt do you have or how much 
focus time do you have and all 

520
00:25:35,320 --> 00:25:36,880
of that. 
And, and then we'd wanted to 

521
00:25:36,880 --> 00:25:39,080
know which are the most 
important ones, right? 

522
00:25:39,080 --> 00:25:41,560
And we hope that let's say they 
are emerging 3. 

523
00:25:41,560 --> 00:25:44,280
And we can say, oh, those three 
things is what people should 

524
00:25:44,280 --> 00:25:46,280
look at, right? 
But none of that actually 

525
00:25:46,280 --> 00:25:49,160
happened in our research. 
People were saying, oh, this is 

526
00:25:49,160 --> 00:25:52,000
really impacting my developer 
experience and that. 

527
00:25:52,000 --> 00:25:54,280
And so we went through all the 
factors, right? 

528
00:25:54,280 --> 00:25:58,000
You know, seemed like quite 
random depending on different 

529
00:25:58,000 --> 00:25:59,960
things. 
And we realized that what's 

530
00:25:59,960 --> 00:26:03,160
really important for developer 
experience, it's not one 

531
00:26:03,160 --> 00:26:06,120
particular factor, but your 
seniority, right? 

532
00:26:06,360 --> 00:26:09,880
Your responsibility, the 
maturity of your company, right,

533
00:26:09,880 --> 00:26:13,560
the problems that you're facing.
So there were, again, contextual

534
00:26:13,720 --> 00:26:18,280
things that are making one or 
the other factors more important

535
00:26:18,480 --> 00:26:21,560
or not. 
But the only one thing that came

536
00:26:21,560 --> 00:26:23,400
up over and over was culture, 
right? 

537
00:26:23,400 --> 00:26:26,800
So people were saying, well, I'm
not believing the company for a 

538
00:26:26,800 --> 00:26:30,240
bad code base or for a lot of 
legacy code or, you know, 

539
00:26:30,480 --> 00:26:34,720
protected, but I'm going if it 
toxic there, right, If people 

540
00:26:34,720 --> 00:26:39,120
are harsh or if people are not 
hurt or you know, and this was 

541
00:26:39,120 --> 00:26:41,360
very consistent again. 
So a lot of people said that and

542
00:26:41,360 --> 00:26:45,360
I think I want to connect it to 
cult abuse again, because the 

543
00:26:45,360 --> 00:26:49,760
cult abuse, this psychological 
safety is very important, right?

544
00:26:49,760 --> 00:26:53,120
So if you have, I think you can 
have slow cult abuse and it's 

545
00:26:53,600 --> 00:26:56,320
painful, right? 
But if you have psychological 

546
00:26:56,320 --> 00:26:59,400
safety and in order to get good 
feedback and people really take 

547
00:26:59,800 --> 00:27:03,200
time to look at your code and 
mentor you and also see when 

548
00:27:03,200 --> 00:27:05,920
you're doing good, right? 
So when there is this nice 

549
00:27:05,920 --> 00:27:08,640
experience with the good 
valuable feedback that you're 

550
00:27:08,640 --> 00:27:11,400
getting back, this is when it's 
still OK, right? 

551
00:27:11,400 --> 00:27:14,760
When it's still improvement to 
your developer experience. 

552
00:27:14,760 --> 00:27:18,000
But once you're getting in this 
power struggles, if you get 

553
00:27:18,000 --> 00:27:22,360
harsh feedback, right, this is 
very, very bad for your 

554
00:27:22,360 --> 00:27:24,320
developer experience. 
And this is when people leave, 

555
00:27:24,400 --> 00:27:26,280
right? 
So this has a big impact. 

556
00:27:26,280 --> 00:27:30,400
And now I'm just putting an 
anecdote here that most teams, 

557
00:27:30,400 --> 00:27:32,520
right? 
I have to say that most teams 

558
00:27:32,520 --> 00:27:35,760
that I'm working with, if you 
point them to some of the harsh 

559
00:27:35,760 --> 00:27:38,680
comments or problems that 
they're having, most of them are

560
00:27:38,680 --> 00:27:41,360
wonderful and they say, Oh yeah,
I think we're changing that. 

561
00:27:41,760 --> 00:27:45,040
But then there are some cases, 
right, that are coming in and 

562
00:27:45,040 --> 00:27:47,640
they're the most toxic. 
And the ones that are the most 

563
00:27:47,640 --> 00:27:50,240
toxic would say there's no 
problem, right? 

564
00:27:50,680 --> 00:27:52,160
It's just you have to deal with 
it. 

565
00:27:52,160 --> 00:27:55,560
So it's very interesting for 
people that I have never seen a 

566
00:27:55,560 --> 00:28:00,160
team that has very nice feedback
that then did, for example, some

567
00:28:00,160 --> 00:28:03,600
training on giving respectful 
feedback that didn't learn 

568
00:28:03,600 --> 00:28:05,840
something. 
I have only seen really toxic 

569
00:28:06,120 --> 00:28:09,880
teams, not a lot, but a couple, 
right, that are coming in and 

570
00:28:10,000 --> 00:28:13,040
doing a course on respectful 
feedback and they're completely 

571
00:28:13,040 --> 00:28:14,280
toxic. 
They're saying we are not 

572
00:28:14,280 --> 00:28:17,400
learning anything here, right? 
This is not for us, right? 

573
00:28:17,400 --> 00:28:22,000
So it's sometimes if you have 
this toxicity in your company or

574
00:28:22,000 --> 00:28:24,600
in your culture, it's really 
hard to get rid of, right? 

575
00:28:24,600 --> 00:28:29,080
People are that are very often 
blindly blind to the problems 

576
00:28:29,080 --> 00:28:31,360
that are going on. 
So it's a hard problem to solve,

577
00:28:31,400 --> 00:28:33,000
but I think a very important 
one. 

578
00:28:33,720 --> 00:28:34,960
Thanks for highlighting again, 
right? 

579
00:28:34,960 --> 00:28:38,320
There's no one single factor to 
actually show good developer 

580
00:28:38,320 --> 00:28:39,480
experience. 
So I think like what you 

581
00:28:39,480 --> 00:28:42,080
mentioned, right, it's a socio 
technical kind of a situation, 

582
00:28:42,080 --> 00:28:44,120
right? 
So it's highly contextual and 

583
00:28:44,120 --> 00:28:45,960
sometimes it's about perception 
as well, right? 

584
00:28:45,960 --> 00:28:48,560
I think you guys also mentioned 
that in the paper, right? 

585
00:28:48,560 --> 00:28:52,120
So developer experience, it's 
not just about the quantitative 

586
00:28:52,240 --> 00:28:55,160
aspects, right? 
Maybe like metrics, the speed 

587
00:28:55,160 --> 00:28:57,560
or, or the test coverage and 
things like that, but also the 

588
00:28:57,560 --> 00:29:00,880
perception from the developer. 
So don't forget to ask the 

589
00:29:00,880 --> 00:29:03,440
developers as well. 
Like what do we they think about

590
00:29:03,440 --> 00:29:06,200
the code review process? 
So if everyone is get getting 

591
00:29:06,200 --> 00:29:08,560
any value out of it or is the 
process is too slow? 

592
00:29:08,560 --> 00:29:10,080
So I think don't forget that 
aspect. 

593
00:29:10,240 --> 00:29:12,920
So not everything can be 
measured just by numbers alone, 

594
00:29:12,920 --> 00:29:14,400
right? 
So I think you mentioned also 

595
00:29:14,400 --> 00:29:17,520
psychological safety and all 
this cultural aspect, right? 

596
00:29:17,760 --> 00:29:20,800
Maybe apart from, you know, 
toxic commands or maybe some 

597
00:29:20,800 --> 00:29:22,720
kind of a power struggle that 
happens. 

598
00:29:23,080 --> 00:29:26,200
How can people start to think 
about this aspect more? 

599
00:29:26,200 --> 00:29:28,640
Because I think in many teams 
when they talk about code 

600
00:29:28,640 --> 00:29:31,440
reviews, they just look at the 
code and just criticize, right? 

601
00:29:31,440 --> 00:29:35,000
It could be the wrong algorithm,
variable naming, or even could 

602
00:29:35,000 --> 00:29:37,720
be like the syntactic thing, but
you know, like the spaces and 

603
00:29:37,720 --> 00:29:39,400
the tabs. 
Maybe some people have these 

604
00:29:39,400 --> 00:29:40,360
jokes. 
But yeah. 

605
00:29:40,360 --> 00:29:43,080
What other aspects that you 
think is very important for 

606
00:29:43,080 --> 00:29:45,880
people to switch their mindset? 
Not just focusing on the code, 

607
00:29:46,160 --> 00:29:48,520
but also focusing on the 
psychological aspect and the 

608
00:29:48,520 --> 00:29:52,920
cultural aspect as well. 
So what I have seen and I've 

609
00:29:52,920 --> 00:29:56,640
even observed a lot of 
developers doing cultural based 

610
00:29:56,640 --> 00:29:58,240
and I see it over and over 
again. 

611
00:29:58,240 --> 00:30:02,200
I think the problems, a lot of 
problems that we are facing is 

612
00:30:02,360 --> 00:30:06,320
due to the interface, right? 
So we are actually giving 

613
00:30:06,320 --> 00:30:09,680
somebody else feedback, but 
we're sitting in front of a 

614
00:30:09,680 --> 00:30:14,400
computer looking at the tool and
having a text box there and we 

615
00:30:14,400 --> 00:30:17,560
are actually alone. 
And so now the whole thing 

616
00:30:17,560 --> 00:30:19,200
starts. 
So we are not actually giving 

617
00:30:19,200 --> 00:30:24,120
feedback to a person, but we are
just fitting in text boxes and 

618
00:30:24,120 --> 00:30:27,240
looking at code. 
And it's a very algorithmic way 

619
00:30:27,240 --> 00:30:29,680
of thinking as far right. 
So I'm looking through the code,

620
00:30:29,680 --> 00:30:33,840
it's very hard to do. 
It needs a lot of praying power 

621
00:30:33,840 --> 00:30:36,840
to comprehend, right? 
And I think most people forget, 

622
00:30:36,840 --> 00:30:39,880
and that's I think totally human
forget that they're actually 

623
00:30:39,880 --> 00:30:42,960
talking to a person. 
I think this is also why a lot 

624
00:30:42,960 --> 00:30:46,880
of consultants really hates cult
reviews, right? 

625
00:30:46,880 --> 00:30:48,720
They discourage cult reviews a 
lot. 

626
00:30:48,720 --> 00:30:52,200
And it's a mob programming and 
formal prominence, well, pair 

627
00:30:52,200 --> 00:30:54,040
program. 
And this is the absolute only 

628
00:30:54,040 --> 00:30:56,640
thing that we can do. 
And this is the right thing to 

629
00:30:56,640 --> 00:30:59,360
do. 
And I think mob probing and pair

630
00:30:59,360 --> 00:31:03,000
programming has the advantage 
that you're sitting next to a 

631
00:31:03,000 --> 00:31:05,720
person. 
So it's very, we are reminding 

632
00:31:05,720 --> 00:31:07,960
all the time that we are 
actually talking to somebody, 

633
00:31:07,960 --> 00:31:09,840
right? 
So for example, for me also it 

634
00:31:09,840 --> 00:31:12,840
helps that we are using voice 
now that we are talking, right? 

635
00:31:12,840 --> 00:31:16,360
You're not in the same room, but
I see your face, you're talking 

636
00:31:16,360 --> 00:31:19,960
to each other. 
So somehow it becomes very clear

637
00:31:19,960 --> 00:31:21,840
that I'm actually talking to a 
human, right? 

638
00:31:21,840 --> 00:31:24,880
And it definitely changes. 
Like if you would send me a 

639
00:31:24,880 --> 00:31:28,480
questionnaire with all your 
questions, I think my answers 

640
00:31:28,480 --> 00:31:29,800
would be completely different, 
right? 

641
00:31:29,800 --> 00:31:32,880
Maybe better, I don't know, 
because there would be more 

642
00:31:32,880 --> 00:31:36,560
thought through, right? 
So maybe I would appear more 

643
00:31:36,720 --> 00:31:40,520
knowledgeable and more thought 
through because, well, I did. 

644
00:31:40,880 --> 00:31:42,960
But it would be less of a 
conversation, right? 

645
00:31:42,960 --> 00:31:45,360
It would be less human. 
It would be less interaction, 

646
00:31:45,360 --> 00:31:47,800
would be less conversation. 
It would be a script. 

647
00:31:47,800 --> 00:31:50,560
So maybe it's even less 
interesting for people to read 

648
00:31:50,560 --> 00:31:55,200
as when they're experiencing me 
and my thought process just in 

649
00:31:55,200 --> 00:31:57,120
time, right? 
And similar for code reviews, I 

650
00:31:57,120 --> 00:31:59,880
think this interface that we 
have that we're actually looking

651
00:32:00,080 --> 00:32:03,800
at the IDE or let's say at 
GitHub or your, your code review

652
00:32:04,080 --> 00:32:08,040
tooling, it looks like the IDE 
you're looking at your computer 

653
00:32:08,040 --> 00:32:09,880
and you're not actually talking 
to a person. 

654
00:32:10,200 --> 00:32:14,400
So what I suggest is if you're 
giving feedback or we think 

655
00:32:14,400 --> 00:32:17,920
about how is that valuable to 
that person and really ambition 

656
00:32:17,920 --> 00:32:19,720
the person that we are talking 
to, right? 

657
00:32:19,720 --> 00:32:22,520
So maybe before you start your 
code review, think about, OK, 

658
00:32:23,000 --> 00:32:26,400
I'm talking now to Michaela, who
is Michaela, right? 

659
00:32:26,440 --> 00:32:30,200
Very quickly, who is Michaela? 
Is he new in the company or is 

660
00:32:30,200 --> 00:32:33,480
he new in the team? 
Or is he a tech lead or what's 

661
00:32:33,480 --> 00:32:37,600
the situation occur and what 
value can I provide to her? 

662
00:32:37,600 --> 00:32:40,400
And that shapes a lot of the, 
the code real conversation, 

663
00:32:40,400 --> 00:32:42,760
right? 
Because it will influence if I'm

664
00:32:42,760 --> 00:32:45,880
highlighting this and what kind 
of words I'm using. 

665
00:32:46,400 --> 00:32:49,280
And then when you're doing the 
code reviews, I think it's OK to

666
00:32:49,280 --> 00:32:52,400
go into this very algorithmic 
thinking and this very technical

667
00:32:52,400 --> 00:32:54,320
thinking. 
And most of the time it's just 

668
00:32:54,320 --> 00:32:57,440
note taking for us, right? 
It's like, I think this is wrong

669
00:32:57,440 --> 00:32:59,960
or this is strange. 
I don't understand that, right? 

670
00:32:59,960 --> 00:33:04,080
So we can make our notes, but 
then when we have our notes, 

671
00:33:04,080 --> 00:33:06,560
then think about how would I say
that to a person, right? 

672
00:33:06,560 --> 00:33:08,480
Would I say I don't understand 
that? 

673
00:33:08,480 --> 00:33:11,240
Or would I say, oh, can you help
me to understand this? 

674
00:33:11,240 --> 00:33:12,520
Or how would I phrase that, 
right? 

675
00:33:12,520 --> 00:33:14,520
What would I say in this 
situation? 

676
00:33:14,520 --> 00:33:18,520
If it's a conversation with a 
person, unfortunately GitHub and

677
00:33:18,520 --> 00:33:21,760
so on, you can actually put in 
your comments and not send them 

678
00:33:21,760 --> 00:33:23,760
immediately. 
But it's dangerous, right? 

679
00:33:23,760 --> 00:33:27,520
If you reload your Chrome or 
your browser, then it could be 

680
00:33:27,520 --> 00:33:29,360
gone. 
So I'm not suggesting that. 

681
00:33:29,360 --> 00:33:33,120
But once you've typed in your 
comment, go back and it takes a 

682
00:33:33,120 --> 00:33:34,080
little bit. 
It's OK. 

683
00:33:34,480 --> 00:33:37,600
Go back and reread it again and 
then rephrase it. 

684
00:33:37,600 --> 00:33:41,120
And if you look, for example, at
maintainers at large open source

685
00:33:41,120 --> 00:33:44,560
projects, right, if you observe 
them doing contributes, you can 

686
00:33:44,560 --> 00:33:47,120
see exactly that, right? 
So they would write a comment 

687
00:33:47,480 --> 00:33:50,960
and, and a lot of them that are 
skilled and experienced, right, 

688
00:33:51,320 --> 00:33:53,840
they write the comment, it's 
very technical. 

689
00:33:53,920 --> 00:33:56,800
And then when you're, they go 
back to the, to the start and 

690
00:33:56,800 --> 00:34:01,480
say hello, right, Maybe the 
name, Oh, thank you for your 

691
00:34:01,480 --> 00:34:04,240
contribution, right? 
So it makes it a conversation, 

692
00:34:04,240 --> 00:34:05,800
right? 
So they put down their notes and

693
00:34:05,800 --> 00:34:08,320
then they are starting thinking 
about what the person that I'm 

694
00:34:08,320 --> 00:34:10,600
talking to. 
And then we rephrase that. 

695
00:34:11,080 --> 00:34:13,360
If you look on 
awesomecultures.com, there is 

696
00:34:13,360 --> 00:34:15,320
one article that I wrote with 
tips. 

697
00:34:15,320 --> 00:34:18,199
I think it's 10 tips and I think
they are also very helpful, 

698
00:34:18,199 --> 00:34:19,560
right? 
It's for example, not to 

699
00:34:19,560 --> 00:34:23,360
generalize or phrasing your 
comments as I comments. 

700
00:34:23,360 --> 00:34:28,080
So I think or for me or to me, 
right, So that this is feedback 

701
00:34:28,080 --> 00:34:30,560
that's coming from you. 
Another a general statement. 

702
00:34:30,800 --> 00:34:35,199
Also, words like just or easy 
can be very problematic. 

703
00:34:35,239 --> 00:34:37,600
Code reviews in general, also in
documentation, right? 

704
00:34:37,600 --> 00:34:39,960
So we should avoid them. 
They're actually plug insurance 

705
00:34:39,960 --> 00:34:43,320
that you can use in your IDE 
that help you and alert you when

706
00:34:43,320 --> 00:34:45,880
you're using those words, 
condescending words. 

707
00:34:45,880 --> 00:34:47,520
Yeah. 
So yeah, maybe have a look at 

708
00:34:47,520 --> 00:34:49,880
that as well. 
So there are very practical tips

709
00:34:49,880 --> 00:34:53,960
that you can also use to make 
your phrasing or yeah up your 

710
00:34:53,960 --> 00:34:57,000
code review comments better. 
Thank you for highlighting the 

711
00:34:57,000 --> 00:34:57,880
human aspect. 
Right. 

712
00:34:57,880 --> 00:35:01,000
So I think, yeah, most of the 
people, most developers are so 

713
00:35:01,000 --> 00:35:04,200
accustomed to this code review 
process where it is async, 

714
00:35:04,200 --> 00:35:06,200
that's the first thing. 
And it's tool based, right? 

715
00:35:06,200 --> 00:35:09,800
Either on the GitHub website or 
is it in your IDE, right. 

716
00:35:10,040 --> 00:35:13,240
So they never actually deal with
the actual person and it's 

717
00:35:13,240 --> 00:35:16,560
always async and tool based. 
So I think bringing the human 

718
00:35:16,560 --> 00:35:18,720
aspect in is definitely very 
important. 

719
00:35:19,040 --> 00:35:22,640
Choosing the words and go going 
back and reviewing what you 

720
00:35:22,640 --> 00:35:24,240
wrote, I think it's also very 
important. 

721
00:35:24,240 --> 00:35:27,520
So I think all these are 
definitely key aspects to make 

722
00:35:27,520 --> 00:35:30,480
the code review culture kind of 
like a good one rather than the 

723
00:35:30,480 --> 00:35:32,800
toxic 1. 
And I hope people can learn from

724
00:35:32,800 --> 00:35:35,280
this experience and this 
anecdotes that you just 

725
00:35:35,280 --> 00:35:38,640
mentioned here. 
So speaking about tools, right, 

726
00:35:38,800 --> 00:35:41,000
I know that you just mentioned 
one plug in, right? 

727
00:35:41,000 --> 00:35:45,000
I know that there's another plug
in to help you do more inclusive

728
00:35:45,000 --> 00:35:46,600
comments, that kind of stuff, 
right? 

729
00:35:46,880 --> 00:35:50,120
And also these days, there are a
lot of automation and AI tools 

730
00:35:50,120 --> 00:35:52,240
available as well. 
So maybe from the tooling 

731
00:35:52,240 --> 00:35:55,440
aspect, can you share a little 
bit more what is the trend now? 

732
00:35:55,440 --> 00:35:59,840
Is AI code review a thing now? 
Is it becoming like you don't 

733
00:35:59,840 --> 00:36:02,080
need another developer to 
actually review or you can 

734
00:36:02,240 --> 00:36:05,560
actually rely a lot on AI? 
So maybe a little bit of your 

735
00:36:05,560 --> 00:36:06,840
experience here that you can 
share. 

736
00:36:07,600 --> 00:36:10,880
Yeah, Maybe I start really with 
the very basic tooling because 

737
00:36:10,880 --> 00:36:13,520
you said that, right. 
I think a lot of people, for 

738
00:36:13,520 --> 00:36:15,880
example, that are in my 
workshops, they're coming in 

739
00:36:15,880 --> 00:36:19,680
with this idea that code reviews
always have to be on GitHub or 

740
00:36:19,680 --> 00:36:22,680
GitLab or Bitbucket and have to 
be asynchronous, right? 

741
00:36:22,920 --> 00:36:26,080
But that's not true. 
Code reviews, any form of 

742
00:36:26,080 --> 00:36:28,040
reviewing your code is code 
review, right? 

743
00:36:28,040 --> 00:36:31,760
So you can do it online, you can
do it via Zoom, you can do it 

744
00:36:31,760 --> 00:36:34,600
next to each other, right? 
One, I mean, can you maybe often

745
00:36:34,600 --> 00:36:36,840
call it over the shoulder 
reviews right now, which is, you

746
00:36:37,160 --> 00:36:39,800
know, you're popping over and 
looking at the code of somebody,

747
00:36:39,800 --> 00:36:41,360
right? 
And then we have the tooling 

748
00:36:41,360 --> 00:36:45,360
that obviously help us a little 
bit to get more systematic or to

749
00:36:45,360 --> 00:36:48,920
do asynchronous contribution. 
Again, I think very important 

750
00:36:48,920 --> 00:36:52,040
what I said at the beginning, 
thinking about why are we doing 

751
00:36:52,040 --> 00:36:53,480
that, What do we want to 
achieve? 

752
00:36:53,480 --> 00:36:57,280
And then using the right tool is
a good approach, right? 

753
00:36:57,280 --> 00:36:59,560
And the right tool is also the 
right communication channel, 

754
00:36:59,560 --> 00:37:01,960
right? 
So if I have a young person 

755
00:37:01,960 --> 00:37:05,040
there and has a lot of problems 
with the code and understanding,

756
00:37:05,040 --> 00:37:08,520
you know, maybe how we do things
in this company, then writing 

757
00:37:08,520 --> 00:37:12,320
them hundreds of comment in an 
asynchronous style and sending 

758
00:37:12,320 --> 00:37:14,720
them over isn't the best 
approach, right? 

759
00:37:14,720 --> 00:37:18,160
Maybe I should, if we are in the
same office, we should arrange a

760
00:37:18,160 --> 00:37:21,120
meeting together. 
Or if you are not located 

761
00:37:21,120 --> 00:37:24,600
together, we arrange a call and 
we go at the same time through 

762
00:37:24,600 --> 00:37:27,520
the code and I'm showing, and 
this is definitely a better way 

763
00:37:27,520 --> 00:37:30,120
to go about the problem, right? 
And also to do the code review 

764
00:37:30,120 --> 00:37:32,480
or to the teaching or the 
mentoring. 

765
00:37:33,200 --> 00:37:36,320
But then if in a different, a 
very different situation, that 

766
00:37:36,320 --> 00:37:39,560
would be an overkill, right? 
We don't have to jump on a call 

767
00:37:39,560 --> 00:37:41,400
for everything that we're 
looking at, right? 

768
00:37:41,400 --> 00:37:43,800
I can just send you an 
asynchronous code review and it 

769
00:37:43,800 --> 00:37:45,760
may be a better experience for 
you and for me. 

770
00:37:46,080 --> 00:37:48,960
And then we have these tools 
that I think the tools are 

771
00:37:49,040 --> 00:37:52,080
wonderful, right? 
Especially tools around 

772
00:37:52,080 --> 00:37:54,080
automatic detection of problems,
right? 

773
00:37:54,080 --> 00:37:58,000
They can be very, very helpful. 
They can also be helpful to get 

774
00:37:58,000 --> 00:38:01,440
away from this picking aspects 
of code reviews, right? 

775
00:38:01,520 --> 00:38:04,040
You mentioned that there was 
also and said, well, some people

776
00:38:04,040 --> 00:38:06,680
are even nitpicking, right? 
Like around, I don't know, 

777
00:38:06,680 --> 00:38:09,360
spaces or do we use this or 
that. 

778
00:38:09,720 --> 00:38:12,160
But that can be all easily 
automated, right? 

779
00:38:12,200 --> 00:38:15,720
We don't even need the code 
automated tool to review our 

780
00:38:15,720 --> 00:38:17,600
code. 
We can actually have it pre 

781
00:38:17,600 --> 00:38:20,360
forwarded, right, So that we 
have all the same style. 

782
00:38:20,600 --> 00:38:23,000
We can have tools like that in 
our pipeline. 

783
00:38:23,000 --> 00:38:25,840
We can have it even in our pre 
commit works, which I would 

784
00:38:25,920 --> 00:38:28,160
recommend, right? 
We should not put everything to 

785
00:38:28,160 --> 00:38:31,000
the pipeline and then realize 
when it's over there that it's 

786
00:38:31,000 --> 00:38:32,760
failing. 
Can have that already on our 

787
00:38:32,760 --> 00:38:36,520
development machine, right? 
And make sure that even if it's 

788
00:38:36,520 --> 00:38:38,880
grammar, right? 
We can have plugins for grammar.

789
00:38:38,880 --> 00:38:40,760
We can have static analyzers, 
right? 

790
00:38:40,760 --> 00:38:43,960
We can have linters there. 
And then there are code read 

791
00:38:43,960 --> 00:38:45,680
tools that do a little bit more,
right? 

792
00:38:45,680 --> 00:38:48,400
So that using large language 
models, for example, to 

793
00:38:48,400 --> 00:38:51,680
understand our code and give us 
some suggestions. 

794
00:38:52,160 --> 00:38:56,320
I wrote a black post about a 
couple of tools that I like the 

795
00:38:56,320 --> 00:38:58,400
most, right? 
I'm just randomly now naming 

796
00:38:58,400 --> 00:39:01,560
some of them. 
I'm a big fan of GitHub Copilot,

797
00:39:01,640 --> 00:39:03,840
right? 
If you're programming, if you 

798
00:39:03,840 --> 00:39:06,240
can ask questions, I laugh. 
Chat GTP. 

799
00:39:07,080 --> 00:39:09,840
I also like that very much. 
There are a lot of integrations 

800
00:39:09,840 --> 00:39:12,000
into your IDE as well for that, 
right? 

801
00:39:12,280 --> 00:39:14,960
But there are also other 
tooling, for example, that are 

802
00:39:15,800 --> 00:39:19,560
summarizing, for example, your, 
your code changes, right, your 

803
00:39:19,560 --> 00:39:20,840
PRS. 
And I think this is very 

804
00:39:20,840 --> 00:39:23,000
vulnerable. 
I'm not saying that every tool 

805
00:39:23,000 --> 00:39:26,640
is yet completely there, right? 
So that we can completely trust 

806
00:39:26,640 --> 00:39:28,560
them. 
But I, for example, have for all

807
00:39:28,560 --> 00:39:32,080
of my countries, I have an 
automated summary there as well,

808
00:39:32,280 --> 00:39:35,360
which helps me then to reflect 
and to see, well, did I mention 

809
00:39:35,360 --> 00:39:38,080
actually everything, right? 
Is that what we should be doing?

810
00:39:38,480 --> 00:39:41,160
And so I, I actually think that 
the large language models will 

811
00:39:41,160 --> 00:39:44,040
help a lot, right? 
And there will be parts that can

812
00:39:44,040 --> 00:39:47,480
be automated and there are 
already automated and can go 

813
00:39:47,480 --> 00:39:48,840
away. 
But there are a lot of things 

814
00:39:48,840 --> 00:39:51,760
that cannot, right? 
So it's still, I would say, 

815
00:39:51,760 --> 00:39:54,560
stupid, and you should never 
forget that, right? 

816
00:39:54,560 --> 00:39:58,160
So a lot of people think that AI
can think, but AI can't think. 

817
00:39:58,160 --> 00:40:00,600
It's a language model, right? 
So it's just pattern matching 

818
00:40:00,600 --> 00:40:03,360
different things together. 
So it's still stupid and it can 

819
00:40:03,360 --> 00:40:05,400
give stupid answers. 
And it has a lot of 

820
00:40:05,760 --> 00:40:08,520
hallucinations, right? 
So it's making a lot of stuff 

821
00:40:08,520 --> 00:40:10,400
up. 
And so we have to be aware of 

822
00:40:10,440 --> 00:40:12,320
that and use that with that 
knowledge. 

823
00:40:12,320 --> 00:40:14,480
And then I think it's awesome. 
I really love it. 

824
00:40:14,880 --> 00:40:18,760
I would encourage a lot of teams
to really increase the 

825
00:40:18,760 --> 00:40:21,320
automation that they have in 
their culture abuse and free the

826
00:40:21,320 --> 00:40:24,440
staff up for people to really 
look again, what we want to 

827
00:40:24,440 --> 00:40:27,520
achieve with that, right? 
Do we want the person to tell us

828
00:40:27,520 --> 00:40:29,920
our syntax error? 
No, we don't want that, right? 

829
00:40:30,320 --> 00:40:33,720
But do we want somebody to tell 
us about the business logic or 

830
00:40:34,000 --> 00:40:38,280
to reason through if we did a 
good way for performance, for 

831
00:40:38,280 --> 00:40:40,320
example, right. 
Yes, we want that. 

832
00:40:40,360 --> 00:40:43,920
And then having more concrete 
questions for the code author as

833
00:40:43,920 --> 00:40:46,200
well, right? 
To say, well, or the code 

834
00:40:46,200 --> 00:40:48,520
reviewer, this is what I want 
you to focus on. 

835
00:40:48,520 --> 00:40:51,360
Tell me, you know, did a good 
job here or this is your 

836
00:40:51,360 --> 00:40:53,040
expertise. 
Tell me something about it. 

837
00:40:54,040 --> 00:40:56,160
Right, I think yeah, tooling 
these days, there are plenty of 

838
00:40:56,160 --> 00:40:58,320
them, right. 
So starting from the normal 

839
00:40:58,320 --> 00:41:01,080
static analyzer, right. 
So by analyzing bugs, potential 

840
00:41:01,080 --> 00:41:04,840
bugs, right and also including 
those like the grammar, maybe 

841
00:41:04,840 --> 00:41:07,160
code review comments. 
So I think please do check it 

842
00:41:07,160 --> 00:41:10,080
out like make use these tools. 
And also the AI part, I haven't 

843
00:41:10,080 --> 00:41:13,640
really experienced fully AI that
can give a very meaningful 

844
00:41:13,640 --> 00:41:16,000
critical feedback, right? 
Most of the time we actually use

845
00:41:16,000 --> 00:41:19,960
AI to generate the code, maybe 
test cases as well, but not in 

846
00:41:19,960 --> 00:41:23,040
the vice versa where you know, 
AI critiquing code that we 

847
00:41:23,040 --> 00:41:24,720
write. 
So maybe one day we will see 

848
00:41:24,720 --> 00:41:28,000
such tools exist and maybe even 
integrate it in the code review 

849
00:41:28,000 --> 00:41:29,640
pull request, kind of like 
workflow. 

850
00:41:29,920 --> 00:41:32,880
So I think automating some of 
the tedious aspects of code 

851
00:41:32,880 --> 00:41:34,480
review is definitely very 
important. 

852
00:41:34,600 --> 00:41:38,520
And not to mention, right, if I 
hear somebody saying about the 

853
00:41:38,520 --> 00:41:42,920
mundane stuff, to me that feels 
like an attack from a person to 

854
00:41:42,960 --> 00:41:45,760
another person. 
But if it's a computer or AI 

855
00:41:45,760 --> 00:41:48,120
telling us, I think we can take 
it lighter. 

856
00:41:48,360 --> 00:41:51,400
That's my opinion, by the way. 
So I think, yeah, using such 

857
00:41:51,400 --> 00:41:54,560
tools definitely will be very, 
very much useful so that we can 

858
00:41:54,560 --> 00:41:58,200
have more critical feedback 
given to the core review aspect.

859
00:41:58,200 --> 00:42:00,800
So it could be the design, could
be the business logic, maybe 

860
00:42:00,800 --> 00:42:03,760
even variable naming, right? 
Because sometimes it's very 

861
00:42:03,760 --> 00:42:06,320
important to use like a 
consistent name rather than, you

862
00:42:06,320 --> 00:42:09,560
know, somebody coming up with 
some terms that is probably 

863
00:42:09,560 --> 00:42:13,000
unique and new to the team. 
So speaking about other 

864
00:42:13,000 --> 00:42:15,160
techniques. 
So I think in your blog, I see 

865
00:42:15,160 --> 00:42:17,720
that you also write about 10 
different techniques. 

866
00:42:17,720 --> 00:42:20,520
So maybe if you can also share 
with us what are some of the 

867
00:42:20,520 --> 00:42:22,560
techniques that people should 
probably try out. 

868
00:42:22,800 --> 00:42:24,920
And specifically, I like the 
first one that you mentioned. 

869
00:42:24,920 --> 00:42:27,800
It's about checklist actually in
your blog post, because I rarely

870
00:42:27,800 --> 00:42:29,840
see people have checklist when 
they do code review. 

871
00:42:29,920 --> 00:42:33,120
Mostly it's like random and they
just, you know, jump into the 

872
00:42:33,120 --> 00:42:35,960
code that they feel like it. 
So maybe tell us a little bit 

873
00:42:35,960 --> 00:42:38,240
more few techniques that we can 
learn how to use. 

874
00:42:39,040 --> 00:42:41,520
Yeah. 
So what I've seen, and this is 

875
00:42:41,720 --> 00:42:45,000
connected to this, there's not a
lot of training on code reviews 

876
00:42:45,000 --> 00:42:48,200
nowadays, right? 
Or not nowadays in general. 

877
00:42:48,600 --> 00:42:52,760
And a lot of people are, as they
are supposed to know what 

878
00:42:52,760 --> 00:42:54,520
they're doing, just do it ad 
hoc, right? 

879
00:42:54,520 --> 00:42:57,120
And this is how code reviews are
done most of the time, right? 

880
00:42:57,120 --> 00:42:59,880
So people are just doing it at 
ad hoc review. 

881
00:43:00,080 --> 00:43:02,960
They're doing what they think a 
code review should look like, 

882
00:43:02,960 --> 00:43:05,000
right? 
There is no order of piles you 

883
00:43:05,000 --> 00:43:07,120
should look at. 
There is no questions, concrete 

884
00:43:07,120 --> 00:43:09,000
questions that you asked the 
code for, right? 

885
00:43:09,000 --> 00:43:13,600
It's coming from your intuition,
from your experience, maybe from

886
00:43:13,600 --> 00:43:16,800
what we have seen before that 
others are doing and so on. 

887
00:43:17,240 --> 00:43:19,000
And this is called ad hoc code 
reviews. 

888
00:43:19,000 --> 00:43:22,120
But there are actually quite a 
few techniques that we can use 

889
00:43:22,120 --> 00:43:23,880
to enrich our code reviews, 
right? 

890
00:43:23,880 --> 00:43:26,800
So also to make it more thorough
and to make it more consistent 

891
00:43:26,800 --> 00:43:30,280
throughout the teams. 
So a lot of companies and teams 

892
00:43:30,280 --> 00:43:34,760
are struggling with various 
degrees of thoroughness, right? 

893
00:43:34,760 --> 00:43:37,440
When people are doing code 
review, some people just open up

894
00:43:37,440 --> 00:43:40,240
the code and they run the code 
and think this is a code review.

895
00:43:40,240 --> 00:43:42,640
I don't even look at the code 
and it's still a code review, 

896
00:43:42,640 --> 00:43:44,880
right? 
Some people will look at every 

897
00:43:44,880 --> 00:43:47,400
single line and, and understand 
of that. 

898
00:43:47,400 --> 00:43:52,200
Some will just pick a couple of 
files and look if they're there 

899
00:43:52,200 --> 00:43:55,560
or at some part. 
So it really there is no 

900
00:43:55,960 --> 00:43:58,840
straightforward way where we can
say this is how hold reviews are

901
00:43:58,840 --> 00:44:01,400
done. 
But when we are using techniques

902
00:44:01,400 --> 00:44:04,160
to do that, we get more 
systematic approach into it. 

903
00:44:04,160 --> 00:44:06,960
And the first one, and this is 
the the one that I like the most

904
00:44:06,960 --> 00:44:09,480
because it's very practical, 
it's easy to implement, it's 

905
00:44:09,480 --> 00:44:12,760
very powerful, It's checklist 
based reading, right? 

906
00:44:12,760 --> 00:44:15,360
So the checklist based reading 
is you start with the checklist.

907
00:44:16,160 --> 00:44:18,320
We can start for example, with 
one that you can download from 

908
00:44:18,320 --> 00:44:21,040
awesomecodejuice.com, a general 
checklist. 

909
00:44:21,120 --> 00:44:23,920
There are a lot of different 
parts we about implementation, 

910
00:44:23,920 --> 00:44:26,280
right? 
So is this solving the problem? 

911
00:44:26,600 --> 00:44:29,160
Is it simple? 
Is it on the right abstraction 

912
00:44:29,160 --> 00:44:31,560
level? 
And what about the debugging, 

913
00:44:31,560 --> 00:44:33,680
right? 
Is the debug good debugging, a 

914
00:44:33,720 --> 00:44:36,800
way to debug this code? 
Is it testable, the code right? 

915
00:44:37,080 --> 00:44:39,760
Are they good exception messages
and all of that? 

916
00:44:40,040 --> 00:44:42,960
And what it helps you, you can 
imagine it a little bit like, 

917
00:44:43,560 --> 00:44:46,720
well, a memory aid, right? 
So you know, these are the parts

918
00:44:46,720 --> 00:44:50,160
that I should look at and then 
they are all checked through, 

919
00:44:50,160 --> 00:44:51,600
right? 
And there are a couple of 

920
00:44:51,720 --> 00:44:55,040
studies around checklist based 
code reviews and they all come 

921
00:44:55,040 --> 00:44:57,800
to the conclusion or almost all 
come to the conclusion that 

922
00:44:57,800 --> 00:45:01,960
checklist really increase our 
potential to find problems and 

923
00:45:01,960 --> 00:45:04,560
increase our ability to find 
problems in cold. 

924
00:45:04,920 --> 00:45:07,680
There's one for example, that's 
done quite recently at the 

925
00:45:07,680 --> 00:45:10,480
University of Zurich. 
But if, for example, looked at 

926
00:45:11,000 --> 00:45:13,560
to different groups of people 
and they were giving the same 

927
00:45:13,560 --> 00:45:17,200
code and then they asked them, 
well, look at this code, review 

928
00:45:17,200 --> 00:45:19,840
the code and tell me, you know 
what's wrong with it. 

929
00:45:19,920 --> 00:45:21,960
And so people did. 
And when they said, well, they 

930
00:45:21,960 --> 00:45:24,240
are done, they asked them again,
I'm sure you're done. 

931
00:45:24,520 --> 00:45:27,280
Yes, we are done. 
And then they just ask, well, 

932
00:45:27,280 --> 00:45:30,160
what about security? 
And they showed them the code 

933
00:45:30,160 --> 00:45:32,280
again. 
And now the people found the 

934
00:45:32,280 --> 00:45:34,560
security issues that they'd 
overlooked before, right? 

935
00:45:34,560 --> 00:45:38,360
So this memory aid is a very, 
very interesting part of 

936
00:45:38,360 --> 00:45:41,560
checklist based code reviews and
churches based reading, right? 

937
00:45:41,560 --> 00:45:42,960
And it's a very powerful 
following. 

938
00:45:43,240 --> 00:45:47,160
Even the experienced trivia that
know about security didn't look 

939
00:45:47,160 --> 00:45:48,840
at security. 
They forgot about it. 

940
00:45:49,280 --> 00:45:52,720
And I think within the same 
study, they also just tried out 

941
00:45:52,720 --> 00:45:56,040
mentioning security or 
mentioning security and then 

942
00:45:56,040 --> 00:45:59,280
giving a lot of infos, right? 
Let's say looking at input 

943
00:45:59,280 --> 00:46:02,120
validation or cross site 
scripting and you know, like 

944
00:46:02,440 --> 00:46:05,400
giving more details and it 
didn't really change much, 

945
00:46:05,520 --> 00:46:07,280
right? 
So what we can see from that is 

946
00:46:07,280 --> 00:46:10,360
as well that you can only find 
the things in code reviews that 

947
00:46:10,360 --> 00:46:13,920
you already know, right? 
It's hard to learn and do code 

948
00:46:13,920 --> 00:46:16,240
reviews at the same time. 
But on the other hand, what we 

949
00:46:16,240 --> 00:46:19,920
can do is you can use checklist 
to have a person learn. 

950
00:46:20,280 --> 00:46:23,840
Just don't expect them to apply 
the right in the code review, 

951
00:46:23,840 --> 00:46:25,880
right? 
So when you look at, for 

952
00:46:25,880 --> 00:46:28,720
example, a checklist that I 
provided, it's very detailed and

953
00:46:28,720 --> 00:46:31,280
you can use that for a couple of
times, right? 

954
00:46:31,280 --> 00:46:33,640
And then you would actually make
it smaller, right? 

955
00:46:33,640 --> 00:46:38,160
You would comprise it and and, 
and make it easier to grasp. 

956
00:46:38,440 --> 00:46:41,760
Have just a couple of points as 
a memory 8, and then you can 

957
00:46:41,760 --> 00:46:43,960
expand another area, let's say 
security. 

958
00:46:43,960 --> 00:46:46,120
First. 
You have just security and you 

959
00:46:46,120 --> 00:46:47,880
have five points. 
But you could actually have a 

960
00:46:47,880 --> 00:46:50,880
list of 50 points, right, of 
saying that you should have 50 

961
00:46:50,880 --> 00:46:52,400
points. 
But what I'm saying is that we 

962
00:46:52,400 --> 00:46:55,440
can expand what we're learning 
about or let's say our team 

963
00:46:55,440 --> 00:46:58,600
wants to know more about 
accessibility. 

964
00:46:59,200 --> 00:47:02,360
Well, first there was just one 
point saying have you checked 

965
00:47:02,360 --> 00:47:03,560
accessibility? 
Yes. 

966
00:47:03,640 --> 00:47:06,960
But then you could actually have
a whole list about accessibility

967
00:47:07,320 --> 00:47:10,640
and have like, let's say 15 
criterias where you walk the 

968
00:47:10,640 --> 00:47:13,880
people too, right? 
So we can use checklist in two 

969
00:47:13,880 --> 00:47:16,640
ways, either just as 
memorisation for things that we 

970
00:47:16,640 --> 00:47:20,600
already know or we can also use 
them to learn and, and and then 

971
00:47:20,600 --> 00:47:22,840
over time we integrate that 
knowledge. 

972
00:47:22,840 --> 00:47:24,760
We are able to find things in 
coteries. 

973
00:47:24,760 --> 00:47:29,320
And again we are flattening down
this list again and and make it 

974
00:47:29,320 --> 00:47:31,560
a little bit smaller. 
Yeah. 

975
00:47:32,400 --> 00:47:34,520
Right, I like the checklist 
approach, just like what you 

976
00:47:34,520 --> 00:47:36,760
mentioned, right? 
Sometimes we forget what 

977
00:47:36,760 --> 00:47:38,640
important things that we should 
look at, right? 

978
00:47:38,640 --> 00:47:41,560
So because code review is a 
little bit open-ended, right? 

979
00:47:41,560 --> 00:47:44,600
There are so many things that 
you can criticize, not just the 

980
00:47:44,600 --> 00:47:47,000
code itself, but also the 
performance, you know, the 

981
00:47:47,000 --> 00:47:50,400
variable naming and even like 
security aspect and things like 

982
00:47:50,400 --> 00:47:52,240
that. 
Definitely, if you just jump 

983
00:47:52,240 --> 00:47:54,680
into it and you don't have a 
checklist, sometimes it's kind 

984
00:47:54,680 --> 00:47:57,320
of like random, right, based on 
the mood and based on the things

985
00:47:57,320 --> 00:47:59,040
that you have in mind at that 
point in time. 

986
00:47:59,240 --> 00:48:01,240
So I think checklist definitely 
quite powerful. 

987
00:48:01,240 --> 00:48:04,240
And I think there's a book 
called Checklist Manifesto as 

988
00:48:04,240 --> 00:48:06,640
well, right, that is 
highlighting the power of having

989
00:48:06,640 --> 00:48:09,440
checklist actually helping you. 
It's like a memory age, just 

990
00:48:09,440 --> 00:48:12,120
like what you said, right? 
It's actually increase the 

991
00:48:12,120 --> 00:48:15,200
success rate of the things that 
you are checking or reviewing. 

992
00:48:15,640 --> 00:48:19,440
So another aspect that I find 
some people may struggle with is

993
00:48:19,440 --> 00:48:22,360
the need to actually jump 
context jumping, you know from 

994
00:48:22,360 --> 00:48:24,680
the code that they are working 
into reviewing other people's 

995
00:48:24,680 --> 00:48:26,960
code. 
So maybe do you have any tips? 

996
00:48:26,960 --> 00:48:30,160
How do you manage personally 
juggling between your own code 

997
00:48:30,160 --> 00:48:31,960
and also reviewing other 
people's code? 

998
00:48:31,960 --> 00:48:34,760
Do you batch your time or is 
there any kind of productivity 

999
00:48:34,760 --> 00:48:38,000
technique here so that you can 
also give a good code review for

1000
00:48:38,000 --> 00:48:40,640
others while also at the same 
time you can focus on the work 

1001
00:48:40,640 --> 00:48:45,680
that you are doing as well? 
So yeah, the context switching 

1002
00:48:45,680 --> 00:48:49,160
is definitely a problem, right? 
And sometimes people 

1003
00:48:49,240 --> 00:48:51,640
overestimate the problem. 
I think especially for 

1004
00:48:51,640 --> 00:48:55,600
contributes because I hear this 
idea of coteries are so bad for 

1005
00:48:55,600 --> 00:48:59,720
our productivity and they're 
really destroying our whole 

1006
00:49:00,000 --> 00:49:02,520
focus that we have. 
But I think that's really far 

1007
00:49:02,520 --> 00:49:04,640
from the truth. 
I think it's one more drop. 

1008
00:49:04,720 --> 00:49:07,400
Either you're having a good 
handle on your day, on your 

1009
00:49:07,400 --> 00:49:10,520
structure, I think then coteries
is not such a big problem. 

1010
00:49:10,520 --> 00:49:12,960
But for you, I think people that
are already struggling dealing 

1011
00:49:12,960 --> 00:49:17,080
with their productivity or with 
scheduling their work, right, 

1012
00:49:17,320 --> 00:49:19,720
they are struggling more with 
culture views, right? 

1013
00:49:19,720 --> 00:49:22,760
And I think, I don't think that 
again, it helps for everybody. 

1014
00:49:22,760 --> 00:49:27,160
It also depends a little bit on 
the people can have different 

1015
00:49:27,160 --> 00:49:29,440
minds, right? 
They can have different things 

1016
00:49:29,440 --> 00:49:32,200
that they are striving with and 
habits that they are striving 

1017
00:49:32,200 --> 00:49:34,760
with. 
But I find something that having

1018
00:49:34,920 --> 00:49:38,280
dedicated time, like for example
this Pomodoro technique where we

1019
00:49:38,280 --> 00:49:40,880
say, well, 25 minutes, you're 
looking at something, right? 

1020
00:49:41,040 --> 00:49:42,600
It's working for a lot of 
people. 

1021
00:49:43,240 --> 00:49:45,920
I can actually hold the focus 
longer than 25 minutes. 

1022
00:49:45,920 --> 00:49:48,000
I like it more. 
I have normally around 40 

1023
00:49:48,000 --> 00:49:51,800
minutes timers, right? 
So I think you can adjust it to 

1024
00:49:51,800 --> 00:49:56,120
your personally needs, but the 
idea behind it is that that you 

1025
00:49:56,120 --> 00:49:59,240
are starting an activity, you 
have a timer, right? 

1026
00:49:59,240 --> 00:50:02,280
Let's say 25 minutes or 40 
minutes, whatever works for you.

1027
00:50:02,280 --> 00:50:04,720
You can try that out. 
And then this time we really 

1028
00:50:04,720 --> 00:50:07,200
focus on one thing, right? 
So by example, code reviews, and

1029
00:50:07,200 --> 00:50:09,880
we are starting now code review 
and we're doing it, let's say 

1030
00:50:09,880 --> 00:50:12,920
for half an hour. 
And when there are emails coming

1031
00:50:12,920 --> 00:50:16,240
in, then we make sure that the 
notifications are off, right? 

1032
00:50:16,240 --> 00:50:19,880
That we are not looking at the 
emails or we're not jumping to, 

1033
00:50:19,880 --> 00:50:22,080
you know, something else and 
doing something else. 

1034
00:50:22,520 --> 00:50:25,960
And a little bit that has to do 
also with our setup, right? 

1035
00:50:25,960 --> 00:50:29,320
So let's say we are compiling 
something or we are running our 

1036
00:50:29,320 --> 00:50:33,040
static analysis and that we know
this takes a couple of minutes, 

1037
00:50:33,360 --> 00:50:35,440
then it's really easy to get 
distracted, right? 

1038
00:50:35,440 --> 00:50:37,680
Because it's boring. 
So what we are going to do now? 

1039
00:50:37,680 --> 00:50:39,760
And now you're starting a 
different task. 

1040
00:50:39,760 --> 00:50:41,880
A lot of people have ADHD as 
well, right? 

1041
00:50:41,880 --> 00:50:45,520
So then you feel yourself, 
you're in the, I don't know, a 

1042
00:50:45,520 --> 00:50:50,360
526 tabs looking at something 
completely unrelated and then 

1043
00:50:50,360 --> 00:50:51,760
you're having to come back, 
right? 

1044
00:50:52,040 --> 00:50:55,360
But I think the essence behind 
is not, it has nothing to do 

1045
00:50:55,360 --> 00:50:57,960
with code reviews per SE, right?
It's one more task that you have

1046
00:50:57,960 --> 00:51:00,040
to do. 
I think what's more important 

1047
00:51:00,040 --> 00:51:04,280
than what's maybe also trickier 
is that you have to synchronize 

1048
00:51:04,280 --> 00:51:06,000
it a little bit with your team, 
right? 

1049
00:51:06,000 --> 00:51:07,960
And this has a lot of to do with
expectations. 

1050
00:51:07,960 --> 00:51:10,880
So what are we expecting 
contributes to come out? 

1051
00:51:10,880 --> 00:51:13,520
How long are we waiting for 
culture to come back? 

1052
00:51:13,960 --> 00:51:17,200
And I think a lot of things are 
expectation management here, 

1053
00:51:17,200 --> 00:51:18,840
right? 
So that we know, for example, in

1054
00:51:18,840 --> 00:51:23,920
our team every day, let's say we
are sending out the code that we

1055
00:51:24,120 --> 00:51:26,320
did so far, right? 
So we are working on something 

1056
00:51:26,320 --> 00:51:29,720
and I know that I'm going to 
send it out for a review to our 

1057
00:51:29,720 --> 00:51:31,480
colleagues. 
So then you know, well, let's 

1058
00:51:31,480 --> 00:51:34,400
say tomorrow in the morning, I'm
doing my code review or maybe 

1059
00:51:34,760 --> 00:51:38,320
every afternoon at 4, I'm doing 
the code reviews, right? 

1060
00:51:38,320 --> 00:51:41,520
So I think this plan, the plan 
ability and the way that I'm 

1061
00:51:41,520 --> 00:51:44,760
knowing actually this is when 
things will come in and I can 

1062
00:51:44,760 --> 00:51:48,280
schedule that into my work day. 
I think this is very, very 

1063
00:51:48,280 --> 00:51:51,440
important, right? 
And this is not only on you, 

1064
00:51:51,440 --> 00:51:53,320
right? 
It's also on the teams that are 

1065
00:51:53,440 --> 00:51:57,760
the people that are on your team
that they have to stick to a 

1066
00:51:57,760 --> 00:52:00,600
plan to something that we agreed
on, right? 

1067
00:52:00,600 --> 00:52:03,880
And yeah, and I think this is 
very, very important. 

1068
00:52:03,880 --> 00:52:07,520
A lot of people are coderus just
come out of nowhere, right. 

1069
00:52:07,520 --> 00:52:10,880
So I didn't even know. 
But today 3 came in and then 

1070
00:52:10,880 --> 00:52:14,240
there are three days that none 
come in and then five come in 

1071
00:52:14,240 --> 00:52:16,120
and I didn't know. 
There's a really large form of 

1072
00:52:16,120 --> 00:52:19,240
person who worked on that for a 
whole month and now they want me

1073
00:52:19,240 --> 00:52:21,480
to review it. 
You cannot plan for that. 

1074
00:52:21,480 --> 00:52:23,560
And I think this is really a big
problem. 

1075
00:52:23,560 --> 00:52:25,440
But this is more team culture 
problem, right? 

1076
00:52:25,440 --> 00:52:29,080
Team haven't problem. 
So that we are giving heads out.

1077
00:52:29,120 --> 00:52:31,000
You know, I actually worked on 
that a month. 

1078
00:52:31,000 --> 00:52:32,520
I know I shouldn't have, but I 
have. 

1079
00:52:33,640 --> 00:52:35,760
Let's arrange a meeting even for
that. 

1080
00:52:35,760 --> 00:52:38,360
And we walked together. 
I walk you through what I did 

1081
00:52:38,360 --> 00:52:41,640
and then afterwards you can, you
know, take your dedicated time 

1082
00:52:41,640 --> 00:52:43,240
and really give me a culture 
review, right? 

1083
00:52:43,440 --> 00:52:47,520
Next time we do it better, I 
send you after, I don't know, 

1084
00:52:47,520 --> 00:52:50,400
two days of working. 
I think there are some of the 

1085
00:52:50,400 --> 00:52:53,200
normal productivity tips work 
for cultivars, right? 

1086
00:52:53,720 --> 00:52:58,280
Turn off your notifications. 
Use, for example, some dedicated

1087
00:52:58,280 --> 00:53:01,320
time that you just look at that 
don't do something else right. 

1088
00:53:01,720 --> 00:53:04,640
But a lot of the things that 
really are painful for cultivars

1089
00:53:04,640 --> 00:53:06,520
is this team dynamics part, 
right? 

1090
00:53:06,520 --> 00:53:10,120
So put your code reviews on your
planning, right? 

1091
00:53:10,120 --> 00:53:12,160
So that you know, this is when 
they're going out. 

1092
00:53:12,160 --> 00:53:14,480
This is when I'm supposed to do 
a code review, right? 

1093
00:53:14,680 --> 00:53:17,600
This is the cadence that we are 
actually expecting from each 

1094
00:53:17,600 --> 00:53:19,720
other, right? 
Like every second day, at least 

1095
00:53:19,720 --> 00:53:23,040
I have to send out my code and 
ask somebody to look at it. 

1096
00:53:23,040 --> 00:53:25,400
Or every day, whatever works for
your team, right? 

1097
00:53:25,400 --> 00:53:28,120
But this plan ability, I think 
is very, very important. 

1098
00:53:29,120 --> 00:53:31,520
Yeah, thanks for highlighting 
about the team dynamic aspect as

1099
00:53:31,520 --> 00:53:32,760
well, right. 
So I think definitely 

1100
00:53:32,760 --> 00:53:36,240
individually we need to kinda 
like come up with the workflow 

1101
00:53:36,240 --> 00:53:38,720
that works for us, right, so 
that we can focus on our work, 

1102
00:53:38,720 --> 00:53:40,600
but at the same time also 
involved in the code review 

1103
00:53:40,600 --> 00:53:42,280
process. 
But what you're saying about the

1104
00:53:42,280 --> 00:53:44,520
team so-called the team working 
agreement, right? 

1105
00:53:44,520 --> 00:53:47,160
The habit, the norms between 
each other, right? 

1106
00:53:47,160 --> 00:53:50,440
How they like code review to be 
done is something that is also 

1107
00:53:50,440 --> 00:53:52,160
very important. 
And don't forget again, you can 

1108
00:53:52,160 --> 00:53:55,320
put automated check as well, 
maybe to remind you if the code 

1109
00:53:55,320 --> 00:53:58,360
review is staling right, so that
you can keep each other, you 

1110
00:53:58,360 --> 00:54:00,920
know, following up on the stale 
code review. 

1111
00:54:01,280 --> 00:54:04,200
So I think there are many tools 
that you can discuss as a team 

1112
00:54:04,600 --> 00:54:06,680
on how to incorporate them to 
make you productive. 

1113
00:54:06,800 --> 00:54:09,280
And I like what you mentioned a 
couple of times by now. 

1114
00:54:09,560 --> 00:54:11,920
Think about why you are doing a 
particular thing, right? 

1115
00:54:11,920 --> 00:54:13,840
So the reason behind what you 
do. 

1116
00:54:14,600 --> 00:54:16,760
So thank you so much for this 
conversation, Michaela. 

1117
00:54:16,960 --> 00:54:19,440
So I really love the aspects, 
all the aspects that you 

1118
00:54:19,440 --> 00:54:20,600
mentioned about the code 
reviews. 

1119
00:54:20,800 --> 00:54:23,280
Unfortunately, we come up to the
end of our conversation. 

1120
00:54:23,520 --> 00:54:25,840
But before I let you go, I have 
one last question that I'd like 

1121
00:54:25,840 --> 00:54:27,840
to check with you. 
I call this the three technical 

1122
00:54:27,840 --> 00:54:30,080
leadership system. 
So you can think of it just like

1123
00:54:30,080 --> 00:54:31,440
an advice that you want to give 
to us. 

1124
00:54:31,440 --> 00:54:33,400
So maybe if you can share some 
of them. 

1125
00:54:33,400 --> 00:54:36,640
So that would be great. 
OK, So I think the most 

1126
00:54:36,640 --> 00:54:39,000
important, I think in general, 
right? 

1127
00:54:39,000 --> 00:54:43,960
So if you're a leader or an 
employee or even outside of 

1128
00:54:43,960 --> 00:54:48,000
coding, it's really to embrace 
the diversity of people, right? 

1129
00:54:48,000 --> 00:54:52,200
And also how their their minds 
work, how their bodies work and 

1130
00:54:52,200 --> 00:54:54,160
how we can do our best work, 
right? 

1131
00:54:54,240 --> 00:54:57,920
And I think This is why I also 
really like the idea of the acts

1132
00:54:57,920 --> 00:55:02,200
of developer experience in 
contrast to productivity, right?

1133
00:55:02,200 --> 00:55:05,280
Productivity is all this. 
They're measuring something 

1134
00:55:05,280 --> 00:55:07,280
that's very elusive, to be 
honest. 

1135
00:55:07,720 --> 00:55:11,840
And then we are having the same 
metrics for every person, right?

1136
00:55:11,840 --> 00:55:15,400
And it doesn't matter what their
experience is or what they're 

1137
00:55:15,680 --> 00:55:17,280
actually bringing to the table, 
right? 

1138
00:55:17,280 --> 00:55:19,080
Because we are measuring one 
thing. 

1139
00:55:19,320 --> 00:55:22,880
But on the experience part, it's
really more about thinking how 

1140
00:55:22,880 --> 00:55:26,960
can we make sure that every 
person can do their best work, 

1141
00:55:27,160 --> 00:55:28,640
right? 
And it can look a little bit 

1142
00:55:28,720 --> 00:55:32,160
more differently for everybody. 
And based on that, we should 

1143
00:55:32,160 --> 00:55:35,520
also shape our practices to 
reflect that, right? 

1144
00:55:35,520 --> 00:55:38,680
So as a team, we have to come 
together and we have to talk and

1145
00:55:38,680 --> 00:55:41,680
we share our expectations of 
each other, right? 

1146
00:55:41,680 --> 00:55:45,760
And we can say, well, I want my 
contributes to be on my table at

1147
00:55:45,760 --> 00:55:47,800
4:00 PM, right? 
That's a request. 

1148
00:55:47,960 --> 00:55:50,440
Doesn't mean that has to become 
true, but it's good to be put 

1149
00:55:50,440 --> 00:55:52,920
out there, right? 
Because this is where I'm in a 

1150
00:55:52,920 --> 00:55:54,880
good state. 
I can do a good contribute. 

1151
00:55:54,880 --> 00:55:57,720
And then another colleague will 
share their habits or their way 

1152
00:55:57,720 --> 00:55:59,920
of thinking. 
Maybe they have ADHD or, you 

1153
00:55:59,920 --> 00:56:02,880
know, maybe they have they are 
neurodiverse, right? 

1154
00:56:03,080 --> 00:56:05,200
And then you would say, you 
know, actually, it's really hard

1155
00:56:05,200 --> 00:56:08,120
for me to read your comments. 
I would rather have you call me.

1156
00:56:08,560 --> 00:56:11,600
And then we, if we have this 
ongoing conversation and if we 

1157
00:56:11,600 --> 00:56:14,320
are accepting that we are all 
different, I think we can shape 

1158
00:56:14,320 --> 00:56:17,880
a very nice practice together 
where we all can do our best 

1159
00:56:17,880 --> 00:56:21,080
work when they're thinking about
the other people also that are 

1160
00:56:21,080 --> 00:56:25,040
involved, another of wisdom. 
And I think this is something 

1161
00:56:25,040 --> 00:56:29,720
that very often strikes me by 
surprise, that things are less 

1162
00:56:29,720 --> 00:56:32,080
than than we think, right? 
So for example, you talk about 

1163
00:56:32,080 --> 00:56:34,280
these reminders for cult 
reviews, right? 

1164
00:56:34,680 --> 00:56:36,360
And I'm thinking about 
reminders. 

1165
00:56:36,360 --> 00:56:39,880
This is an old thing, right? 
Like cult review reminders. 

1166
00:56:39,880 --> 00:56:44,000
We talked about that like 10 
years ago in academia and wrote 

1167
00:56:44,000 --> 00:56:47,480
papers about that, but actually 
just recently that came a paper 

1168
00:56:47,480 --> 00:56:50,560
out that meter now is doing it 
or Facebook is doing it right? 

1169
00:56:50,560 --> 00:56:53,680
And, and, and it's like 
surprise, we have now code 

1170
00:56:53,680 --> 00:56:55,880
review reminders and do really 
work right. 

1171
00:56:56,240 --> 00:56:58,560
So there are a lot of tools out 
there. 

1172
00:56:58,560 --> 00:56:59,960
There are a lot of techniques 
out there. 

1173
00:56:59,960 --> 00:57:02,840
There's actually a lot of 
empirical knowledge out there 

1174
00:57:03,160 --> 00:57:06,160
that you can take and you can 
put into practice. 

1175
00:57:06,160 --> 00:57:09,200
Even if you think, well, why has
nobody ever done that, right? 

1176
00:57:09,200 --> 00:57:11,840
Like it shouldn't work, right? 
But actually it works. 

1177
00:57:11,840 --> 00:57:13,560
But nobody he has ever done 
that. 

1178
00:57:13,880 --> 00:57:15,360
You know, Maurizio as well, 
right? 

1179
00:57:15,360 --> 00:57:18,720
So I had this conversation with 
Maurizio Anisha, you should 

1180
00:57:18,720 --> 00:57:21,520
check him out as well, right? 
He's big into testing. 

1181
00:57:21,920 --> 00:57:25,800
And we talked about test 
coverage and test selection and 

1182
00:57:25,800 --> 00:57:29,160
periodization based on coverage 
and static and dynamic analysis.

1183
00:57:29,480 --> 00:57:32,760
And again, this is like 15 years
ago that I worked on that. 

1184
00:57:32,760 --> 00:57:36,120
And at that point, I thought I 
shouldn't work on that anymore 

1185
00:57:36,120 --> 00:57:38,840
because everybody knows, right? 
Like there are so many papers 

1186
00:57:38,840 --> 00:57:42,960
written about it, but it's 15 
years later that he's now 

1187
00:57:43,120 --> 00:57:45,360
putting that into practice more 
and more, right? 

1188
00:57:45,360 --> 00:57:47,760
Or other people are putting that
into practice that a lot of 

1189
00:57:47,760 --> 00:57:51,560
companies that I'm advising or 
working with still don't have 

1190
00:57:51,720 --> 00:57:55,840
test selection or prioritisation
based on coverage information. 

1191
00:57:56,080 --> 00:57:58,600
Or you could now even think 
about AI, right? 

1192
00:57:58,600 --> 00:58:02,840
Like large language model. 
So I think we know there's a lot

1193
00:58:02,840 --> 00:58:05,200
of knowledge out there. 
But then if you look at the 

1194
00:58:05,200 --> 00:58:08,960
companies and the practices that
teams are doing, a lot of things

1195
00:58:08,960 --> 00:58:11,080
are not done. 
And actually it's out there and 

1196
00:58:11,080 --> 00:58:14,480
you have just to grab it, right?
You still call preview reminder 

1197
00:58:14,480 --> 00:58:16,520
and try it in your team and 
maybe it's not working then 

1198
00:58:16,520 --> 00:58:19,320
throw it away, right? 
But they're really to try out to

1199
00:58:19,320 --> 00:58:22,400
experiment a little bit. 
And I think this can go a very, 

1200
00:58:22,400 --> 00:58:27,720
very long way and can increase 
the happiness of the developers 

1201
00:58:27,720 --> 00:58:31,200
or the productivity a lot. 
Yeah, yeah. 

1202
00:58:31,760 --> 00:58:34,880
And the last advice is probably 
the same that I had at the 

1203
00:58:34,880 --> 00:58:37,960
beginning, that we can always 
change, right? 

1204
00:58:38,080 --> 00:58:40,960
And we shouldn't have somebody 
restrict us. 

1205
00:58:40,960 --> 00:58:43,360
And I think it's coming back to 
developer experience as well. 

1206
00:58:43,360 --> 00:58:46,600
I know that a lot of people, 
when I was recently had to go 

1207
00:58:46,600 --> 00:58:49,480
to, for example, people come up 
when I talked about developer 

1208
00:58:49,480 --> 00:58:51,360
experience and how we can change
it. 

1209
00:58:51,640 --> 00:58:53,360
And some of them are very 
discouraged, right? 

1210
00:58:53,360 --> 00:58:56,120
They're like, I try to change 
it, but nobody is listening, 

1211
00:58:56,160 --> 00:58:58,360
right? 
Or I try to change it, but it's 

1212
00:58:58,360 --> 00:59:00,720
so hard. 
And I know it's really hard, 

1213
00:59:00,720 --> 00:59:02,520
right? 
Like some things are really 

1214
00:59:02,520 --> 00:59:04,040
hard. 
And especially if you're doing 

1215
00:59:04,040 --> 00:59:07,040
something new, it's like coming 
from art school and doing 

1216
00:59:07,040 --> 00:59:10,600
computer science, right? 
So being in a company that has, 

1217
00:59:10,600 --> 00:59:14,600
for example, let's say some 
toxicity going on, some harsh 

1218
00:59:14,600 --> 00:59:17,480
comments in your code reviews, 
and you see that, right? 

1219
00:59:17,480 --> 00:59:19,200
You see that and you try to 
change it. 

1220
00:59:19,400 --> 00:59:22,400
It's really, really hard. 
But it's if you're doing it, if 

1221
00:59:22,400 --> 00:59:25,600
you could persistently doing it,
just baby stabs, right? 

1222
00:59:25,840 --> 00:59:28,320
It's really worth it if you're 
able to do it. 

1223
00:59:28,320 --> 00:59:31,160
And even if you're not able to 
do it, the deaf company in the 

1224
00:59:31,160 --> 00:59:33,360
next one, maybe you will, right.
Yeah. 

1225
00:59:34,400 --> 00:59:37,040
Very beautiful wisdom, so thanks
for sharing all of that. 

1226
00:59:37,240 --> 00:59:40,080
I think that people can reflect 
listening to what you just said 

1227
00:59:40,080 --> 00:59:42,240
just now. 
So I really love the last part, 

1228
00:59:42,240 --> 00:59:43,040
right? 
Doing change. 

1229
00:59:43,040 --> 00:59:45,760
Sometimes we can feel like we 
are against all the odds, right?

1230
00:59:45,760 --> 00:59:48,840
Like maybe changing the legacy 
practice or people's mindset and

1231
00:59:48,840 --> 00:59:50,680
all that. 
But I think changing 1 little 

1232
00:59:50,680 --> 00:59:52,960
step is something that is doable
for everyone. 

1233
00:59:53,240 --> 00:59:55,120
And also don't forget changing 
the company. 

1234
00:59:55,120 --> 00:59:57,480
It's also probably the last 
resort that you can do, right? 

1235
00:59:57,680 --> 00:59:59,120
Let's say you can't change the 
company. 

1236
00:59:59,880 --> 01:00:02,000
So Mikaela, thank you so much 
for this conversation. 

1237
01:00:02,000 --> 01:00:05,240
If people like what you said and
they want to follow up with you 

1238
01:00:05,240 --> 01:00:07,280
or learn more from your 
resources, is there a place 

1239
01:00:07,280 --> 01:00:09,400
where they can find you online? 
Yeah. 

1240
01:00:09,400 --> 01:00:11,680
So they can go to 
awesomecodereviews.com and 

1241
01:00:11,680 --> 01:00:14,280
there's a lot of information on 
code reviews. 

1242
01:00:14,280 --> 01:00:17,080
They can also go to my personal 
website, which is Mikayla 

1243
01:00:17,080 --> 01:00:20,040
kayla.com. 
I'm writing there as well about 

1244
01:00:20,080 --> 01:00:23,520
all kind of stuff on software 
development and also a little 

1245
01:00:23,520 --> 01:00:26,400
bit entrepreneurial stuff. 
You can also follow me on 

1246
01:00:26,400 --> 01:00:29,280
Twitter or X. 
Now I'm not so often on X 

1247
01:00:29,280 --> 01:00:33,560
anymore since it's X, but I'm 
occasionally there as well. 

1248
01:00:33,560 --> 01:00:35,320
Or they can also write me an 
e-mail, right? 

1249
01:00:35,600 --> 01:00:38,560
I'm super happy to have e-mail 
conversations. 

1250
01:00:38,760 --> 01:00:41,840
I also have a podcast, it's 
called SE Unlocked Software 

1251
01:00:41,840 --> 01:00:45,960
engineeringunlocked.com. 
So they can also check out some 

1252
01:00:45,960 --> 01:00:49,200
of the episodes there. 
And yeah, that's, I think that's

1253
01:00:49,200 --> 01:00:50,720
it. 
Awesome. 

1254
01:00:50,720 --> 01:00:52,400
So I'll put all of those in the 
show notes. 

1255
01:00:52,400 --> 01:00:53,960
So thank you so much for your 
time here. 

1256
01:00:53,960 --> 01:00:56,400
So I hope people learn a lot 
about core reviews and they can 

1257
01:00:56,400 --> 01:00:57,920
improve their core review 
process. 

1258
01:00:57,960 --> 01:01:01,440
But thanks again for that. 
Yeah, thanks so much for having 

1259
01:01:01,440 --> 01:01:02,920
me. 
It was really fun talking to 

1260
01:01:02,920 --> 01:01:03,040
you.
