1
00:00:00,000 --> 00:00:02,700
In the tech space, we have a 
certain responsibility, we are 

2
00:00:02,700 --> 00:00:04,900
creating things that crash. 
We are creating things that 

3
00:00:04,900 --> 00:00:07,500
don't work. 
It's a reminder for me that, you

4
00:00:07,500 --> 00:00:10,600
know, when we do with software, 
when we develop it, and when we 

5
00:00:10,600 --> 00:00:15,800
deploy it, we are part of a 
larger system where our failures

6
00:00:15,900 --> 00:00:18,300
in software are no longer about 
us. 

7
00:00:18,300 --> 00:00:21,100
There are about other people. 
They become very visible in a 

8
00:00:21,108 --> 00:00:24,000
world that runs on software. 
That becomes a problem point. 

9
00:00:29,000 --> 00:00:31,700
Hey everyone. 
My name is Henry Surya, we 

10
00:00:31,700 --> 00:00:35,100
Robin. 
And you're listening to the 

11
00:00:35,100 --> 00:00:38,300
technology, you know, podcast 
the show where I'll be bringing 

12
00:00:38,300 --> 00:00:41,400
you the greatest technical 
leaders practitioners and 

13
00:00:41,400 --> 00:00:45,200
thought leaders in the industry 
to discuss about their Journey 

14
00:00:45,400 --> 00:00:49,900
ideas and practices that we all 
can learn and apply to build a 

15
00:00:49,900 --> 00:00:53,500
highly performing technical team
and to make an impact in your 

16
00:00:53,500 --> 00:00:56,700
personal work. 
So let's dive into our Journal. 

17
00:01:01,700 --> 00:01:04,800
Hello to all of you, my friends 
and my listeners, welcome to the

18
00:01:04,800 --> 00:01:07,700
package, you know, podcast the 
show where you can learn about 

19
00:01:07,700 --> 00:01:10,800
technical leadership and 
Excellence from my conversations

20
00:01:10,800 --> 00:01:13,000
with great thought, leaders in 
the tech industry. 

21
00:01:13,400 --> 00:01:15,500
If this is your first time 
listening to technology, you 

22
00:01:15,500 --> 00:01:18,700
know, don't forget to subscribe 
and follow the show on your 

23
00:01:18,700 --> 00:01:22,300
podcast app and on LinkedIn, 
Twitter and Instagram and to 

24
00:01:22,300 --> 00:01:25,300
support my journey. 
Creating this podcast, subscribe

25
00:01:25,300 --> 00:01:30,500
as a patron at technology. 
Not deaf / Patron, My guest, for

26
00:01:30,500 --> 00:01:32,500
today's episode is Carolyn 
honey. 

27
00:01:32,900 --> 00:01:36,400
Carolyn is a consultant writer 
and speaker on software 

28
00:01:36,400 --> 00:01:39,600
development and he has written 
and edited several popular 

29
00:01:39,600 --> 00:01:43,000
software development books. 
In this episode, Carolyn shared 

30
00:01:43,000 --> 00:01:45,700
his three favorite things. 
Every software engineer, should 

31
00:01:45,700 --> 00:01:49,500
know, based on the two books, he
edited 97 things. 

32
00:01:49,500 --> 00:01:52,000
Every programmer should know, 
and 97 things. 

33
00:01:52,100 --> 00:01:55,100
Every Java programmer should 
know, he explained the 

34
00:01:55,100 --> 00:01:58,700
importance for developers of 
taking an occasional break when 

35
00:01:58,700 --> 00:02:01,400
working on deeper. 
Work putting code comments, 

36
00:02:01,400 --> 00:02:05,500
wisely, and using testing not 
just for checks but also for 

37
00:02:05,500 --> 00:02:08,600
communication tool. 
Carolyn also brought up some 

38
00:02:08,600 --> 00:02:11,300
Timeless software development 
Concepts that every developer 

39
00:02:11,300 --> 00:02:15,300
should learn from the past such 
as cohesion coupling and code 

40
00:02:15,300 --> 00:02:18,500
quality. 
He also explained why he becomes

41
00:02:18,500 --> 00:02:21,700
associated with public software 
failures, widely known as 

42
00:02:21,700 --> 00:02:25,000
Carolyn, hennesy screens and how
the trend started in the 

43
00:02:25,000 --> 00:02:29,300
beginning towards the end, 
Carolyn shared his views on why 

44
00:02:29,300 --> 00:02:32,600
it is Important for developers 
to improve public, speaking 

45
00:02:32,800 --> 00:02:36,200
writing, and having more 
compassion towards each other. 

46
00:02:37,200 --> 00:02:40,600
I really enjoyed my conversation
with Kathleen, Kathleen 

47
00:02:40,600 --> 00:02:42,300
emphasized, many essential 
things. 

48
00:02:42,300 --> 00:02:45,600
Many of us software Engineers, 
tend to neglect, especially on 

49
00:02:45,600 --> 00:02:49,000
some Timeless Concepts such as 
cohesion, coupling and testing. 

50
00:02:49,400 --> 00:02:52,000
And I really like his 
explanation that many things in 

51
00:02:52,000 --> 00:02:54,600
software development are about 
communication. 

52
00:02:55,100 --> 00:02:57,800
And not always about the code. 
And its correctness. 

53
00:02:58,400 --> 00:03:01,700
If you find this episode useful,
please help, share it with more 

54
00:03:01,700 --> 00:03:04,000
people. 
So many more of us can also 

55
00:03:04,000 --> 00:03:06,100
benefit from listening to this 
episode. 

56
00:03:06,600 --> 00:03:10,200
Also, Leave this podcast of five
star rating, and review on Apple

57
00:03:10,200 --> 00:03:13,600
podcast and Spotify. 
It will help me a lot to make 

58
00:03:13,600 --> 00:03:16,400
this podcast easily, discovered 
by others. 

59
00:03:16,800 --> 00:03:19,300
Before we continue to the 
conversation with Carolyn. 

60
00:03:19,700 --> 00:03:21,900
Let's hear some words from our 
sponsors. 

61
00:03:22,400 --> 00:03:25,700
Today's episode is proudly 
sponsored by skills method. 

62
00:03:26,000 --> 00:03:29,700
The global community and events 
platform with more than 100,000 

63
00:03:29,700 --> 00:03:33,500
software professionals here 
members, can organize their 

64
00:03:33,500 --> 00:03:36,200
learning experiences around the 
technology topics. 

65
00:03:36,200 --> 00:03:39,500
They care about. 
Most you get on-demand access to

66
00:03:39,500 --> 00:03:43,200
their latest content thought, 
leadership insights, as well as 

67
00:03:43,200 --> 00:03:47,000
the exciting schedule of tech 
events running across all time 

68
00:03:47,000 --> 00:03:49,400
zones. 
So whether devops our data 

69
00:03:49,400 --> 00:03:53,400
science is your bus or you are 
fan of functional programming or

70
00:03:53,400 --> 00:03:56,100
all things Cloud. 
You can make real connections 

71
00:03:56,100 --> 00:04:00,200
with people who share your 
interests head on over to skills

72
00:04:00,200 --> 00:04:03,500
method or Cam to become part of 
the tech community that matters 

73
00:04:03,500 --> 00:04:06,100
most to you. 
It's free to join and you will 

74
00:04:06,100 --> 00:04:08,400
find it easy. 
See to keep up with the latest 

75
00:04:08,400 --> 00:04:12,400
tech Trends. 
Hello everyone. 

76
00:04:12,400 --> 00:04:14,800
Welcome back to another new 
episode of the pycnogenol 

77
00:04:14,800 --> 00:04:18,899
podcast today, I'm very excited.
I met someone who I went to a 

78
00:04:18,907 --> 00:04:22,100
talk in 2013, which was a jail. 
Singapore. 

79
00:04:22,600 --> 00:04:25,200
And I saw his talk very 
inspiring. 

80
00:04:25,200 --> 00:04:27,600
I think he talked about 
architecture back then and since

81
00:04:27,600 --> 00:04:30,300
then I followed some of his 
talks, I mean he's very 

82
00:04:30,300 --> 00:04:31,800
influential in the tech 
industry. 

83
00:04:31,800 --> 00:04:34,800
A lot of keynote speakers and 
things like that and he wrote 

84
00:04:34,800 --> 00:04:37,800
some books as well. 
So if you know Oh, this series 

85
00:04:37,800 --> 00:04:41,000
called 97 things haven't 
actually help to edit a few 

86
00:04:41,000 --> 00:04:44,300
books, 27 things, every 
programmer should know, and 97 

87
00:04:44,300 --> 00:04:46,000
things. 
Every Java programmer should 

88
00:04:46,000 --> 00:04:48,100
know. 
So Carolyn really looking 

89
00:04:48,100 --> 00:04:50,700
forward to have this chance to 
talk to you today, and welcome 

90
00:04:50,700 --> 00:04:52,800
to Tech to Juneau. 
Thank you very much for 

91
00:04:52,800 --> 00:04:54,400
inviting. 
Me Henry, great to be here. 

92
00:04:55,000 --> 00:04:57,800
So, Carolyn I always ask my 
guests to share your career 

93
00:04:57,800 --> 00:05:00,500
Journey. 
So make sure to maybe mention 

94
00:05:00,500 --> 00:05:02,800
some highlights or turning 
points that you think are 

95
00:05:02,800 --> 00:05:07,500
interesting for the listeners to
learn from Yeah, so I didn't 

96
00:05:07,500 --> 00:05:09,100
know that I was going to end up 
in software. 

97
00:05:09,400 --> 00:05:11,700
I don't think that was part of 
the plan, maybe something 

98
00:05:11,700 --> 00:05:13,700
technological, but I didn't know
that either. 

99
00:05:14,100 --> 00:05:17,900
My first degree was in physics 
and I realized part way through 

100
00:05:17,900 --> 00:05:19,700
that. 
Although I had some interest in 

101
00:05:19,700 --> 00:05:23,100
the sciences and physics, this 
was not the direction I wanted 

102
00:05:23,100 --> 00:05:26,000
to take. 
And I had been reading a lot of 

103
00:05:26,000 --> 00:05:29,800
stuff on at the time, Ai and 
just learning about all kinds of

104
00:05:29,800 --> 00:05:31,400
interesting things to do with 
computers. 

105
00:05:31,400 --> 00:05:33,800
It was a good distraction. 
I kind of finish my degree. 

106
00:05:33,800 --> 00:05:35,000
I had no idea what I was going 
to. 

107
00:05:35,100 --> 00:05:37,900
Do in a friend of mine said, Hey
Kevin, I've just gone for a job 

108
00:05:37,900 --> 00:05:40,500
interview at a company and 
they're looking for programmers 

109
00:05:40,500 --> 00:05:42,500
and you don't have to have a 
programming experience and I 

110
00:05:42,508 --> 00:05:44,700
thought, well, I've got some 
programming experience from my 

111
00:05:44,700 --> 00:05:47,700
degree and also being interested
in home computers originally, I 

112
00:05:47,700 --> 00:05:51,100
just went along and kind of that
got me into this. 

113
00:05:51,100 --> 00:05:54,500
And by the most interesting 
things, the work itself was not 

114
00:05:54,500 --> 00:05:57,500
necessarily that interesting. 
Although hindsight I think there

115
00:05:57,500 --> 00:05:59,000
were some really interesting 
opportunities. 

116
00:05:59,600 --> 00:06:02,600
What was interesting is that my 
boss had this bookshelf, this 

117
00:06:02,600 --> 00:06:06,500
huge book shelf of books that 
Were absolutely nothing to do 

118
00:06:06,500 --> 00:06:09,600
with anything that we were 
working on and I started reading

119
00:06:09,600 --> 00:06:11,900
up on computer science and 
programming languages. 

120
00:06:11,900 --> 00:06:13,900
I think programming language is 
absolutely fascinating. 

121
00:06:13,900 --> 00:06:17,600
I had no idea at this point. 
I was just looking through this 

122
00:06:17,600 --> 00:06:21,200
stuff and this is great. 
I really into this absolutely 

123
00:06:21,200 --> 00:06:23,600
fascinated by this. 
And after a couple of years, I 

124
00:06:23,608 --> 00:06:25,400
decided I want to take a 
different direction. 

125
00:06:25,400 --> 00:06:28,500
I'd started learning about 
object, orientation and coming 

126
00:06:28,500 --> 00:06:30,600
across these ideas. 
And I thought I want to do 

127
00:06:30,600 --> 00:06:34,100
something else, but I decided 
actually I do a master's degree 

128
00:06:34,100 --> 00:06:37,200
in parallel computers. 
Systems, which happened to have 

129
00:06:37,200 --> 00:06:39,200
some of the AI stuff. 
I was interested in, but I also 

130
00:06:39,200 --> 00:06:41,800
realized it was a lot of good 
programming Paradigm stuff in 

131
00:06:41,800 --> 00:06:44,900
there that kind of sealed the 
deal for me is like, yeah, 

132
00:06:44,900 --> 00:06:47,200
you're going to be in software 
development, that's the way it 

133
00:06:47,200 --> 00:06:48,900
goes. 
And so, I ended up working after

134
00:06:48,900 --> 00:06:52,100
that procedure is companies, 
typically was kind of back-end 

135
00:06:52,100 --> 00:06:54,700
or embedded type stuff. 
Although I did do a whole lot of

136
00:06:54,700 --> 00:06:58,500
UI stuff relatively early on, 
but eventually there came to be 

137
00:06:58,500 --> 00:07:00,800
a point where I was getting 
really frustrated with company 

138
00:07:00,800 --> 00:07:02,600
politics. 
I think a lot of people work in 

139
00:07:02,600 --> 00:07:04,900
environments where I was just 
like, yeah, I'm enjoying the 

140
00:07:05,300 --> 00:07:07,600
Yes, there's my colleagues. 
This is all good. 

141
00:07:07,600 --> 00:07:11,000
I'm enjoying all of the 
technical challenges, but the 

142
00:07:11,000 --> 00:07:13,600
politics and the people stuff 
can kind of weigh you down. 

143
00:07:13,600 --> 00:07:16,200
And I reached a kind of 
Crossroads thinking well, what 

144
00:07:16,200 --> 00:07:18,100
am I going to do with this? 
You know, I've got this 

145
00:07:18,100 --> 00:07:21,400
interest, but I didn't feel like
where I was working was working 

146
00:07:21,400 --> 00:07:24,100
out for me. 
I would far too often come into 

147
00:07:24,100 --> 00:07:27,300
conflict with company called sex
and I eventually decided, okay, 

148
00:07:27,300 --> 00:07:29,100
I'm going to take a completely 
different direction. 

149
00:07:29,500 --> 00:07:32,100
I'm going to go into training 
and consultancy, so I joined 

150
00:07:32,100 --> 00:07:34,300
another fertilizer. 
I'd been doing some Contracting 

151
00:07:34,300 --> 00:07:36,100
at that point. 
Which is kind of a good way to 

152
00:07:36,108 --> 00:07:40,200
seal yourself off from craziness
up to a point but that's where I

153
00:07:40,200 --> 00:07:42,000
really discovered, I really 
enjoyed. 

154
00:07:42,000 --> 00:07:45,500
I really enjoyed when I was a 
team leader, I really enjoy the 

155
00:07:45,500 --> 00:07:47,900
kind of like the connections 
that I was making these people. 

156
00:07:47,900 --> 00:07:51,500
I enjoyed the use of white board
discussions. 

157
00:07:51,500 --> 00:07:55,000
I enjoyed writing, I'd written a
number of Articles and I was 

158
00:07:55,000 --> 00:07:57,800
writing more and more articles 
and this was kind of this 

159
00:07:57,800 --> 00:08:00,300
opportunity to use your 
knowledge and frame it 

160
00:08:00,300 --> 00:08:02,700
differently and it also changed 
the way that I thought about 

161
00:08:02,700 --> 00:08:06,000
software development as well 
when you Communicating it, you 

162
00:08:06,000 --> 00:08:09,200
start realizing the, you know 
what some of those really great 

163
00:08:09,200 --> 00:08:12,100
ideas you had, they don't sound 
so good when you say them, 

164
00:08:12,800 --> 00:08:15,000
they're great in your head. 
When you try to explain the to 

165
00:08:15,000 --> 00:08:17,200
other people, you get a very 
different feedback loop. 

166
00:08:17,200 --> 00:08:20,000
And I think that's really where 
I started appreciating much more

167
00:08:20,000 --> 00:08:23,200
the social side but also how 
much I got out of communicating 

168
00:08:23,200 --> 00:08:25,100
things. 
So from that point on, I knew 

169
00:08:25,100 --> 00:08:26,700
that that was going to be part 
of my work. 

170
00:08:26,700 --> 00:08:28,100
That's how I thought about 
stuff. 

171
00:08:28,400 --> 00:08:30,900
That actually the process of 
training people had allowed me 

172
00:08:30,900 --> 00:08:33,299
to be a better programmer and I 
found so many different 

173
00:08:33,299 --> 00:08:38,000
connections that and Really, I 
decided many years ago, I would 

174
00:08:38,000 --> 00:08:41,200
go independent fully autonomous 
and I've been that way ever 

175
00:08:41,200 --> 00:08:44,800
since my work is kind of flowed 
between kind of workshops and 

176
00:08:44,800 --> 00:08:48,300
training and consultancy and 
coaching and writing. 

177
00:08:48,300 --> 00:08:50,800
So I get to choose a lot of the 
mix of what I'm doing. 

178
00:08:51,200 --> 00:08:54,000
I went to a, there's Betty major
turning point since then. 

179
00:08:54,000 --> 00:08:57,100
Because for me it's all one big 
flow of many possibilities 

180
00:08:57,300 --> 00:09:00,200
sometimes, one month is the same
as the next and other times. 

181
00:09:00,200 --> 00:09:02,000
I might be doing something 
completely different. 

182
00:09:02,200 --> 00:09:04,500
I guess the only other thing 
that really changed was the 

183
00:09:04,500 --> 00:09:06,900
pandemic. 
She completely online which has 

184
00:09:06,900 --> 00:09:10,100
allowed me to change the way 
that I run an offer things like 

185
00:09:10,100 --> 00:09:13,300
workshops training and also 
talks they tend to do a lot more

186
00:09:13,400 --> 00:09:16,700
specific talks for companies 
these days sometimes in person 

187
00:09:16,700 --> 00:09:20,800
but a lot of the time online and
that I find for me that's always

188
00:09:20,800 --> 00:09:22,900
a great discovery against that 
communicating things. 

189
00:09:22,900 --> 00:09:26,700
I tend to learn a great deal by 
trying to communicate my 

190
00:09:26,700 --> 00:09:28,500
thoughts. 
In other words, I thought I knew

191
00:09:28,500 --> 00:09:30,800
something and then I tried to 
communicate it and I normally 

192
00:09:30,800 --> 00:09:33,700
see more opportunities in it. 
More possibilities all the 

193
00:09:33,700 --> 00:09:35,800
flaws. 
In what I've just I said become 

194
00:09:35,800 --> 00:09:40,100
much more obvious. 
So for me, that is part of what 

195
00:09:40,100 --> 00:09:42,100
kind of keeps me going. 
It's not going to be the same 

196
00:09:42,100 --> 00:09:45,000
for everybody, but for me that's
one of the things that unlocked 

197
00:09:45,000 --> 00:09:47,400
some of the more interesting 
parts or software development. 

198
00:09:48,200 --> 00:09:50,700
Thanks for sharing your story. 
I think it's pretty interesting.

199
00:09:50,900 --> 00:09:54,400
When you mention about finding 
Fascination in writing speaking 

200
00:09:54,400 --> 00:09:57,700
and getting feedback loops, I 
always find you pretty natural 

201
00:09:57,700 --> 00:09:59,900
in speaking and engaging with 
audience. 

202
00:09:59,900 --> 00:10:02,800
I think that's really cool and I
think for those listeners who 

203
00:10:02,800 --> 00:10:05,700
also aspire to be not just a 
coder, Later on we will discuss 

204
00:10:05,700 --> 00:10:09,600
how you can follow K Journey, 
maybe to write more and speak 

205
00:10:09,600 --> 00:10:13,000
more in order to get that social
aspect of the software 

206
00:10:13,000 --> 00:10:15,600
development as well. 
Maybe, let's start with some of 

207
00:10:15,600 --> 00:10:19,000
the things that you edit it from
your books, 97, things, every 

208
00:10:19,000 --> 00:10:22,700
programmer should know, maybe if
you can distill three to five 

209
00:10:22,700 --> 00:10:26,200
key lessons, because we won't be
able to cover 97 thing's for 

210
00:10:26,200 --> 00:10:27,100
sure. 
What would be. 

211
00:10:27,100 --> 00:10:30,400
Some of your advice for 
developers here, what things 

212
00:10:30,400 --> 00:10:33,600
they should know what God said 
it should avoid, or maybe just 

213
00:10:33,600 --> 00:10:35,000
some things that you think they 
should. 

214
00:10:35,000 --> 00:10:38,100
A should you know, dive deeper? 
Yeah, I think that's an 

215
00:10:38,100 --> 00:10:40,600
interesting one because 
obviously there are 97 things in

216
00:10:40,600 --> 00:10:43,100
each of the every program should
know and every Java program 

217
00:10:43,100 --> 00:10:45,000
should know. 
So therefore what are three or 

218
00:10:45,000 --> 00:10:47,400
five that I would choose. 
It's difficult to pick favorites

219
00:10:47,400 --> 00:10:50,000
but actually what I might do. 
The easiest way for me to kind 

220
00:10:50,000 --> 00:10:53,400
of pick a few is just a think of
the ones that I've used in the 

221
00:10:53,400 --> 00:10:56,400
last week or directed people 
towards in the last week. 

222
00:10:56,700 --> 00:11:00,300
Here we are 20 22.97 things. 
Every program should know that 

223
00:11:00,300 --> 00:11:04,300
book was published in 2010 and 
97 things every child program. 

224
00:11:04,300 --> 00:11:07,300
She knows probably In 2020. 
But the funny thing is the first

225
00:11:07,300 --> 00:11:09,900
books 12 years old. 
Now and 12 years is a long time 

226
00:11:09,900 --> 00:11:13,700
in software development and yet 
I keep going back to the pieces 

227
00:11:13,700 --> 00:11:16,500
of advice in that book because 
they are relatively Timeless, 

228
00:11:16,800 --> 00:11:19,500
you won't find mention of 
microservices, but you will find

229
00:11:19,500 --> 00:11:22,000
mention of functional 
programming, you will find 

230
00:11:22,000 --> 00:11:25,300
mention of caring about your 
dependencies in your structures 

231
00:11:25,300 --> 00:11:28,400
and the rest of it, the names 
that we use for various things 

232
00:11:28,400 --> 00:11:32,100
have shifted, but actually a lot
of the interests and good ideas 

233
00:11:32,100 --> 00:11:34,600
are surprisingly stable and 
timeless. 

234
00:11:35,000 --> 00:11:37,400
So I often use these in my tools
because I think it's also good 

235
00:11:37,400 --> 00:11:40,100
to point out whenever I'm 
talking I tend to regard what 

236
00:11:40,100 --> 00:11:41,900
I'm doing. 
As I'm a Clearinghouse 

237
00:11:42,100 --> 00:11:44,600
everything, I teach or 
communicate, typically came from

238
00:11:44,600 --> 00:11:47,100
somebody else and if 
synthesizing these and put 

239
00:11:47,100 --> 00:11:48,300
together. 
So I think it's always really 

240
00:11:48,300 --> 00:11:51,700
kind of important to highlight 
that in the last week. 

241
00:11:51,900 --> 00:11:54,600
One of the ones that I've 
certainly referred to is 

242
00:11:54,600 --> 00:11:57,500
birkhoff naugles. 
Piece in 97 things. 

243
00:11:57,500 --> 00:11:59,700
Every program should know. 
He also contributed a Java 

244
00:11:59,700 --> 00:12:02,500
program should though, but the 
one that I always come back to, 

245
00:12:02,500 --> 00:12:05,900
in 97 things, every program 
should note is the Entitled, put

246
00:12:05,900 --> 00:12:07,900
down your Mouse step away from 
the keyboard. 

247
00:12:08,100 --> 00:12:10,300
I like this because it works on 
two levels. 

248
00:12:10,300 --> 00:12:13,200
First of all, there is the 
general advice of the peace 

249
00:12:13,500 --> 00:12:16,300
which is exactly captured in its
title. 

250
00:12:16,600 --> 00:12:20,200
The idea is that sometimes when 
you've been working, when you've

251
00:12:20,200 --> 00:12:23,000
been beating your head against a
problem too closely, you've 

252
00:12:23,000 --> 00:12:25,800
exhausted everything that you 
can do at that level that 

253
00:12:25,800 --> 00:12:29,700
detailed level, where you are 
concentrating intensely looking 

254
00:12:29,700 --> 00:12:33,000
at the screen that line of 
opportunities run dry. 

255
00:12:33,000 --> 00:12:34,900
Otherwise you have solved it, 
you've done everything. 

256
00:12:35,000 --> 00:12:38,100
Nothing you can at this level 
and doing more of it is not 

257
00:12:38,100 --> 00:12:40,500
going to help. 
So therefore this point thing 

258
00:12:40,500 --> 00:12:43,600
you have to do is disconnect 
disengage go do something else. 

259
00:12:44,100 --> 00:12:47,700
And I think that the lesson of 
this is psychological in the 

260
00:12:47,708 --> 00:12:50,200
sense that this tells us a 
little bit about how the brain 

261
00:12:50,200 --> 00:12:53,100
works. 
That you are very much in this 

262
00:12:53,100 --> 00:12:55,700
kind of focused style of 
thinking, which is not 

263
00:12:55,700 --> 00:12:58,800
necessarily creative, you may be
focused on detail. 

264
00:12:58,800 --> 00:13:01,100
You'll try to understand how 
things fit together, very 

265
00:13:01,100 --> 00:13:04,900
detail-oriented, very procedural
and that flushes out certain 

266
00:13:05,000 --> 00:13:09,700
Also, problems and issues. 
But the associative connection 

267
00:13:09,700 --> 00:13:13,800
oriented style of thinking, the 
more lateral thinking, that 

268
00:13:13,800 --> 00:13:16,500
doesn't normally happen at the 
same time or you can't force it 

269
00:13:16,500 --> 00:13:19,000
on. 
And that I think is also a huge 

270
00:13:19,000 --> 00:13:22,100
reminder to us because I think 
many people work in environments

271
00:13:22,100 --> 00:13:24,200
where the most common thing I 
get asked. 

272
00:13:24,200 --> 00:13:26,800
What if we don't have time, we 
don't have time for this and 

273
00:13:26,800 --> 00:13:29,500
it's just like, you know what 
you do have time. 

274
00:13:29,500 --> 00:13:32,600
It's just that the thing, you're
not good at and I don't mean you

275
00:13:32,600 --> 00:13:34,800
as picking somebody else. 
I mean, you as a human being 

276
00:13:34,900 --> 00:13:38,000
Being and not necessarily good 
at is knowing how to use your 

277
00:13:38,000 --> 00:13:39,700
time. 
This is not a strength that we 

278
00:13:39,700 --> 00:13:42,500
have with very poor at this. 
Then actually, if you want to 

279
00:13:42,500 --> 00:13:45,100
save time then stop working. 
This is counter-intuitive. 

280
00:13:45,100 --> 00:13:47,100
Some people, I know I need to 
put in more hours. 

281
00:13:47,100 --> 00:13:49,000
I need to put in two more hours 
on this problems. 

282
00:13:49,000 --> 00:13:51,000
Like actually you're probably 
going to solve that problem by 

283
00:13:51,000 --> 00:13:53,000
not working on it. 
Go and do something else. 

284
00:13:53,300 --> 00:13:56,200
The solution will come to you 
you know five minutes you'll 

285
00:13:56,200 --> 00:13:58,700
have solved it you can't tell. 
When that five minutes is going 

286
00:13:58,700 --> 00:14:00,900
to be, maybe it's while you're 
having breakfast, maybe it's why

287
00:14:00,900 --> 00:14:03,800
sharing, maybe it's while you're
on the subway, on the way home, 

288
00:14:04,100 --> 00:14:06,600
the point there is that Once 
you've let go, your brain is 

289
00:14:06,600 --> 00:14:11,000
just no longer concentrating on 
that and the ideas will connect.

290
00:14:11,300 --> 00:14:13,100
You got to kind of trust the 
fact that you're not trying to 

291
00:14:13,100 --> 00:14:15,000
control the process that it'll 
happen. 

292
00:14:15,100 --> 00:14:18,000
So that's the kind of the broad 
message was peace, but I also 

293
00:14:18,000 --> 00:14:20,700
like his peace because he shows 
a concrete example where he 

294
00:14:20,700 --> 00:14:23,800
experienced this, it's a piece 
of code and he shows us the 

295
00:14:23,800 --> 00:14:26,100
tidied up version. 
He shows us the piece of code 

296
00:14:26,100 --> 00:14:28,900
after it's been reflected and 
it's really messy and 

297
00:14:28,900 --> 00:14:32,500
complicated and procedural. 
He does the right thing but then

298
00:14:32,500 --> 00:14:35,200
he steps away and realizes Know 
what? 

299
00:14:35,200 --> 00:14:36,800
This is just a pattern matching 
problem. 

300
00:14:37,100 --> 00:14:39,400
I'm trying to approach it with 
kind of ifs. 

301
00:14:39,700 --> 00:14:41,300
That's what I tend to see in a 
lot of code. 

302
00:14:41,300 --> 00:14:43,400
Oh yeah you're trying to solve 
the problem by using a lot of 

303
00:14:43,400 --> 00:14:46,000
ifs. 
It's this otherwise it's just 

304
00:14:46,000 --> 00:14:48,400
like there's something simpler 
waiting to happen and you just 

305
00:14:48,400 --> 00:14:50,700
don't know what it is. 
He reveals that it's one of 

306
00:14:50,708 --> 00:14:53,800
those things like take the foot 
off the pedal and a lot of 

307
00:14:53,800 --> 00:14:56,500
things get solved. 
So thinking is important in 

308
00:14:56,500 --> 00:14:58,900
software development therefore 
you got to learn there are 

309
00:14:58,908 --> 00:15:01,300
different ways of thinking and 
some of those are not about 

310
00:15:01,300 --> 00:15:03,800
pushing yourself there. 
Exactly about pulling yourself 

311
00:15:03,800 --> 00:15:06,100
away, the exact opposite. 
So I really like that piece 

312
00:15:06,100 --> 00:15:08,400
because it has a detailed 
technical message showing us 

313
00:15:08,400 --> 00:15:10,800
perhaps where unmanaged 
technical debt comes from and 

314
00:15:10,800 --> 00:15:13,500
how code can become complex 
through no fault of our own. 

315
00:15:13,900 --> 00:15:16,400
But it also shows us the 
relationship that we have with 

316
00:15:16,400 --> 00:15:20,300
time and our attention and Co so
that one I think for me always 

317
00:15:20,300 --> 00:15:21,600
sticks out as a, quite a big 
one. 

318
00:15:22,100 --> 00:15:24,400
Another one I'm going to pick on
although this is a little bit 

319
00:15:24,400 --> 00:15:27,200
self-serving because I wrote it,
but it seems to come up a lot in

320
00:15:27,208 --> 00:15:30,500
the last couple of weeks, the 
title tells you everything, it 

321
00:15:30,500 --> 00:15:34,000
is a piece on comments, comment 
only what the code cannot say, 

322
00:15:34,300 --> 00:15:35,800
the whole question. 
I have comments is an 

323
00:15:35,800 --> 00:15:38,400
interesting one in software 
because comments are code. 

324
00:15:38,400 --> 00:15:40,300
That is not code. 
You know, as they don't have a 

325
00:15:40,300 --> 00:15:43,600
formal syntax, they are code, 
that is not cone which means 

326
00:15:43,600 --> 00:15:45,600
that they don't get checked for 
correctness. 

327
00:15:46,000 --> 00:15:48,400
Most comments are wrong and if 
they don't start out that way, 

328
00:15:48,400 --> 00:15:51,000
they become that way. 
But because they don't trigger a

329
00:15:51,000 --> 00:15:54,200
compiler error and they don't 
fail a test and they don't cause

330
00:15:54,200 --> 00:15:56,400
a bug. 
Our attention is not drawn to 

331
00:15:56,400 --> 00:15:58,800
them. 
So they don't have a process 

332
00:15:58,800 --> 00:16:01,300
that causes us to correct. 
If you broke the build, you're 

333
00:16:01,300 --> 00:16:02,700
going to go and fix something, 
okay? 

334
00:16:02,800 --> 00:16:04,800
That's the thing. 
But if your Punctuation is a 

335
00:16:05,000 --> 00:16:06,800
Messy and your comments. 
That's not going to cause 

336
00:16:06,800 --> 00:16:08,700
anything. 
If you're stating things that 

337
00:16:08,700 --> 00:16:11,900
are factually incorrect, that's 
not going to cause anything. 

338
00:16:12,200 --> 00:16:15,100
And so people have these various
different philosophies of 

339
00:16:15,100 --> 00:16:16,900
comments, and it's an 
interesting one because it's a 

340
00:16:16,900 --> 00:16:19,000
kind of like we have this 
absolute freedom. 

341
00:16:19,300 --> 00:16:21,100
Absolute freedom is a quite a 
frightening thing. 

342
00:16:21,100 --> 00:16:22,700
People don't know what to do 
with it. 

343
00:16:22,900 --> 00:16:24,900
And so we have these 
observations about, okay? 

344
00:16:24,900 --> 00:16:27,100
Your comments, become 
out-of-date more rest of it. 

345
00:16:27,100 --> 00:16:29,000
But we also have this desire to 
be helpful. 

346
00:16:29,300 --> 00:16:32,000
We want to help people. 
There are two extreme schools in

347
00:16:32,000 --> 00:16:34,700
this one school. 
People is like, don't comment 

348
00:16:34,700 --> 00:16:37,700
your Code, all comments are bad.
Always kind of star. 

349
00:16:38,200 --> 00:16:40,500
Your code should be self 
documenting from one 

350
00:16:40,500 --> 00:16:43,000
perspective, I look like, I lean
a little bit more towards that 

351
00:16:43,000 --> 00:16:45,900
camp but my system of belief on 
this one is slightly different 

352
00:16:45,900 --> 00:16:47,600
to the way that these are 
articulated. 

353
00:16:47,900 --> 00:16:50,500
The idea is, I don't think that 
all comments are necessarily 

354
00:16:50,500 --> 00:16:52,500
bad. 
That's not the useful position. 

355
00:16:52,700 --> 00:16:55,800
I also don't think that saying 
that you shouldn't have comments

356
00:16:55,900 --> 00:16:57,800
in automatically improves your 
code. 

357
00:16:58,000 --> 00:17:00,400
Although I've seen coat which 
would be improved by deleting 

358
00:17:00,400 --> 00:17:03,500
the comment, I don't think it's 
an automatic consequence. 

359
00:17:03,800 --> 00:17:06,500
So there's a lack of nuance. 
For most devices, like don't 

360
00:17:06,500 --> 00:17:09,700
comment your code. 
Lacks intelligence Nuance, you 

361
00:17:09,700 --> 00:17:12,800
want to understand why? 
But at the other end, the 

362
00:17:12,800 --> 00:17:15,599
common, everything crowd is just
like it's just noise. 

363
00:17:16,000 --> 00:17:18,500
And I've seen far too many 
examples of that fail. 

364
00:17:18,700 --> 00:17:21,700
So, the way to understand this 
is don't comment what the code 

365
00:17:21,700 --> 00:17:24,200
already says, that's a fairly 
standard piece of advice, that 

366
00:17:24,200 --> 00:17:25,700
tells us some of the things we 
don't want to do. 

367
00:17:26,000 --> 00:17:30,300
But there's a really interesting
connection here between 

368
00:17:30,500 --> 00:17:32,900
understanding what it is that 
you're trying to communicate. 

369
00:17:32,900 --> 00:17:34,700
So for me there's a deep message
here. 

370
00:17:34,900 --> 00:17:38,600
What am I trying to say? 
How am I communicating and what 

371
00:17:38,600 --> 00:17:43,400
is then said in your code and 
for me that's the driver is like

372
00:17:43,400 --> 00:17:46,600
what can I say, why would I want
to put a comment here? 

373
00:17:46,800 --> 00:17:49,300
I would want to put a comment 
here because the code is not 

374
00:17:49,300 --> 00:17:51,200
obvious. 
It doesn't say what I, it's not 

375
00:17:51,200 --> 00:17:53,100
obvious, what I'm saying. 
Okay. 

376
00:17:53,100 --> 00:17:55,400
So recognize that as a neat, 
that doesn't mean you need a 

377
00:17:55,408 --> 00:17:58,600
comment yet, it just means, oh, 
there's a communication 

378
00:17:58,600 --> 00:18:01,100
shortfall between what I'm 
looking at on the screen. 

379
00:18:01,100 --> 00:18:03,200
What I've just created perhaps, 
or what somebody else has 

380
00:18:03,200 --> 00:18:06,500
created. 
There's a Caishen gap between 

381
00:18:06,600 --> 00:18:09,800
that and the thoughts in my 
head, what I feel. 

382
00:18:09,800 --> 00:18:11,800
I want communicate. 
We're not saying everything that

383
00:18:11,800 --> 00:18:15,300
we want to, so that's a good 
first candidate for baby why we 

384
00:18:15,308 --> 00:18:17,700
want to comment, but don't do it
just yet. 

385
00:18:17,700 --> 00:18:20,700
If what is it that you would 
want to say and then suddenly 

386
00:18:20,700 --> 00:18:23,200
say hang on. 
Could I say that in the code? 

387
00:18:23,300 --> 00:18:25,900
Could I say that in the thing 
that is going to get checked? 

388
00:18:26,200 --> 00:18:27,900
Or am I just apologizing for the
code? 

389
00:18:28,300 --> 00:18:32,100
In other words, if I've got a 
variable a and I put a comment A

390
00:18:32,100 --> 00:18:35,500
is for altitude, then I'm In for
the code. 

391
00:18:35,500 --> 00:18:38,000
Why don't I call it altitude? 
There you go. 

392
00:18:38,000 --> 00:18:40,300
I've got a better name for it 
and I was, I can say it in the 

393
00:18:40,300 --> 00:18:42,600
code. 
If I got a big block of code and

394
00:18:42,600 --> 00:18:44,500
I've got a big banner up at the 
front. 

395
00:18:45,100 --> 00:18:46,900
Let's go like, well why is this 
not a method? 

396
00:18:47,400 --> 00:18:50,700
Because that's what a method is.
It's a named block of code. 

397
00:18:51,000 --> 00:18:53,500
You know, when we see large 
methods that are hundreds, if 

398
00:18:53,500 --> 00:18:55,900
not thousands of lines long, 
there are two thoughts. 

399
00:18:55,900 --> 00:18:58,400
Here is just like, why we not 
factoring this out into methods?

400
00:18:58,400 --> 00:19:00,500
That's what therefore, they are 
blocks. 

401
00:19:00,500 --> 00:19:02,400
That is what a method is 
fundamentally. 

402
00:19:02,400 --> 00:19:05,300
It is a catcher block with a 
name and a Clear set of 

403
00:19:05,300 --> 00:19:07,400
parameters. 
And if that deserves, an 

404
00:19:07,400 --> 00:19:10,100
appropriate, javadoc style 
Comet, then that's fine because 

405
00:19:10,100 --> 00:19:12,700
that comment is for external 
documentation, it's not for the 

406
00:19:12,700 --> 00:19:15,900
reader of the code, it's for the
user that belongs to 

407
00:19:15,908 --> 00:19:18,800
documentation, says, post being 
something that is in line with 

408
00:19:18,800 --> 00:19:21,000
it. 
So that leads to the advice. 

409
00:19:21,100 --> 00:19:24,200
Comment, only what the code 
cannot say, not what the code 

410
00:19:24,200 --> 00:19:27,900
does not say, but what can't it 
say, in other words, what can I 

411
00:19:27,900 --> 00:19:31,600
do to get to the point and that 
the way I often motivate people,

412
00:19:31,900 --> 00:19:34,700
imagine you didn't have comments
in your language now, right? 

413
00:19:34,800 --> 00:19:37,400
Code, write the code if you 
didn't have God. 

414
00:19:37,700 --> 00:19:40,700
Right now you've done that. 
Is there anything else you'd 

415
00:19:40,700 --> 00:19:43,500
like to say to the reader? 
You've said, everything you 

416
00:19:43,500 --> 00:19:46,500
possibly could. 
Whatever is left, is the thing 

417
00:19:46,500 --> 00:19:48,800
that cannot be easily 
communicated that you couldn't 

418
00:19:48,800 --> 00:19:50,800
say in the language. 
Now, you have your comments back

419
00:19:50,800 --> 00:19:54,100
again and at that point, your 
comments increase in value. 

420
00:19:54,400 --> 00:19:56,900
That's the key to have things 
that are of value. 

421
00:19:57,200 --> 00:19:59,200
One of the ways we drive value 
is scarcity. 

422
00:19:59,400 --> 00:20:02,600
A kg of iron is worth 
significantly less than the kg 

423
00:20:02,600 --> 00:20:04,600
of gold. 
Although iron is technically 

424
00:20:04,600 --> 00:20:06,600
more. 
Useful, as a material, the 

425
00:20:06,600 --> 00:20:08,900
higher value, gold is defined by
scarcity. 

426
00:20:08,900 --> 00:20:12,100
If you had as much gold in the 
world, as there is iron, a kilo 

427
00:20:12,100 --> 00:20:14,500
of gold be worth a lot less than
a kilo of ironing. 

428
00:20:14,600 --> 00:20:16,800
Not a very useful substance in 
that quantity. 

429
00:20:16,900 --> 00:20:20,400
So the idea there is scarcity 
helps to find the values. 

430
00:20:20,400 --> 00:20:22,200
You put comments everywhere they
worth nothing. 

431
00:20:22,600 --> 00:20:24,500
So for me, that's something I 
find. 

432
00:20:24,500 --> 00:20:27,500
I'm communication to people. 
It's much more balanced way of 

433
00:20:27,508 --> 00:20:30,500
thinking and it caused me to 
think about how do I value 

434
00:20:30,500 --> 00:20:31,600
these. 
What do I think? 

435
00:20:31,600 --> 00:20:33,200
Is a useful way of thinking 
about this? 

436
00:20:34,000 --> 00:20:36,800
Probably a third piece. 
I don't think there's a specific

437
00:20:36,800 --> 00:20:39,600
therapies except that I would 
say, what's interesting in both 

438
00:20:39,600 --> 00:20:42,100
of the books that 97 exemplary 
program should notebook. 

439
00:20:42,300 --> 00:20:44,100
And then I've said, things, 
every Java program should do 

440
00:20:44,100 --> 00:20:48,200
book is there is a really strong
emphasis people have really 

441
00:20:48,200 --> 00:20:51,200
consistent on testing. 
I got a lot of pieces and very 

442
00:20:51,200 --> 00:20:55,100
well, written pieces on test 
this idea that as part of the 

443
00:20:55,100 --> 00:20:57,900
coding cycle, that is part of 
the fabric of software 

444
00:20:57,900 --> 00:21:00,000
developers, not something else, 
it's not there as software 

445
00:21:00,000 --> 00:21:03,000
development and there is 
testing, testing is a part of 

446
00:21:03,000 --> 00:21:05,900
software. 
Element that is a consistent 

447
00:21:05,900 --> 00:21:07,700
view that has been with us for a
while. 

448
00:21:08,200 --> 00:21:10,700
But perhaps I think there is 
continued scope for improvement 

449
00:21:10,700 --> 00:21:13,000
on that. 
I think we can always do that. 

450
00:21:13,000 --> 00:21:15,100
We can always do that better. 
And in fact there's a really 

451
00:21:15,100 --> 00:21:17,700
nice piece in 97 things, every 
Java programmers should know 

452
00:21:17,700 --> 00:21:20,500
from research Van Dyke on this 
where she really breaks down the

453
00:21:20,500 --> 00:21:22,400
value of communication in 
testing. 

454
00:21:22,800 --> 00:21:26,900
So you can actually find all the
book items online, somebody 

455
00:21:26,900 --> 00:21:29,700
moved in to get books. 
I intentionally created book 

456
00:21:29,700 --> 00:21:32,100
with a Creative Commons license,
so that people could do that. 

457
00:21:32,100 --> 00:21:35,400
So there's a gift box version of
it. 497 things every Java 

458
00:21:35,400 --> 00:21:39,100
programmer should know. 
We took submissions through 

459
00:21:39,100 --> 00:21:43,600
Medium as well as through a kind
of Google form style thing but 

460
00:21:43,600 --> 00:21:45,500
all the medium stuff is still 
online. 

461
00:21:45,900 --> 00:21:49,500
Including use testing to develop
better software Faster by Marie 

462
00:21:49,500 --> 00:21:51,800
Van dijk, Marie breaks down 
really. 

463
00:21:51,800 --> 00:21:53,700
The intention about what makes a
good test. 

464
00:21:53,700 --> 00:21:56,300
That's the other thing that I 
think is really important is the

465
00:21:56,300 --> 00:21:58,500
idea again. 
Think of your testers, 

466
00:21:58,500 --> 00:22:02,000
communication tests are not 
merely checking anybody who's 

467
00:22:02,000 --> 00:22:03,500
kind of communicating. 
Oh yeah, tested. 

468
00:22:03,700 --> 00:22:07,300
Just checks, you have totally 
missed, how to do testing in 

469
00:22:07,300 --> 00:22:11,600
software, but sure, they have 
value as checks, but that's not 

470
00:22:11,600 --> 00:22:13,400
the full story. 
That's kind of the sound of one 

471
00:22:13,400 --> 00:22:15,500
hand clapping. 
It's like, it's part of the 

472
00:22:15,500 --> 00:22:18,300
story, but you really got to 
understand some Act of 

473
00:22:18,300 --> 00:22:20,500
communication that makes the 
story. 

474
00:22:20,500 --> 00:22:24,100
Much, much bigger it reframes. 
The way you think about tests 

475
00:22:24,100 --> 00:22:27,100
tests are not merely checks. 
They are expression of 

476
00:22:27,100 --> 00:22:29,000
intention. 
There are four of communication,

477
00:22:29,400 --> 00:22:31,900
they're kind of an opportunity. 
Not only for somebody else to 

478
00:22:31,900 --> 00:22:35,000
understand what's going on. 
They also an opportunity for 

479
00:22:35,000 --> 00:22:36,700
whoever's writing the test, 
whether you're doing that on 

480
00:22:36,700 --> 00:22:40,400
your own as a pair part of a mob
of trying to all what are we 

481
00:22:40,400 --> 00:22:42,400
trying to say here? 
And that's actually the hardest 

482
00:22:42,400 --> 00:22:44,800
thing mechanics of the test or 
something. 

483
00:22:44,800 --> 00:22:48,200
I think we get drawn into a lot 
but actually that's not the hard

484
00:22:48,200 --> 00:22:49,700
part. 
The hard part is one of you 

485
00:22:49,708 --> 00:22:52,200
actually trying to say here that
is the challenge. 

486
00:22:52,600 --> 00:22:54,800
So that for me is the most 
important. 

487
00:22:54,800 --> 00:22:58,400
Thing about testing tests are 
not second-class citizens, they 

488
00:22:58,400 --> 00:23:01,600
are an opportunity to express 
something that perhaps again, 

489
00:23:01,700 --> 00:23:04,500
you could not say in the code. 
So this Next with what I just 

490
00:23:04,500 --> 00:23:07,900
said about comments, is we have 
all these other means of 

491
00:23:07,900 --> 00:23:11,300
communicating or intention and 
again sometimes I might be 

492
00:23:11,300 --> 00:23:14,600
writing a piece of code and I 
say okay here's the thing. 

493
00:23:14,600 --> 00:23:17,900
I couldn't say always not easily
said in the code and I might 

494
00:23:17,900 --> 00:23:20,400
start writing a comment. 
I said well maybe if I showed 

495
00:23:20,400 --> 00:23:23,300
you an example of interaction. 
What a great idea. 

496
00:23:23,300 --> 00:23:26,200
An example of interaction. 
Let here's piece of example code

497
00:23:26,300 --> 00:23:29,200
it shows the interaction that's 
of interest and just to make 

498
00:23:29,200 --> 00:23:31,400
sure that we're all good. 
I'll put a bunch of assertions 

499
00:23:31,400 --> 00:23:33,100
at the end. 
Bingo you've got to test. 

500
00:23:33,100 --> 00:23:35,700
You've communicated Tasted 
intention, you've created the 

501
00:23:35,700 --> 00:23:38,700
test from understanding that you
are trying to say something that

502
00:23:38,700 --> 00:23:42,400
was not otherwise easily set. 
So I for me, these for part of a

503
00:23:42,400 --> 00:23:46,800
thinking system sets, I know 
it's very hard to pick favorites

504
00:23:46,800 --> 00:23:49,700
from the 97 times to. 
I don't know whether there are 

505
00:23:49,700 --> 00:23:52,000
any overlaps from the two books 
just to summarize. 

506
00:23:52,000 --> 00:23:55,000
The first things about being 
detached from working intense 

507
00:23:55,000 --> 00:23:57,600
for a long time, right? 
So sometimes we as developers, 

508
00:23:57,600 --> 00:24:01,200
we Crack the Code, we just rash 
and we just deliver features of 

509
00:24:01,200 --> 00:24:04,500
a bitches sometimes when you are
in this Kind of coding 

510
00:24:04,500 --> 00:24:07,300
mechanics. 
We tend to probably don't see a 

511
00:24:07,300 --> 00:24:10,200
pattern that we can improve in 
terms of maybe problem-solving. 

512
00:24:10,200 --> 00:24:13,300
Exactly looking at the code and 
things like that or even ideas 

513
00:24:13,300 --> 00:24:15,800
how we can do things better. 
And the second one is about 

514
00:24:15,800 --> 00:24:19,700
common, don't put comment if the
code can already say, is that. 

515
00:24:20,000 --> 00:24:22,400
So I think it's really crucial 
because sometimes I still see 

516
00:24:22,400 --> 00:24:23,400
comment. 
Like you mentioned. 

517
00:24:23,400 --> 00:24:24,900
Write the comment is totally 
wrong. 

518
00:24:24,900 --> 00:24:28,500
The code, has evolved Maybe by 
multiple people editing it so 

519
00:24:28,500 --> 00:24:30,300
the comments did not get 
updated. 

520
00:24:30,300 --> 00:24:33,500
So I think it's really crucial. 
Don't put comments if you don't.

521
00:24:33,700 --> 00:24:35,600
Have to. 
And the last one, I think is 

522
00:24:35,600 --> 00:24:38,400
very important testing. 
I think almost everyone is 

523
00:24:38,400 --> 00:24:42,700
talking about testing testing, 
tdd testing as a practice and 

524
00:24:42,700 --> 00:24:44,900
what you mentioned just now is 
about communication, or it's not

525
00:24:44,900 --> 00:24:47,300
just for validation. 
I think there are still some 

526
00:24:47,300 --> 00:24:50,600
examples that I saw from time to
time that people just put 

527
00:24:50,600 --> 00:24:53,000
validation as the main intent of
test. 

528
00:24:53,200 --> 00:24:56,600
But the test names, the test 
cases, all the things that are 

529
00:24:56,600 --> 00:24:59,500
inside the test, probably as 
just a random variables and 

530
00:24:59,500 --> 00:25:01,600
things like that. 
And it makes it hard for people 

531
00:25:01,600 --> 00:25:03,900
to maintain and update over the 
Time. 

532
00:25:04,100 --> 00:25:07,400
So I think thanks for sharing 
that test is communication. 

533
00:25:07,400 --> 00:25:09,800
And again, that idea comments is
communication. 

534
00:25:09,800 --> 00:25:12,800
If we regard what we're doing in
creating a code base for 

535
00:25:12,800 --> 00:25:15,900
creating a system of knowledge, 
and we want to communicate that.

536
00:25:15,900 --> 00:25:18,200
And when you start looking at it
like that, you suddenly realize 

537
00:25:18,200 --> 00:25:20,100
what you do want to do. 
But also what you don't want to 

538
00:25:20,100 --> 00:25:23,200
do, and we also realize the 
half-truths, in other words. 

539
00:25:23,400 --> 00:25:25,900
Sure, test, do validation and 
verification. 

540
00:25:26,200 --> 00:25:28,800
That's a part of their story, 
but that's not the whole of 

541
00:25:28,800 --> 00:25:30,400
their story, they can tell us a 
lot more. 

542
00:25:30,400 --> 00:25:33,000
And I think that idea, when we 
start stepping back and going, 

543
00:25:33,000 --> 00:25:34,600
oh, yeah, it's Just a mechanical
thing. 

544
00:25:34,600 --> 00:25:37,700
It's an intention setting. 
So one thing that I noticed when

545
00:25:37,700 --> 00:25:40,300
you mention in the beginning 
before you grief these three 

546
00:25:40,300 --> 00:25:43,000
things is you mentioned the 
books have been written like 12 

547
00:25:43,000 --> 00:25:46,600
years ago and there are still 
some things that are Timeless 

548
00:25:46,900 --> 00:25:48,600
and this is something that you 
mentioned before. 

549
00:25:48,600 --> 00:25:52,200
We had this talk that we can all
learn from the past, there are 

550
00:25:52,208 --> 00:25:55,200
many things that stays relevant 
there, many things that stays 

551
00:25:55,200 --> 00:25:58,300
true even till now. 
So what would be some top key 

552
00:25:58,300 --> 00:26:02,300
lessons from the past that you 
think we as programmers covering

553
00:26:02,300 --> 00:26:05,000
the old programmers? 
And new programmers should know 

554
00:26:05,300 --> 00:26:07,600
what are the things from the 
past are still stays relevant. 

555
00:26:08,100 --> 00:26:09,700
So let's go back to origin 
story. 

556
00:26:09,700 --> 00:26:12,200
So I read a lot of books. 
When I got into software 

557
00:26:12,200 --> 00:26:15,200
development was the end of the 
1980s, which is quite a long 

558
00:26:15,200 --> 00:26:17,300
time ago and the world has 
changed a lot. 

559
00:26:17,300 --> 00:26:21,200
Since then the books that my 
boss had were from the 1980s and

560
00:26:21,200 --> 00:26:24,700
the 1970s and I read a lot of 
these things so they were kind 

561
00:26:24,700 --> 00:26:26,300
of already historical all of 
them. 

562
00:26:26,800 --> 00:26:32,000
But what I found was a 
surprisingly Timeless quality to

563
00:26:32,200 --> 00:26:33,500
some of the books and their 
advice. 

564
00:26:34,200 --> 00:26:37,300
So I was brought up on a lot of 
ideas about how to think about 

565
00:26:37,300 --> 00:26:41,300
code in terms of cohesion and 
coupling, we are losing these 

566
00:26:41,300 --> 00:26:42,800
message. 
People have got distracted by 

567
00:26:42,800 --> 00:26:46,100
guidelines that don't emphasize 
these properly or have watered 

568
00:26:46,100 --> 00:26:49,600
them down in a particular way. 
It cohesion, and coupling 

569
00:26:49,600 --> 00:26:53,000
cohesion, the degree to, which 
things cohere and naturally hold

570
00:26:53,000 --> 00:26:54,400
together. 
Now, sometimes people kind of 

571
00:26:54,400 --> 00:26:56,300
psycho wasn't that the single 
responsibility principle, well, 

572
00:26:56,300 --> 00:26:58,700
not really it. 
They kind of cohesion, it's not 

573
00:26:58,700 --> 00:27:01,100
about responsibilities. 
The original quote, has the 

574
00:27:01,100 --> 00:27:03,200
single responsibility principle 
is actually about single reason 

575
00:27:03,200 --> 00:27:05,800
for Change has nothing to do 
with responsibilities, so naming

576
00:27:05,800 --> 00:27:07,900
is hard. 
We know that single reason for 

577
00:27:07,900 --> 00:27:09,600
change. 
What does that actually mean? 

578
00:27:09,600 --> 00:27:12,800
It does really mean much. 
It's a kind of cohesion, but 

579
00:27:12,800 --> 00:27:14,300
there are other kinds of 
cohesion. 

580
00:27:14,300 --> 00:27:17,900
So why people have got fixated 
on one, kind of cohesion, to the

581
00:27:17,900 --> 00:27:19,700
exclusion of others. 
I don't understand. 

582
00:27:19,900 --> 00:27:22,100
We should be teaching people 
about cohesion. 

583
00:27:22,400 --> 00:27:24,600
And then again, if we look at 
things like the solid principles

584
00:27:24,600 --> 00:27:27,700
or many of the principles people
describe, they don't talk about 

585
00:27:27,700 --> 00:27:29,400
coupling. 
In other words, dependency 

586
00:27:29,400 --> 00:27:32,900
management, the degree to which 
things connect and we have far 

587
00:27:32,900 --> 00:27:35,300
more dependent And it sees in 
code bases. 

588
00:27:35,300 --> 00:27:37,700
Now, for some people when they 
talk about dependencies they are

589
00:27:37,708 --> 00:27:39,700
talk about. 
External dependencies, you sort 

590
00:27:39,700 --> 00:27:40,900
of say, oh dependency 
management. 

591
00:27:40,900 --> 00:27:42,400
Yeah. 
And they show you all their 

592
00:27:42,400 --> 00:27:44,700
external dependencies. 
Like yeah, he got half a million

593
00:27:44,700 --> 00:27:46,000
lines, count. 
It I'm talking about the 

594
00:27:46,000 --> 00:27:49,100
dependencies in the code base, 
not just outside the code base. 

595
00:27:49,200 --> 00:27:51,800
Some people are kind of ended up
kind of losing track of that. 

596
00:27:51,800 --> 00:27:55,200
So coupling cohesion, these are 
ideas in the 1970s. 

597
00:27:55,200 --> 00:27:58,000
They do not go away. 
They are fundamental, there's a 

598
00:27:58,000 --> 00:27:59,300
lot of things. 
People have been trying to push 

599
00:27:59,300 --> 00:28:02,600
as fundamental. 
Those are coupling, cohesion are

600
00:28:02,600 --> 00:28:04,800
for us. 
They are for For our benefit, by

601
00:28:04,800 --> 00:28:06,800
the way, the code doesn't care. 
The compiler is just going to 

602
00:28:06,808 --> 00:28:08,800
compile what you give it. 
It doesn't care about coupling 

603
00:28:08,800 --> 00:28:11,200
and cohesion. 
The processor you're running on 

604
00:28:11,300 --> 00:28:12,700
doesn't care about coupling, 
cohesion. 

605
00:28:12,700 --> 00:28:15,500
It's just going to execute what 
you say company, cohesion, for 

606
00:28:15,500 --> 00:28:18,400
our benefit there. 
So that we understand so that we

607
00:28:18,400 --> 00:28:20,600
can maintain so that we can 
build. 

608
00:28:20,800 --> 00:28:23,100
That's what that's about. 
So for me, these are really old 

609
00:28:23,100 --> 00:28:26,200
ideas and more appropriately 
Timeless ideas. 

610
00:28:26,200 --> 00:28:28,400
They don't go away, we should be
building on them, not trying to 

611
00:28:28,400 --> 00:28:31,100
muddle a message there for 
paying attention to. 

612
00:28:31,100 --> 00:28:33,900
This stuff is important. 
And I think that's A lot of 

613
00:28:33,908 --> 00:28:36,100
people are trying to do when 
they reiterate all try and 

614
00:28:36,100 --> 00:28:40,000
reframe these, they're trying to
get that message out but then, 

615
00:28:40,000 --> 00:28:42,800
there are other things that I 
think we haven't paid attention 

616
00:28:42,800 --> 00:28:46,100
to go quality. 
So these days, the popular way 

617
00:28:46,100 --> 00:28:48,900
of framing things in terms of 
issues of Co quality, is in 

618
00:28:48,900 --> 00:28:51,600
terms of technical debt. 
Now, that's not really quite 

619
00:28:51,600 --> 00:28:55,500
right, but it's not a bad 
metaphor, although we do misuse 

620
00:28:55,500 --> 00:28:58,900
it a little bit, but if you look
back at the past, people have 

621
00:28:58,900 --> 00:29:01,800
been talking about quality 
issues forever, since they 

622
00:29:01,800 --> 00:29:04,500
realize there was an issue. 
One of the things we've learned 

623
00:29:04,500 --> 00:29:07,700
is that this really does make a 
difference to the future of 

624
00:29:07,708 --> 00:29:11,100
development. 
So how can we expect people to 

625
00:29:11,200 --> 00:29:13,800
easily add things in future? 
Put it another way. 

626
00:29:14,000 --> 00:29:16,000
Most developers are living in 
the past. 

627
00:29:16,100 --> 00:29:19,200
When somebody sits down in front
of a piece of code, they are 

628
00:29:19,200 --> 00:29:21,700
projecting themselves into the 
past, maybe it was the past 

629
00:29:21,700 --> 00:29:23,300
them, maybe it's passed somebody
else. 

630
00:29:23,700 --> 00:29:26,800
But when people are working on a
code base, they are spending, 

631
00:29:26,900 --> 00:29:29,600
let's say in an eight-hour day, 
they are spending about seven to

632
00:29:29,600 --> 00:29:32,400
seven and a half hours dealing 
with the problems of the past. 

633
00:29:32,900 --> 00:29:34,100
Oh, I'm trying. 
A feature? 

634
00:29:34,300 --> 00:29:35,900
Yeah, I can see. 
You're trying to add a feature 

635
00:29:35,900 --> 00:29:38,200
but actually what you're doing 
is you're grappling with the way

636
00:29:38,200 --> 00:29:40,900
that the code is evolved, you 
actually fighting the past 

637
00:29:40,900 --> 00:29:43,400
because, you know, that you want
this feature to be different but

638
00:29:43,400 --> 00:29:46,400
you don't understand the code 
that's there or you're fixing a 

639
00:29:46,408 --> 00:29:47,900
bug. 
Fixing a bug is living in the 

640
00:29:47,900 --> 00:29:50,600
past, try to understand code. 
That was written that living in 

641
00:29:50,600 --> 00:29:54,000
the past working around, 
something that's living in the 

642
00:29:54,000 --> 00:29:56,100
past, writing a test for piece 
of code. 

643
00:29:56,100 --> 00:29:57,800
That doesn't have a test that's 
living in the part, you know, 

644
00:29:57,808 --> 00:29:59,500
because these are all things 
that should have been solved in 

645
00:29:59,500 --> 00:30:01,600
the past. 
People spend most of their time 

646
00:30:01,700 --> 00:30:03,400
living in the past. 
And I'm not saying that. 

647
00:30:03,500 --> 00:30:05,000
Don't do that or shouldn't do 
that. 

648
00:30:05,000 --> 00:30:06,600
We will, there's always gonna be
some percentage. 

649
00:30:06,600 --> 00:30:09,100
But I think that actually 
defines most of what programmers

650
00:30:09,100 --> 00:30:13,400
do very few developers actually 
spend their time, genuinely 

651
00:30:13,400 --> 00:30:15,900
adding value to code bases. 
They spend their time 

652
00:30:15,900 --> 00:30:18,900
compensating for the problems to
pass and this is a distinction 

653
00:30:18,900 --> 00:30:21,800
that systems thinker, John said 
and highlights just value Demand

654
00:30:21,800 --> 00:30:24,500
versus failure demand, the 
demand for your work, how much 

655
00:30:24,500 --> 00:30:27,500
of your work is actually spent 
on dealing with problems that 

656
00:30:27,500 --> 00:30:30,800
have Arisen in the past and more
importantly for me problems that

657
00:30:30,800 --> 00:30:34,500
are actually solved problems. 
So let me Bring something more 

658
00:30:34,500 --> 00:30:38,000
up-to-date so refactoring that I
think for many people are just 

659
00:30:38,000 --> 00:30:41,400
assume that car of the software 
development landscape actually. 

660
00:30:41,400 --> 00:30:45,700
Until the late 90s, that wasn't 
really a known term or a popular

661
00:30:45,700 --> 00:30:48,500
idea in one sense we've done 
really well here. 

662
00:30:48,600 --> 00:30:52,600
But if you go back and you look 
at Martin Fowler's original book

663
00:30:52,600 --> 00:30:55,800
on refactoring, or the original 
writings, and terms of extreme 

664
00:30:55,800 --> 00:30:58,100
programming, which really 
focused trying to bring 

665
00:30:58,100 --> 00:31:02,100
refactoring as forward to the 
front as it were so refactoring.

666
00:31:02,100 --> 00:31:05,700
Many people's heads exist in I 
have two spaces all refactoring 

667
00:31:05,700 --> 00:31:08,100
that big work, we do on our 
Legacy code base. 

668
00:31:08,100 --> 00:31:11,100
You know, Refractories to do 
with Legacy is to do with bad 

669
00:31:11,100 --> 00:31:13,800
code and then the other one is 0
refactoring. 

670
00:31:13,800 --> 00:31:16,300
Yeah, that's a shortcut key. 
That gets me to rename things 

671
00:31:16,300 --> 00:31:19,300
and occasionally extract method.
And it's just like, actually, 

672
00:31:19,300 --> 00:31:22,000
refactoring is a design practice
and it's not always about by a 

673
00:31:22,000 --> 00:31:25,200
code refactoring. 
Is the idea that your software 

674
00:31:25,200 --> 00:31:27,900
is supposed to be soft. 
And therefore, when you come up 

675
00:31:27,900 --> 00:31:30,400
with a better understanding of 
something you do, we make this 

676
00:31:30,400 --> 00:31:33,200
better way of writing this, I 
should be able to reshape it 

677
00:31:33,200 --> 00:31:35,300
easily. 
So that I reflect my current 

678
00:31:35,300 --> 00:31:37,600
thinking instead of me using 
yesterday's thinking I've got my

679
00:31:37,600 --> 00:31:40,200
current thinking I keep the code
fresh. 

680
00:31:40,600 --> 00:31:44,200
Therefore it's constantly in the
state of improvement and 

681
00:31:44,200 --> 00:31:46,800
response because we're always 
operating with incomplete 

682
00:31:46,800 --> 00:31:48,600
knowledge. 
We can never know everything. 

683
00:31:48,800 --> 00:31:52,300
It also allows me to be more 
forgiving if you like yeah we 

684
00:31:52,300 --> 00:31:54,200
got that wrong but now we can 
make it right? 

685
00:31:54,300 --> 00:31:56,700
And that's not a big deal. 
That's part of what we call 

686
00:31:56,700 --> 00:31:58,800
software development is still a 
separate thing. 

687
00:31:59,000 --> 00:32:00,800
It's not a separate activity. 
I have to ask somebody 

688
00:32:00,800 --> 00:32:03,300
permission for, it doesn't have 
that idea. 

689
00:32:03,500 --> 00:32:07,000
Oh, it's just part of the flow 
and so I think that although you

690
00:32:07,000 --> 00:32:09,700
open up a modern IDE, it's got 
refactoring their. 

691
00:32:09,700 --> 00:32:13,000
Most people don't use them apart
from Reno cut of have a standard

692
00:32:13,000 --> 00:32:15,400
Joe when I point out to people 
is just like, isn't it great, 

693
00:32:15,400 --> 00:32:17,700
these days, we don't have Legacy
code because when I joined the 

694
00:32:17,708 --> 00:32:20,800
industry, we had Legacy code. 
Hey, in fact, the term Legacy 

695
00:32:20,800 --> 00:32:24,100
was first used in 1989. 
So the term Legacy applied to 

696
00:32:24,100 --> 00:32:27,300
code was, actually the year that
I joined the industry and I say,

697
00:32:27,300 --> 00:32:29,500
isn't it great these days that 
we don't have Legacy code 

698
00:32:29,600 --> 00:32:32,200
because we've got a refactoring 
tools that eliminate most of all

699
00:32:32,200 --> 00:32:33,700
the problems. 
You know when people Used to 

700
00:32:33,708 --> 00:32:35,100
complain. 
Oh, we got this method. 

701
00:32:35,100 --> 00:32:37,000
It's too long. 
It's so good that we don't have 

702
00:32:37,000 --> 00:32:39,600
that problem anymore because we 
have ways of breaking up efforts

703
00:32:39,900 --> 00:32:41,800
and people say, oh yeah, glasses
that are too big, the game. 

704
00:32:41,800 --> 00:32:44,000
We don't have those problems 
because you can extract class 

705
00:32:44,200 --> 00:32:47,000
eventually kind of people get 
the idea that I am joking. 

706
00:32:47,100 --> 00:32:49,600
And actually, I'm asking a 
deeper question, we have these 

707
00:32:49,600 --> 00:32:51,600
tools. 
So why do we still have all of 

708
00:32:51,600 --> 00:32:53,900
the problems that these tools 
solve and what that actually 

709
00:32:53,900 --> 00:32:55,700
teaches us? 
It was not a tooling problem. 

710
00:32:56,000 --> 00:32:59,000
That's what it teaches that we 
have given everybody, everything

711
00:32:59,000 --> 00:33:01,400
they need. 
So in other words, this is the 

712
00:33:01,400 --> 00:33:03,900
interesting thing for most 
Software. 

713
00:33:03,900 --> 00:33:07,200
We know how to deliver it with 
low defects with low. 

714
00:33:07,200 --> 00:33:10,200
I manage technical debt, and to 
deliver a close to being on 

715
00:33:10,200 --> 00:33:12,900
time. 
These are solved Problems by the

716
00:33:12,900 --> 00:33:14,400
end of the 20th century. 
Every single, one of the 

717
00:33:14,408 --> 00:33:17,900
problems I've just mentioned, 
was salt and yet we still 

718
00:33:17,900 --> 00:33:20,300
struggle with them. 
So for me, that's the bit of the

719
00:33:20,308 --> 00:33:21,600
past. 
You want to live in, what are 

720
00:33:21,600 --> 00:33:23,600
the good ideas? 
We are still not apply 

721
00:33:23,600 --> 00:33:26,100
consistently. 
I still have to discuss with 

722
00:33:26,100 --> 00:33:29,100
people whether or not they 
should test that shouldn't even 

723
00:33:29,100 --> 00:33:32,200
be a discussion. 
Okay, you write tests if you can

724
00:33:32,200 --> 00:33:34,700
get high. 
Even coverage well done. 

725
00:33:34,800 --> 00:33:37,300
There's other forms of coverage 
but that should be the minimum 

726
00:33:37,500 --> 00:33:39,200
when people say, oh yeah, we've 
got less. 

727
00:33:39,200 --> 00:33:41,100
Do you have 100% statement 
coverage? 

728
00:33:41,700 --> 00:33:43,700
No, no. 
We're in about 50%, okay? 

729
00:33:43,700 --> 00:33:46,600
You do know that 100% statement 
coverage is really easy to get 

730
00:33:46,700 --> 00:33:48,300
and people are always shocked by
that, it's just like, well, 

731
00:33:48,300 --> 00:33:51,300
yeah, you just do test-driven 
development, that's it. 

732
00:33:51,500 --> 00:33:54,100
People who do tdd, don't worry 
about coverage or rather, they 

733
00:33:54,100 --> 00:33:57,000
worry about when it needle, dips
below 100 because that normally 

734
00:33:57,000 --> 00:33:58,800
means there's some dead code 
statement. 

735
00:33:58,800 --> 00:34:01,300
Coverage is only interesting for
people that don't do tdd or 

736
00:34:01,300 --> 00:34:04,100
other forms of continuous 
testing the So if you are doing 

737
00:34:04,100 --> 00:34:07,000
continuous testing coverage is 
not interesting. 

738
00:34:07,100 --> 00:34:09,500
It's a figure that you always 
expect to be high because you're

739
00:34:09,500 --> 00:34:11,699
always writing your code and 
your test together. 

740
00:34:11,699 --> 00:34:15,500
Maybe you lead with the test TD 
style, this is a solved problem 

741
00:34:15,500 --> 00:34:18,600
we solve this years ago but 
people still struggle with it. 

742
00:34:18,600 --> 00:34:20,600
They try to justify having to 
write tests. 

743
00:34:21,000 --> 00:34:23,400
I was talking to somebody 
yesterday from Microsoft, about 

744
00:34:23,400 --> 00:34:25,699
this whole thing about why is 
that the people are not using 

745
00:34:25,699 --> 00:34:29,500
static analysis and high warning
levels more there are reasons 

746
00:34:29,500 --> 00:34:32,199
but they're not very good ones. 
Why do people that have clean 

747
00:34:32,199 --> 00:34:35,699
build once you All of all of 
these leaves you with the real 

748
00:34:35,699 --> 00:34:38,600
problems that are interesting. 
Once you've cleaned up the bad 

749
00:34:38,600 --> 00:34:41,600
code, once you've cleaned up all
of this kind of stuff, you will 

750
00:34:41,600 --> 00:34:44,100
still have Legacy, but that 
Legacy will be there for a 

751
00:34:44,107 --> 00:34:47,500
different reason that Legacy 
will be left over decisions from

752
00:34:47,500 --> 00:34:50,100
the past your challenges now, to
deal with like yeah we took this

753
00:34:50,100 --> 00:34:53,100
decision but the technology 
landscape all the requirements 

754
00:34:53,100 --> 00:34:55,900
of mu. 
So that decision is no longer 

755
00:34:55,900 --> 00:34:57,400
appropriate. 
Not a bad decision. 

756
00:34:57,400 --> 00:35:00,600
It's just doesn't fit the world 
in and we wrote this code in 

757
00:35:00,600 --> 00:35:03,300
good faith, but now it's no 
longer. 

758
00:35:03,400 --> 00:35:05,300
Right? 
So we need a better fit for the 

759
00:35:05,300 --> 00:35:07,900
code in the world. 
So don't worry, once we've 

760
00:35:07,900 --> 00:35:09,900
solved all the problems, there 
are still plenty of problems. 

761
00:35:09,900 --> 00:35:12,600
But what I'm saying is that, 
most of the things that people 

762
00:35:12,600 --> 00:35:15,700
have said, hey, modularize your 
code, use a coherent Paradigm, 

763
00:35:15,700 --> 00:35:17,900
have less state mutability. 
That doesn't mean you have to go

764
00:35:17,900 --> 00:35:20,400
doing functional programming. 
If your unit functional 

765
00:35:20,400 --> 00:35:21,800
language, that's absolutely 
brilliant. 

766
00:35:21,800 --> 00:35:23,600
If you're in a language, that 
really nudges you in that 

767
00:35:23,600 --> 00:35:26,500
direction, that's great. 
But even as somebody who's 

768
00:35:26,500 --> 00:35:30,000
worked in C and Fortran, I'm 
going to say you don't have to 

769
00:35:30,000 --> 00:35:33,300
have highly imperative code, 
that's never been a great idea. 

770
00:35:33,800 --> 00:35:36,400
And you're not forced into that,
there are simple techniques, you

771
00:35:36,400 --> 00:35:40,000
can deal with, modularize your 
code, use various techniques, a 

772
00:35:40,008 --> 00:35:42,800
class has a module. 
In this sense, it is a modular 

773
00:35:42,800 --> 00:35:44,900
construct, any for data, 
abstraction is a modular 

774
00:35:44,900 --> 00:35:47,900
construct, microservices. 
A modular constructs at a larger

775
00:35:47,900 --> 00:35:51,000
scale, but the idea is, if you 
think that microservices are 

776
00:35:51,000 --> 00:35:53,300
going to solve your poor 
modularity, in your code, 

777
00:35:53,300 --> 00:35:55,900
they're not when everybody says 
hey, we're doing microservices 

778
00:35:55,900 --> 00:35:58,300
because it's going to improve 
the structure of our code. 

779
00:35:58,400 --> 00:36:00,900
Well, you don't need 
microservices to do that 

780
00:36:00,900 --> 00:36:03,300
microservices, solve a very 
specific problem. 

781
00:36:03,400 --> 00:36:05,700
I'm related to deployment and 
scaling. 

782
00:36:05,900 --> 00:36:09,300
That's what they're really good 
at if we have had so many 

783
00:36:09,300 --> 00:36:12,800
paradigms over the last few 
decades, that are about how to 

784
00:36:12,800 --> 00:36:15,000
organize your code. 
You don't need anymore. 

785
00:36:15,300 --> 00:36:18,000
You've got every single tool. 
And if you can't do it with 

786
00:36:18,000 --> 00:36:21,000
that, then you should take a 
step back, put the mouse down, 

787
00:36:21,100 --> 00:36:23,300
death away, from the keyboard. 
Go wait, what's really going on 

788
00:36:23,300 --> 00:36:24,300
here? 
What is it? 

789
00:36:24,300 --> 00:36:27,500
That we are missing as a team 
collectively to reinforce these 

790
00:36:27,500 --> 00:36:30,300
practices. 
So yeah, past is an interesting 

791
00:36:30,300 --> 00:36:33,600
place, we get drawn back to our 
mistakes in the past, but we To 

792
00:36:33,600 --> 00:36:36,400
learn from our successes. 
So that be my general advice on 

793
00:36:36,400 --> 00:36:39,200
this one. 
Listening to your explanation is

794
00:36:39,200 --> 00:36:42,100
very fascinating because I love 
developers these days. 

795
00:36:42,100 --> 00:36:44,000
Chase this hype driven 
development, right? 

796
00:36:44,000 --> 00:36:46,200
Oh, that's the new cool 
Technologies. 

797
00:36:46,300 --> 00:36:50,500
New framework, new libraries new
paradigms, like microservices 

798
00:36:50,700 --> 00:36:52,200
event-driven and things like 
that. 

799
00:36:52,200 --> 00:36:54,700
But if we look back to the past,
they're probably so many 

800
00:36:54,700 --> 00:36:56,800
theories that still stays 
relevant. 

801
00:36:56,900 --> 00:36:59,300
And in fact I notice some of 
these thought leaders in the 

802
00:36:59,300 --> 00:37:02,800
tech industry like they finally 
Robert Martin Uncle Bob they 

803
00:37:02,800 --> 00:37:05,500
wrote books Book's title like, 
modern software engineering and 

804
00:37:05,500 --> 00:37:07,600
clean craftsmanship. 
But if you look at the things 

805
00:37:07,600 --> 00:37:10,700
that they are advocating, 
actually, it comes from the past

806
00:37:11,000 --> 00:37:14,400
the same fundamental things that
stays relevant even up until 

807
00:37:14,400 --> 00:37:16,000
now. 
So, I think the key message 

808
00:37:16,000 --> 00:37:18,300
here, I want to emphasize is 
that for developers. 

809
00:37:18,500 --> 00:37:19,800
Please go back to the 
fundamentals. 

810
00:37:19,800 --> 00:37:22,200
Don't always chase the new shiny
things. 

811
00:37:22,500 --> 00:37:25,400
There are still things that we 
can probably Master to become a 

812
00:37:25,408 --> 00:37:28,900
better developers here. 
And I think the value is, when 

813
00:37:28,900 --> 00:37:31,900
you understand, that gives you a
more solid foundation and when 

814
00:37:31,900 --> 00:37:34,000
something new and shiny does, 
Come along. 

815
00:37:34,300 --> 00:37:36,300
You now, have a more objective 
assessment. 

816
00:37:36,300 --> 00:37:37,900
You can separate out and go. 
Okay. 

817
00:37:37,900 --> 00:37:39,400
Yeah. 
This is building on foundations.

818
00:37:39,400 --> 00:37:41,700
There's nothing new. 
And then you can look at the 

819
00:37:41,707 --> 00:37:43,200
bit. 
That actually is shiny and go. 

820
00:37:43,200 --> 00:37:46,600
This is the value of this or you
may say, wait a minute, there is

821
00:37:46,600 --> 00:37:48,500
nothing shiny here. 
This is just repackaging. 

822
00:37:48,500 --> 00:37:51,700
The past and also its mistakes. 
So maybe, let's not do this one.

823
00:37:51,700 --> 00:37:53,700
It gives you a more objective 
sense. 

824
00:37:54,000 --> 00:37:56,600
Of course, most people in 
technology, get into technology 

825
00:37:56,600 --> 00:37:58,400
because they like the excitement
of something. 

826
00:37:58,600 --> 00:38:01,200
So we have to kind of watch 
ourselves a little bit on this. 

827
00:38:01,400 --> 00:38:03,100
We are Our Own Worst Enemy at 
this one. 

828
00:38:04,000 --> 00:38:06,000
So adding that a always find 
fascinating. 

829
00:38:06,000 --> 00:38:09,000
Also, because they are tools 
that are built by developers, 

830
00:38:09,100 --> 00:38:12,100
that makes things easier for us 
to turn out code, but not 

831
00:38:12,100 --> 00:38:15,200
necessarily comply with this, 
cohesion, or this coupling. 

832
00:38:15,200 --> 00:38:17,600
So I think of it like the 
Frameworks of are Frameworks, 

833
00:38:17,600 --> 00:38:19,300
right? 
So I think that's also another 

834
00:38:19,300 --> 00:38:22,200
thing that is fascinating, like 
with then do one shortcuts and 

835
00:38:22,200 --> 00:38:25,900
if we're something faster, but 
not adhering to the good, best 

836
00:38:25,900 --> 00:38:28,100
principles that software should 
be written in. 

837
00:38:28,600 --> 00:38:31,700
So Cavalier, another thing that 
you are very popular in its what

838
00:38:31,700 --> 00:38:33,800
people call Carolyn hennesy, 
Right? 

839
00:38:34,000 --> 00:38:37,700
You can see in felonies Twitter,
just look at what we call 

840
00:38:37,700 --> 00:38:40,000
software failure. 
And these are normally public 

841
00:38:40,000 --> 00:38:43,100
software failure and people just
send, you know, pictures of this

842
00:38:43,100 --> 00:38:46,600
software failures to Kaplan. 
So maybe the first thing is tell

843
00:38:46,600 --> 00:38:50,100
us what the story is all about 
how come people actually, send 

844
00:38:50,100 --> 00:38:52,800
all these things to you. 
So you can story goes back a 

845
00:38:52,808 --> 00:38:55,300
long way. 
I used to take screenshots 

846
00:38:55,300 --> 00:38:58,300
whenever something crashed on my
machine or take a screenshot of 

847
00:38:58,300 --> 00:39:00,900
it and sometimes I would 
integrate it into a talk then, 

848
00:39:00,900 --> 00:39:04,200
of course, phones have cameras. 
So I started taking pictures of 

849
00:39:04,200 --> 00:39:06,800
software failures in public 
places because software runs the

850
00:39:06,800 --> 00:39:09,200
world, but it doesn't always run
it in the way to re-watch it to.

851
00:39:09,200 --> 00:39:12,500
There's a lot of reboot screens 
and screens, which Trace very 

852
00:39:12,500 --> 00:39:15,300
elegantly, the whole Tech stack,
that's just crashed. 

853
00:39:15,600 --> 00:39:17,000
I started taking photographs of 
these. 

854
00:39:17,000 --> 00:39:19,400
Again, I did incorporate those 
into talks or I just kind of put

855
00:39:19,400 --> 00:39:21,800
them on with screen when running
a workshop, a good source of 

856
00:39:21,800 --> 00:39:23,700
entertainment. 
But also going back to this 

857
00:39:23,700 --> 00:39:26,200
question of quality as 
something, I've always had an 

858
00:39:26,200 --> 00:39:29,300
interest in, it's a reminder of 
like yeah in the tech space, we 

859
00:39:29,300 --> 00:39:31,800
have a certain responsibility, 
we are creating things. 

860
00:39:31,800 --> 00:39:35,300
That crash we are creating Don't
work a bug isn't personal 

861
00:39:35,300 --> 00:39:37,900
inconvenience to you or 
configuration issues a personal 

862
00:39:37,900 --> 00:39:40,700
inconvenience to you or it just 
becomes a ticket. 

863
00:39:40,900 --> 00:39:43,700
The thing is to realize that it 
exists in the world, it's not an

864
00:39:43,700 --> 00:39:45,600
abstraction. 
It's actually exist in the 

865
00:39:45,600 --> 00:39:46,700
world. 
It's amusing. 

866
00:39:46,700 --> 00:39:49,700
Sometimes would also probably 
preventing somebody else be able

867
00:39:49,700 --> 00:39:53,000
to do something. 
So I kind of highlighted these 

868
00:39:53,400 --> 00:39:56,900
then as a result of this people 
within start, emailing me these 

869
00:39:56,900 --> 00:39:58,900
things. 
Then we hit the social media 

870
00:39:58,900 --> 00:40:01,100
error, so it's much easier. 
They don't have to email me. 

871
00:40:01,100 --> 00:40:03,800
They can just tag me. 
So this is Coming a popular 

872
00:40:03,800 --> 00:40:06,700
thing on Twitter, in particular 
what I would do because that's a

873
00:40:06,700 --> 00:40:10,300
very public space is that I 
would just retweet this. 

874
00:40:10,900 --> 00:40:15,300
Then people started making a 
point of doing this and in 2016,

875
00:40:15,300 --> 00:40:17,700
somebody actually started 
saying, oh, okay, Evelyn any 

876
00:40:17,700 --> 00:40:20,500
screen because it had reached a 
particular points. 

877
00:40:20,900 --> 00:40:23,600
And so that's how my name got 
associated with it. 

878
00:40:23,600 --> 00:40:27,000
That point there's even somebody
put an entry in Urban Dictionary

879
00:40:27,000 --> 00:40:29,600
and there's even a mention on 
the register of this stuff 

880
00:40:29,600 --> 00:40:30,700
though. 
That's kind of an interesting 

881
00:40:30,700 --> 00:40:33,000
thing. 
I was also asked by somebody 

882
00:40:33,400 --> 00:40:34,500
Then what is it? 
Feel like to have your name 

883
00:40:34,500 --> 00:40:36,800
associated with failure? 
So thick it is, and it's just a 

884
00:40:36,800 --> 00:40:39,200
way of looking at it. 
It's just like, yeah, I don't 

885
00:40:39,200 --> 00:40:41,900
cause these screens, but it is 
interesting because it's a 

886
00:40:41,900 --> 00:40:46,100
reminder for me that when we do 
with software, when we develop 

887
00:40:46,100 --> 00:40:49,500
it, and when we deploy it, we 
are part of a larger system 

888
00:40:50,000 --> 00:40:54,300
where our failures in software 
are no longer about us. 

889
00:40:54,300 --> 00:40:57,100
There are about other people. 
They become very visible in a 

890
00:40:57,107 --> 00:41:00,100
world that runs on software. 
That becomes a Prominent Point. 

891
00:41:00,100 --> 00:41:02,500
Some of them are quite revealing
in a way that you don't want to 

892
00:41:02,508 --> 00:41:04,400
be revealed. 
Like I said, sometimes you get a

893
00:41:04,400 --> 00:41:07,000
complete stack Trace. 
In fact, I saw one yesterday 

894
00:41:07,000 --> 00:41:09,700
which was quite interesting. 
The stack Trace was not visible,

895
00:41:09,800 --> 00:41:12,900
even though there was an error 
because whoever created this had

896
00:41:12,900 --> 00:41:16,400
the wisdom to say, you know 
what, we're showing our internal

897
00:41:16,400 --> 00:41:19,800
structure that can be used 
against us from a security point

898
00:41:19,800 --> 00:41:21,200
of view. 
You discover the somebody's 

899
00:41:21,200 --> 00:41:23,100
using an unpatched version of 
something you go. 

900
00:41:23,100 --> 00:41:25,500
Oh yeah, that's interesting. 
I got a new attack Vector there,

901
00:41:25,800 --> 00:41:28,100
but it also tells us something 
about the organizations that 

902
00:41:28,100 --> 00:41:30,400
run. 
I still get images of Windows 

903
00:41:30,400 --> 00:41:32,800
XP, both screens and failure 
screen. 

904
00:41:33,400 --> 00:41:36,200
Like peas been out of support 
for a very long time. 

905
00:41:36,500 --> 00:41:39,300
Again we're living in the past. 
A lot of the world is running on

906
00:41:39,300 --> 00:41:42,200
stuff that everybody thinks they
left behind but there isn't it? 

907
00:41:42,200 --> 00:41:45,300
Actually all there. 
We have a responsibility there. 

908
00:41:45,300 --> 00:41:48,800
We need to get a little better 
at this but then we also get the

909
00:41:48,808 --> 00:41:51,200
obvious program. 
I level bugs is just like, yeah,

910
00:41:51,200 --> 00:41:52,800
we should have perhaps 
configured that looking more 

911
00:41:52,800 --> 00:41:54,800
carefully or tested that more 
thoroughly. 

912
00:41:55,000 --> 00:41:57,300
It tells us about us. 
That's what a lot of these 

913
00:41:57,300 --> 00:41:59,800
things do. 
But what is also interesting, is

914
00:41:59,800 --> 00:42:01,900
that sometimes when people 
tagged me, particularly with 

915
00:42:01,900 --> 00:42:04,000
something like public, 
Transport. 

916
00:42:04,000 --> 00:42:05,800
They will also tag the public 
transport company. 

917
00:42:06,100 --> 00:42:08,700
And some of the time, the public
transport, whoever's on Twitter 

918
00:42:08,700 --> 00:42:11,500
that point was at all. 
Yeah, sorry about this or yes. 

919
00:42:11,500 --> 00:42:14,000
We've saw this problem has been 
resolved or please tell us more 

920
00:42:14,000 --> 00:42:16,400
because, you know, this is 
embarrassing for us, so it's 

921
00:42:16,400 --> 00:42:20,200
also a public service at level. 
I hope you all the programmers, 

922
00:42:20,200 --> 00:42:23,200
who build systems never had a 
chance for your systems to be 

923
00:42:23,200 --> 00:42:27,000
sent to Kevin honey for failures
but I think the story that you 

924
00:42:27,000 --> 00:42:29,200
just told, right? 
I think there's a lot of things 

925
00:42:29,200 --> 00:42:32,000
here that I insights. 
So when you deploy software, 

926
00:42:32,100 --> 00:42:35,200
especially for public Systems 
like public transport airport. 

927
00:42:35,200 --> 00:42:38,100
Sometimes I see all elevator. 
So there are a lot of 

928
00:42:38,100 --> 00:42:41,200
responsibilities software 
failure can impact a lot of 

929
00:42:41,200 --> 00:42:42,900
people. 
These kind of things are 

930
00:42:42,900 --> 00:42:44,400
definitely for one thing is 
funny. 

931
00:42:44,400 --> 00:42:45,600
Yes. 
But at the other end is 

932
00:42:45,600 --> 00:42:48,000
something for us to ponder about
software failures. 

933
00:42:48,000 --> 00:42:49,600
Should be treated more 
seriously. 

934
00:42:50,000 --> 00:42:52,700
So, coming back to the beginning
when you mention, you also love 

935
00:42:52,700 --> 00:42:54,800
writing public speaking and 
things like that. 

936
00:42:55,000 --> 00:42:57,500
You mentioned that, developer 
should focus, not just on 

937
00:42:57,500 --> 00:43:00,500
coding, maybe you can explain 
why we should all think about 

938
00:43:00,600 --> 00:43:03,700
writing more, or speaking more, 
or having more In which you 

939
00:43:03,700 --> 00:43:05,200
mentioned as well before we 
talk. 

940
00:43:05,800 --> 00:43:08,700
So people have many different 
roads into software development,

941
00:43:08,800 --> 00:43:10,600
the flight reflects different 
motivations. 

942
00:43:11,200 --> 00:43:14,100
So this is my story as a 
teenager, I was interested home 

943
00:43:14,100 --> 00:43:15,900
Computing, all this kind of 
stuff, this was the 

944
00:43:15,900 --> 00:43:19,300
technological change that 
affected me and was a natural 

945
00:43:19,300 --> 00:43:22,300
area of interest but of course 
that was very much about you 

946
00:43:22,300 --> 00:43:25,200
being an individual and solving 
problems and playing around. 

947
00:43:25,200 --> 00:43:27,900
It was ultimately all about play
there is that idea, but it's 

948
00:43:27,900 --> 00:43:31,300
also ultimately about you. 
Other people arrive in software 

949
00:43:31,300 --> 00:43:34,300
from very different paths. 
It's because They work with 

950
00:43:34,300 --> 00:43:35,800
team. 
So I know number of people who 

951
00:43:35,800 --> 00:43:38,400
have moved as it were from the 
customer side of the product 

952
00:43:38,400 --> 00:43:41,800
owner side, the business side 
into being a developer because 

953
00:43:41,800 --> 00:43:43,800
they work so closely. 
So in other words, their initial

954
00:43:43,800 --> 00:43:47,200
point of contact with software 
was not in the technical ground 

955
00:43:47,300 --> 00:43:49,500
up perspective, it was not the 
bits in the B. 

956
00:43:49,500 --> 00:43:52,900
It was not that perspective. 
It was not as a formalism, it 

957
00:43:52,900 --> 00:43:55,000
was as a business tool and 
working in teams. 

958
00:43:55,000 --> 00:43:57,200
So they have a much more social 
perspective of that. 

959
00:43:57,600 --> 00:44:00,000
So some people already have that
view of software developer. 

960
00:44:00,000 --> 00:44:02,800
I think many people end up in 
software developed without 

961
00:44:02,800 --> 00:44:04,300
properly. 
Appreciating the war, they're 

962
00:44:04,300 --> 00:44:07,200
trying to do is communicate, 
ultimately, that's what we did. 

963
00:44:07,200 --> 00:44:08,400
And we're not just talking to a 
compiler. 

964
00:44:08,400 --> 00:44:10,700
We are talking to ourselves our 
future selves. 

965
00:44:10,900 --> 00:44:12,500
We are talking to our 
colleagues. 

966
00:44:12,600 --> 00:44:15,300
We are talking to people, we 
will never meet in one very 

967
00:44:15,300 --> 00:44:17,800
simple sense. 
We are organizing our thoughts. 

968
00:44:18,100 --> 00:44:19,600
That is what a programming 
Paradigm. 

969
00:44:19,600 --> 00:44:22,400
Is it is a framework for 
organizing your thoughts and 

970
00:44:22,400 --> 00:44:24,400
your knowledge. 
You are taking knowledge that is

971
00:44:24,400 --> 00:44:28,400
technological and Technical. 
You're taking knowledge of the 

972
00:44:28,400 --> 00:44:31,200
problem domain and you are 
bringing together in a formal 

973
00:44:31,200 --> 00:44:33,100
structure. 
And you are saying here is how 

974
00:44:33,300 --> 00:44:35,400
I've chosen to meet this 
requirement to the best of our 

975
00:44:35,400 --> 00:44:37,600
knowledge, and best of our 
ability at this particular point

976
00:44:37,600 --> 00:44:40,500
in time, that's what you're 
effectively communicating, by 

977
00:44:40,500 --> 00:44:43,500
the way, it compiles and runs, 
that's kind of important, but 

978
00:44:43,500 --> 00:44:46,400
there is an idea here. 
When we take a step back and we 

979
00:44:46,400 --> 00:44:50,700
realize communication is the 
clarity of our own thoughts, we 

980
00:44:50,700 --> 00:44:52,400
often don't think clearly to 
ourselves. 

981
00:44:52,400 --> 00:44:55,300
It's a discipline different 
philosophical Schools. 

982
00:44:55,300 --> 00:44:57,300
Go back to actually thousands of
years. 

983
00:44:57,300 --> 00:45:00,300
They are often about how do we 
do the day-to-day? 

984
00:45:00,300 --> 00:45:01,900
How do we communicate or 
intentions? 

985
00:45:01,900 --> 00:45:05,100
Clearly, how do we Take a step 
back and separate what we 

986
00:45:05,100 --> 00:45:08,100
believe from what actually is 
because sometimes our beliefs do

987
00:45:08,100 --> 00:45:10,800
not match up to the way the 
world is and these are age-old, 

988
00:45:10,800 --> 00:45:13,900
questions, software is one of 
the places we bring these all 

989
00:45:13,900 --> 00:45:17,700
together. 
So for me, that idea means I 

990
00:45:17,700 --> 00:45:20,500
need to have a bigger 
understanding than just. 

991
00:45:20,500 --> 00:45:23,700
Hey, I can use a framework or I 
understand formal systems and 

992
00:45:23,700 --> 00:45:27,300
perhaps I have a mathematical 
background and so the word 

993
00:45:27,300 --> 00:45:29,900
itself communication comes from 
the Latin communis, meaning 

994
00:45:29,900 --> 00:45:31,300
together, it's about be 
together. 

995
00:45:31,300 --> 00:45:33,000
That's what it is. 
That's the whole idea. 

996
00:45:33,300 --> 00:45:35,600
It. 
And what is it that causes that 

997
00:45:35,600 --> 00:45:38,400
and improves that for me 
different people have different 

998
00:45:38,400 --> 00:45:39,800
parts in. 
So I think writing is an 

999
00:45:39,800 --> 00:45:43,500
interesting one, because, when 
you look at advice for writing, 

1000
00:45:43,800 --> 00:45:47,900
a lot of it transfers straight 
into software development, 

1001
00:45:48,000 --> 00:45:49,300
there's no boundary. 
There you go. 

1002
00:45:49,300 --> 00:45:52,600
Oh, yeah, the intentions of the 
same, but it reminds you that 

1003
00:45:52,600 --> 00:45:55,400
you are an author for somebody 
else, you're not merely 

1004
00:45:55,400 --> 00:45:58,200
instructing the machine, it's 
not merely a functional thing 

1005
00:45:58,200 --> 00:46:00,300
that it should go. 
In fact, that's a reminder 

1006
00:46:00,800 --> 00:46:03,100
software development, not about 
project is about products. 

1007
00:46:03,200 --> 00:46:05,900
It's a project is something that
you finish we're a software 

1008
00:46:05,900 --> 00:46:07,600
development. 
Generally the goal is not to 

1009
00:46:07,600 --> 00:46:09,300
finish. 
I don't don't deliver. 

1010
00:46:09,300 --> 00:46:11,700
I mean the idea is that we are 
always building. 

1011
00:46:11,900 --> 00:46:14,600
We are not aiming for a release.
We are aiming to keep on 

1012
00:46:14,600 --> 00:46:17,800
releasing the name of the game, 
is to keep on playing the game. 

1013
00:46:18,300 --> 00:46:21,500
And so therefore we need to 
create a sustainable environment

1014
00:46:21,900 --> 00:46:23,500
and code is the environment we 
create. 

1015
00:46:23,600 --> 00:46:26,800
So we need to get better at 
communication and that also mean

1016
00:46:26,800 --> 00:46:29,600
communication to ourselves, you 
always have a way more 

1017
00:46:29,600 --> 00:46:33,100
overconfident belief that, you 
know what you did in future that

1018
00:46:33,300 --> 00:46:35,500
I'm the near future and in 
future, you will come back and 

1019
00:46:35,500 --> 00:46:36,700
go. 
I have no idea what I was 

1020
00:46:36,700 --> 00:46:38,600
thinking. 
When I wrote this, you remember,

1021
00:46:38,600 --> 00:46:41,200
it was clear in your head, but 
you don't remember why? 

1022
00:46:41,600 --> 00:46:45,500
So that idea of genuinely 
organizing your thoughts and for

1023
00:46:45,500 --> 00:46:49,400
me writing is one of those 
techniques and the advice that 

1024
00:46:49,400 --> 00:46:52,600
we find on writing translate 
very well to and one of the 

1025
00:46:52,600 --> 00:46:55,500
things in code. 
But then also things like 

1026
00:46:55,500 --> 00:46:58,000
speaking, speaking is an 
interesting one, because many 

1027
00:46:58,000 --> 00:47:00,400
people fear it because you're 
standing up in front of 

1028
00:47:00,400 --> 00:47:02,700
strangers or if our colleagues 
you are potentially very 

1029
00:47:02,700 --> 00:47:04,400
vulnerable. 
And that's a big ass. 

1030
00:47:04,400 --> 00:47:06,600
It's not something that 
necessarily everybody's going to

1031
00:47:06,607 --> 00:47:09,400
feel comfortable with but the 
one thing we can say and this 

1032
00:47:09,400 --> 00:47:12,300
goes for writing as well and 
other works, you know, so 

1033
00:47:12,300 --> 00:47:14,600
occasionally I run across people
who Express themselves 

1034
00:47:14,600 --> 00:47:16,900
differently. 
There's a very high number of 

1035
00:47:16,900 --> 00:47:19,100
people who play a musical 
instrument in software. 

1036
00:47:19,400 --> 00:47:22,400
For example, that's you 
expressing yourself. 

1037
00:47:22,400 --> 00:47:25,200
It's not expressing yourself in 
the same way with the same 

1038
00:47:25,200 --> 00:47:28,900
intent, but that is you creating
a structure and enjoying doing? 

1039
00:47:28,900 --> 00:47:32,800
So, what can you take from that?
There are two things, one you 

1040
00:47:32,800 --> 00:47:36,600
are The structure that supposed 
to make sense, There are rules 

1041
00:47:36,600 --> 00:47:38,300
and boundaries on their 
structure. 

1042
00:47:38,500 --> 00:47:40,800
Some of those rules and 
boundaries can be broken to 

1043
00:47:40,800 --> 00:47:43,900
create new rules and boundaries 
but there is also skill and 

1044
00:47:43,900 --> 00:47:47,100
there is also enjoyment. 
Hey, these all town like things 

1045
00:47:47,100 --> 00:47:50,700
that I would like to think I 
could bring to my work as well. 

1046
00:47:50,800 --> 00:47:53,000
My pastime. 
So the idea is, there's a lot to

1047
00:47:53,000 --> 00:47:55,700
be learned from these other 
forms of expression and so 

1048
00:47:55,700 --> 00:47:58,900
sometimes people will be more 
than happy to stand on stage and

1049
00:47:58,900 --> 00:48:00,800
play guitar. 
But we say, oh no, I can't stand

1050
00:48:00,800 --> 00:48:03,000
in front of people and talk in 
front of slides. 

1051
00:48:03,300 --> 00:48:05,600
And it's just like, take a step 
back and think, hang on. 

1052
00:48:05,600 --> 00:48:08,000
What could I transfer between 
these world? 

1053
00:48:08,300 --> 00:48:11,300
Can I move my Skillet 
communication and expression 

1054
00:48:11,300 --> 00:48:13,800
into something more verbal 
because code, is ultimately, a 

1055
00:48:13,808 --> 00:48:16,200
verbal construct. 
Its word based. 

1056
00:48:16,600 --> 00:48:18,700
It doesn't mean everybody's 
going out speaking the same or 

1057
00:48:18,700 --> 00:48:20,800
necessarily it was going to be 
totally comfortable with it. 

1058
00:48:21,200 --> 00:48:23,300
But the more you do it, the 
easier it becomes. 

1059
00:48:23,300 --> 00:48:27,100
You start realizing your own 
gaps, your own shortcomings and 

1060
00:48:27,100 --> 00:48:29,200
you generally get a bit better. 
If you were nervous at the 

1061
00:48:29,207 --> 00:48:31,000
beginning, you're less nervous 
in future. 

1062
00:48:31,000 --> 00:48:33,100
If you are very nervous at the 
beginning, you're just nervous. 

1063
00:48:33,200 --> 00:48:34,800
Listen future. 
If you were a little bit 

1064
00:48:34,800 --> 00:48:37,400
nervous, you're not nervous in 
future just by doing it and 

1065
00:48:37,408 --> 00:48:39,700
repeating it. 
But that also goes to 

1066
00:48:39,700 --> 00:48:42,500
compassion, because just now you
mentioned compassion. 

1067
00:48:42,500 --> 00:48:45,700
And also just said, when you 
write, if you publish a Blog, 

1068
00:48:46,000 --> 00:48:49,900
you are potentially vulnerable. 
You are exposing your thinking 

1069
00:48:49,900 --> 00:48:53,000
and your thoughts and your 
writing particularly if you are 

1070
00:48:53,000 --> 00:48:55,300
writing a language that is not 
your first language. 

1071
00:48:55,700 --> 00:48:58,100
You may feel very vulnerable 
that made things. 

1072
00:48:58,100 --> 00:49:00,900
People always a lot Kinder than 
you think they are actually will

1073
00:49:00,900 --> 00:49:03,000
appreciate your effort if you 
think you have. 

1074
00:49:03,100 --> 00:49:06,500
Nothing new to add yeah, you're 
mostly wrong infant. 

1075
00:49:06,500 --> 00:49:08,700
That what I don't like to tell 
people their role but you must 

1076
00:49:08,700 --> 00:49:10,200
be wrong because you have a 
point of view. 

1077
00:49:10,400 --> 00:49:12,700
I was telling somebody the other
day, I said, there's something I

1078
00:49:12,700 --> 00:49:15,700
envy you for because I will 
never be able to go back to that

1079
00:49:15,700 --> 00:49:18,600
stage at this point. 
I will never have that journey 

1080
00:49:18,600 --> 00:49:21,500
of Discovery game because I 
remember most things but you're 

1081
00:49:21,500 --> 00:49:23,500
about to enter a point in your 
career where you're going to 

1082
00:49:23,500 --> 00:49:26,100
start learning things for the 
first time and they're going to 

1083
00:49:26,100 --> 00:49:28,600
be exciting and you're going to 
discover, you can do things, you

1084
00:49:28,600 --> 00:49:31,000
didn't think you could, you're 
going to have technical 

1085
00:49:31,000 --> 00:49:33,300
insights, you've been working 
with Frameworks that you Talked 

1086
00:49:33,300 --> 00:49:35,700
about but then you're going to 
go above and beyond that and 

1087
00:49:35,700 --> 00:49:37,700
you're going to suddenly realize
hey I have a bigger picture here

1088
00:49:37,700 --> 00:49:40,000
and I understand something about
architecture that nobody's ever 

1089
00:49:40,000 --> 00:49:41,600
told me. 
And you see that for yourself, 

1090
00:49:42,000 --> 00:49:45,300
there's a whole load of things 
there that you and only you can 

1091
00:49:45,300 --> 00:49:47,900
experience. 
So you have that ability to 

1092
00:49:47,900 --> 00:49:50,300
offer that to other people. 
And wouldn't it be a shame if 

1093
00:49:50,300 --> 00:49:51,900
the thing that holds you back 
from doing? 

1094
00:49:51,900 --> 00:49:54,800
That is a fear of your own 
communication and that doesn't 

1095
00:49:54,800 --> 00:49:57,300
mean you're going to write the 
perfect thing but you know what 

1096
00:49:57,300 --> 00:49:59,700
if you don't write, it will 
definitely be very imperfect. 

1097
00:49:59,900 --> 00:50:01,800
The world is missing that 
contribution. 

1098
00:50:02,400 --> 00:50:04,900
But that's the idea compassion 
is also very important. 

1099
00:50:05,000 --> 00:50:07,500
We literally fell in love 
compassion means to suffer with 

1100
00:50:07,500 --> 00:50:10,000
somebody. 
Compassion means to understand 

1101
00:50:10,000 --> 00:50:12,300
that you see somebody else's. 
They're making a bunch of 

1102
00:50:12,300 --> 00:50:15,200
mistakes. 
And yeah, you know what, I know 

1103
00:50:15,200 --> 00:50:18,700
what that feels like else is 
struggling to give a talk or 

1104
00:50:19,000 --> 00:50:21,100
organize their thoughts. 
You know what, maybe they're 

1105
00:50:21,100 --> 00:50:23,900
having a bad day or I understand
what that feels like. 

1106
00:50:24,000 --> 00:50:27,100
All of these things is that kind
of recognition that we spend so 

1107
00:50:27,100 --> 00:50:29,300
much time working with machines 
and tools, we've got to remember

1108
00:50:29,300 --> 00:50:31,600
our yes humans. 
So, for me, I think that's a 

1109
00:50:31,600 --> 00:50:33,800
really important. 
Important emphasis, the emphasis

1110
00:50:33,800 --> 00:50:36,000
has come about slowly Through 
The Years. 

1111
00:50:36,700 --> 00:50:39,200
Seem people talk about this in a
few years ago, April Wenzel 

1112
00:50:39,200 --> 00:50:41,100
really kind of coined. 
This idea of compassion. 

1113
00:50:41,100 --> 00:50:43,700
Coding is just like that. 
It's just like oh yeah this is a

1114
00:50:43,707 --> 00:50:46,200
big signal. 
This is absolutely okay. 

1115
00:50:46,200 --> 00:50:49,700
For everybody to talk about this
stuff it's okay to make mistakes

1116
00:50:49,800 --> 00:50:51,300
to understand the other person 
is human. 

1117
00:50:51,400 --> 00:50:53,200
Which means hopefully they 
understand that you are human, 

1118
00:50:53,200 --> 00:50:54,700
which takes a lot of pressure 
off. 

1119
00:50:54,700 --> 00:50:57,500
I think a lot of people are 
under a lot of pressure to form 

1120
00:50:57,500 --> 00:51:00,200
and expectation and soul. 
If you can take a little bit of 

1121
00:51:00,200 --> 00:51:02,000
that off, it goes again back to 
following. 

1122
00:51:02,300 --> 00:51:04,100
Put the mouse down step away 
from the keyboard. 

1123
00:51:04,100 --> 00:51:06,600
It's allows you to think 
differently and more Loosely. 

1124
00:51:06,800 --> 00:51:09,400
If you are constantly being 
pressured, that's going to box 

1125
00:51:09,400 --> 00:51:11,700
your thinking that's going to 
reduce your ability to be 

1126
00:51:11,700 --> 00:51:15,300
creative and have insights. 
You become a machine which we've

1127
00:51:15,300 --> 00:51:17,900
already got those. 
So, you need to kind of give 

1128
00:51:17,900 --> 00:51:21,200
people that space, there's 
emotional and social space there

1129
00:51:21,200 --> 00:51:23,600
as well, which I think is. 
So for me, that's part of the 

1130
00:51:23,600 --> 00:51:26,100
message as well. 
And again, when we look at a 

1131
00:51:26,100 --> 00:51:29,400
piece of code and we don't like 
it, it's really easy to go man. 

1132
00:51:29,700 --> 00:51:32,900
Whoever wrote this was an idiot.
It's just like Like maybe it was

1133
00:51:32,900 --> 00:51:36,500
you maybe the Ada was passed me 
but more to the point is. 

1134
00:51:36,900 --> 00:51:37,800
Yeah. 
You know what, maybe they 

1135
00:51:37,800 --> 00:51:39,800
weren't an idiot. 
Maybe they just had a bad day, 

1136
00:51:39,800 --> 00:51:41,800
maybe they were working to the 
best of their ability. 

1137
00:51:42,000 --> 00:51:44,600
That idea is that in the future,
you will always know more than 

1138
00:51:44,600 --> 00:51:47,300
you do now but the code is not 
been written in the future. 

1139
00:51:47,300 --> 00:51:49,700
It's being written today, we may
revisit it in future, we may 

1140
00:51:49,700 --> 00:51:53,000
refine it in future and again it
goes back to that idea of like 

1141
00:51:53,000 --> 00:51:54,900
refactoring. 
Being a forgiving process, 

1142
00:51:54,900 --> 00:51:56,400
you've got to work with what 
you've got today. 

1143
00:51:56,400 --> 00:51:58,100
Unless you have a time machine, 
you going to work with something

1144
00:51:58,100 --> 00:52:00,900
else, so do it. 
But that also means in future, 

1145
00:52:00,900 --> 00:52:03,600
you got to go back and go out. 
Yeah, I remember thinking this. 

1146
00:52:03,600 --> 00:52:04,400
Yeah. 
I was wrong. 

1147
00:52:04,600 --> 00:52:07,700
There's nothing wrong with being
wrong, but you've just got to 

1148
00:52:07,700 --> 00:52:09,000
frame it in a way that goes 
like. 

1149
00:52:09,000 --> 00:52:12,500
Yeah, we did our best but now we
know better and that's 

1150
00:52:12,500 --> 00:52:14,800
absolutely fine. 
That's a better frame that damn 

1151
00:52:14,800 --> 00:52:16,400
we were idiots. 
We should never be allowed near 

1152
00:52:16,400 --> 00:52:18,800
keyboards again. 
It's a very harsh way of looking

1153
00:52:18,800 --> 00:52:21,300
at it. 
So that the me compassion is 

1154
00:52:21,300 --> 00:52:24,900
that missing ingredient and that
was never made clear to me when 

1155
00:52:24,900 --> 00:52:27,200
I joined the industry or in fact
for most of the time I've been 

1156
00:52:27,200 --> 00:52:30,900
in Austria, that's actually an 
important ingredient in creating

1157
00:52:31,000 --> 00:52:33,800
large software. 
Teams and companies based on 

1158
00:52:33,800 --> 00:52:36,600
software, you kind of have to 
rid of that if you want to have 

1159
00:52:36,600 --> 00:52:39,600
the longevity and all those 
quality and productivity 

1160
00:52:39,600 --> 00:52:42,900
aspirations people have. 
There's a magic ingredient and 

1161
00:52:42,900 --> 00:52:46,100
it's the appreciation of other 
people while they're so many 

1162
00:52:46,100 --> 00:52:47,800
things straight from your 
explanation, right? 

1163
00:52:47,800 --> 00:52:51,200
Starting from how to organize 
start clarifying, your thinking 

1164
00:52:51,200 --> 00:52:54,200
process many programmers 
probably started their career 

1165
00:52:54,200 --> 00:52:57,000
thinking that they will work 
just with machine and keyboard. 

1166
00:52:57,200 --> 00:52:59,700
They don't like talking with 
other people but actually 

1167
00:52:59,700 --> 00:53:01,800
software development is about 
communication. 

1168
00:53:02,200 --> 00:53:04,500
Medication with other people, 
not just from business, but 

1169
00:53:04,500 --> 00:53:07,600
maybe with your users, or maybe 
some other people as well, when 

1170
00:53:07,600 --> 00:53:10,300
you can clarify and communicate 
better, I think you become a 

1171
00:53:10,308 --> 00:53:11,700
better software developer as 
well. 

1172
00:53:12,000 --> 00:53:15,400
And I think compassion I hear 
you loud and clear many people 

1173
00:53:15,400 --> 00:53:18,100
these days especially in the 
tech industry in the startup 

1174
00:53:18,100 --> 00:53:21,400
World, they tend to just 
thinking of fast-paced always 

1175
00:53:21,400 --> 00:53:24,600
deliver always churning out 
things but they lack compassion 

1176
00:53:24,800 --> 00:53:27,100
thinking about the thing that 
they are, people are chasing. 

1177
00:53:27,400 --> 00:53:29,900
It's actually thinking about the
people aspect as well, not just 

1178
00:53:29,900 --> 00:53:32,500
producing code. 
So, I think you're Message is 

1179
00:53:32,500 --> 00:53:35,200
really important for all of us 
here to think about compassion, 

1180
00:53:35,200 --> 00:53:37,200
and not to always downgrade 
people. 

1181
00:53:37,200 --> 00:53:40,500
As a developer, we have skills 
in abstraction, we should be 

1182
00:53:40,508 --> 00:53:42,100
careful about applying those 
skills to people. 

1183
00:53:42,100 --> 00:53:44,400
Yeah, yeah. 
So we should not downgrade 

1184
00:53:44,400 --> 00:53:46,000
people thinking they're just 
developers. 

1185
00:53:46,000 --> 00:53:48,000
So, Kevin has been a great 
conversation. 

1186
00:53:48,000 --> 00:53:50,600
Unfortunately, due to time we 
have to wrap up. 

1187
00:53:50,900 --> 00:53:53,500
I have one last question though 
that I would like to ask you, 

1188
00:53:53,500 --> 00:53:55,900
which I call the three technical
leadership wisdom. 

1189
00:53:55,900 --> 00:53:59,100
So think of it just like advice 
for other people to think about 

1190
00:53:59,100 --> 00:54:00,800
or Ponder with their Journey as 
well. 

1191
00:54:00,800 --> 00:54:04,200
So maybe can you Share with us. 
Those three technical leadership

1192
00:54:04,200 --> 00:54:06,500
wisdom. 
Yeah, I think they asked kind of

1193
00:54:06,508 --> 00:54:08,100
follow on from the previous 
points. 

1194
00:54:08,100 --> 00:54:10,600
We making interestingly enough, 
that's taken us to a very 

1195
00:54:10,600 --> 00:54:13,200
interesting plate. 
The first thing I guess a really

1196
00:54:13,200 --> 00:54:14,900
simple one. 
When we talk about technical 

1197
00:54:14,900 --> 00:54:18,200
leadership is definitely lead, 
by example, and that's a harder 

1198
00:54:18,200 --> 00:54:22,500
than it sounds, but the idea is,
when you are trying to instill a

1199
00:54:22,500 --> 00:54:26,000
change, we are taught about 
telling people and funny enough 

1200
00:54:26,000 --> 00:54:29,300
in the writing World, there is 
this idea of show, don't tell, 

1201
00:54:29,500 --> 00:54:32,000
when you write something, the 
idea is, what is it in your 

1202
00:54:32,100 --> 00:54:33,900
You're writing that 
communicates. 

1203
00:54:33,900 --> 00:54:36,200
What's going on? 
Don't just give a description of

1204
00:54:36,200 --> 00:54:38,300
everything that's going on and 
you don't have quote marks 

1205
00:54:38,300 --> 00:54:39,700
around. 
I don't love you anymore. 

1206
00:54:40,300 --> 00:54:43,100
She said, angrily, what's that? 
Would angrily doing there? 

1207
00:54:43,300 --> 00:54:44,900
How do people behave when 
they're angry? 

1208
00:54:45,200 --> 00:54:47,600
She slammed the door, as she 
left are slamming little wow. 

1209
00:54:47,600 --> 00:54:49,800
Okay, she's angry. 
And I was show me the think, 

1210
00:54:49,800 --> 00:54:52,600
don't just tell me the things 
show me the thing and I think 

1211
00:54:52,600 --> 00:54:55,400
same thing applies paid to 
richer picture. 

1212
00:54:55,600 --> 00:54:58,400
So is very easy to fall into a 
position where potentially, if 

1213
00:54:58,400 --> 00:55:01,400
we're advocating a practice 
within a team, we're telling 

1214
00:55:01,400 --> 00:55:04,800
people Sure that message might 
get through, but it probably 

1215
00:55:04,800 --> 00:55:07,000
doesn't, and he probably doesn't
mean anything. 

1216
00:55:07,200 --> 00:55:09,200
You got to work at the level. 
What does it mean? 

1217
00:55:09,700 --> 00:55:12,300
If I recommend a practice, can I
show you what it is? 

1218
00:55:12,900 --> 00:55:15,100
What if I do that? 
What if nobody else does that? 

1219
00:55:15,200 --> 00:55:17,700
That's fine. 
But imagine you did it and you 

1220
00:55:17,700 --> 00:55:19,900
were able to point to it. 
What's that you're doing? 

1221
00:55:20,000 --> 00:55:21,700
Oh, okay, that's kind of 
interesting. 

1222
00:55:21,700 --> 00:55:24,000
I see you're using a different 
commit, message philosophy to 

1223
00:55:24,000 --> 00:55:26,100
the way that I'm writing commit,
but your commit message 

1224
00:55:26,100 --> 00:55:28,700
philosophy, seems to have a 
clearer communication and you 

1225
00:55:28,700 --> 00:55:31,000
break your commits down to 
smaller levels than perhaps to 

1226
00:55:31,008 --> 00:55:32,900
other people in the team do. 
And you realize they much more 

1227
00:55:32,900 --> 00:55:34,100
transactional. 
Well, there you go. 

1228
00:55:34,100 --> 00:55:37,400
You've got an example lead, by 
example is a really important 

1229
00:55:37,400 --> 00:55:40,400
thing and sometimes that means 
leading, before you tell do that

1230
00:55:40,400 --> 00:55:43,500
in practice, it becomes more of 
a habit that you're also in a 

1231
00:55:43,500 --> 00:55:45,500
better position to talk about 
the adoption of it. 

1232
00:55:45,600 --> 00:55:47,500
It's an example, not just 
because you're not being a 

1233
00:55:47,500 --> 00:55:49,500
hypocrite, hey, I'm telling you 
to do something going to do 

1234
00:55:49,500 --> 00:55:53,200
something else but also because 
it may mean more to people when 

1235
00:55:53,200 --> 00:55:57,000
they actually see it in action, 
whatever that practice is 

1236
00:55:57,000 --> 00:55:59,900
whatever that advocacy is. 
Well there that recommendation 

1237
00:55:59,900 --> 00:56:02,800
is, if you can see it in the 
world, it makes A lot more sense

1238
00:56:02,800 --> 00:56:05,000
to me than just being told it. 
So I think that's kind of the 

1239
00:56:05,000 --> 00:56:08,200
first one, the other one. 
So people get called team 

1240
00:56:08,200 --> 00:56:10,200
leaders, they get called 
technically, there's an 

1241
00:56:10,207 --> 00:56:13,200
organization they get called 
leaders but that doesn't always 

1242
00:56:13,200 --> 00:56:15,400
mean, you are leading to be a 
leader. 

1243
00:56:15,400 --> 00:56:16,700
You have to have people who 
follow. 

1244
00:56:17,000 --> 00:56:19,100
They can either be told to 
follow you all the kind of 

1245
00:56:19,100 --> 00:56:21,400
follow you. 
So the leading by example is one

1246
00:56:21,400 --> 00:56:24,200
thing but the other thing is you
got to realize that if you are 

1247
00:56:24,200 --> 00:56:26,400
trying to Advocate things, you 
are not going to come up with 

1248
00:56:26,400 --> 00:56:27,900
everything. 
You're not going to lead, you 

1249
00:56:27,900 --> 00:56:29,500
shouldn't do all the work, 
otherwise you're going to end up

1250
00:56:29,500 --> 00:56:31,700
in a position where you become a
micromanager know to lead. 

1251
00:56:32,100 --> 00:56:34,800
And also recognize that 
particular when we talk about 

1252
00:56:34,800 --> 00:56:38,000
teams and organizations, they 
are social constructs. 

1253
00:56:38,000 --> 00:56:40,700
Again, we're back to the people.
There's a lot of intelligent 

1254
00:56:40,700 --> 00:56:42,600
people at software. 
There's a lot of creative 

1255
00:56:42,600 --> 00:56:45,800
individuals and everybody knows 
something that you don't need. 

1256
00:56:45,800 --> 00:56:47,800
You know, they know the things 
that, you know, they will know 

1257
00:56:47,800 --> 00:56:49,500
them. 
Different cannot know, something

1258
00:56:49,500 --> 00:56:51,400
for somebody else, and you 
cannot know it necessarily in 

1259
00:56:51,400 --> 00:56:54,500
the same way and she rely on 
other people to come up with 

1260
00:56:54,500 --> 00:56:56,600
ideas. 
It's not your job to do, all of 

1261
00:56:56,600 --> 00:56:59,700
the work rely on other people 
and give them credit. 

1262
00:57:00,100 --> 00:57:02,700
So that's the important thing 
make That visible. 

1263
00:57:02,900 --> 00:57:06,000
I sometimes see with people who 
consider themselves to be 

1264
00:57:06,100 --> 00:57:08,300
leaders as they think they have 
to do all the thinking. 

1265
00:57:08,600 --> 00:57:12,800
No, actually your value goes up 
by recognizing and letting other

1266
00:57:12,800 --> 00:57:15,600
people do this and make it 
explicit that they came up with 

1267
00:57:15,600 --> 00:57:17,000
that. 
That's where people go. 

1268
00:57:17,000 --> 00:57:19,300
Yeah, that person to leader. 
They credited me. 

1269
00:57:19,300 --> 00:57:21,800
They see what I'm doing. 
You got to see them and make 

1270
00:57:21,800 --> 00:57:23,900
that visible and make sure other
people see them. 

1271
00:57:23,900 --> 00:57:25,600
So, that's a really important 
idea. 

1272
00:57:26,100 --> 00:57:28,400
And the other one picks up on 
another theme that we've had 

1273
00:57:28,500 --> 00:57:29,800
throughout our conversation 
today. 

1274
00:57:30,600 --> 00:57:34,000
Which is admit you're wrong, 
you're going to make mistakes 

1275
00:57:34,300 --> 00:57:38,000
and a really hard thing to do. 
Sometimes that may be at our 

1276
00:57:38,000 --> 00:57:40,700
personal communication level 
with somebody, you may make a 

1277
00:57:40,700 --> 00:57:41,900
mistake, you may misjudge 
something. 

1278
00:57:41,900 --> 00:57:44,600
You may be too emotional. 
You may miss read somebody 

1279
00:57:44,600 --> 00:57:47,400
else's emotion, but it may also 
be something technical perhaps 

1280
00:57:47,400 --> 00:57:49,600
that you kind of always staked 
your career on, we're going to 

1281
00:57:49,600 --> 00:57:52,400
do this and you got to go. 
You know what? 

1282
00:57:52,400 --> 00:57:54,600
I was wrong. 
Actually, that wasn't the best 

1283
00:57:54,600 --> 00:57:58,000
option and now, I understand why
that whole thing rather than 

1284
00:57:58,000 --> 00:58:00,300
trying to hide it or dig into it
that even more deeply. 

1285
00:58:00,500 --> 00:58:03,600
That's a really important thing.
Again, your stock goes up as a 

1286
00:58:03,600 --> 00:58:06,300
result of that, but also, that's
a compassion for yourself. 

1287
00:58:06,500 --> 00:58:08,900
Don't hold yourself to 
unreasonable standards because 

1288
00:58:08,900 --> 00:58:12,400
otherwise you'll always miss. 
So that's very much the idea of 

1289
00:58:12,400 --> 00:58:15,000
work with a growth mindset 
rather than a fixed mindset. 

1290
00:58:15,000 --> 00:58:16,600
So yeah, you're going to make 
mistakes. 

1291
00:58:17,000 --> 00:58:19,900
We are always operating with 
incomplete knowledge and we are 

1292
00:58:19,900 --> 00:58:22,500
inevitably imperfect and that's 
absolutely fine. 

1293
00:58:22,700 --> 00:58:25,100
Just roll with that. 
That's the way that you do it 

1294
00:58:25,100 --> 00:58:28,400
and there people will see them. 
Yeah, admitting we are wrong. 

1295
00:58:28,400 --> 00:58:30,900
Sometimes is very difficult. 
We putting our Ourselves with 

1296
00:58:30,900 --> 00:58:34,100
vulnerabilities, some people 
fear about being vulnerable 

1297
00:58:34,100 --> 00:58:36,200
people being attacked, right? 
Yeah. 

1298
00:58:36,200 --> 00:58:39,000
If I'm supposed to be the ACT 
but and I got something wrong. 

1299
00:58:39,000 --> 00:58:41,400
Does that mean I'm no longer the
expert on my got, that puts you,

1300
00:58:41,400 --> 00:58:44,200
in a very vulnerable position. 
As a perfectionism there, that 

1301
00:58:44,200 --> 00:58:47,700
becomes quite predatory and 
quite dangerous and doesn't help

1302
00:58:47,700 --> 00:58:49,400
anybody's mood. 
Whereas actually is 

1303
00:58:49,400 --> 00:58:50,700
occasionally. 
Yeah, you know, what you were 

1304
00:58:50,700 --> 00:58:53,100
wrong and that's fine. 
It's okay to be wrong. 

1305
00:58:54,200 --> 00:58:57,100
Yeah, especially in Tech where 
people have egos and have 

1306
00:58:57,100 --> 00:59:00,300
impostor syndrome. 
So they tend to hide all this. 

1307
00:59:00,600 --> 00:59:03,400
So I think that's a very 
beautiful message, not to fear 

1308
00:59:03,400 --> 00:59:07,000
of admitting, we are wrong 
sometimes, so Carolyn for people

1309
00:59:07,000 --> 00:59:10,500
who love to connect with you, or
maybe follow some things that 

1310
00:59:10,500 --> 00:59:12,900
you write or speak about. 
Is there a place where they can 

1311
00:59:12,900 --> 00:59:15,100
find you online? 
Yeah, I'm going to number of 

1312
00:59:15,107 --> 00:59:16,800
different places. 
My parents were kind enough to 

1313
00:59:16,808 --> 00:59:18,700
give me an internet unique name 
before the internet was 

1314
00:59:18,700 --> 00:59:20,500
invented. 
So, Carolyn Hannah is an easy 

1315
00:59:20,500 --> 00:59:23,300
thing to find, so you can find 
me on Twitter there as Kevin 

1316
00:59:23,300 --> 00:59:26,900
Haley, you can Follow me on 
Mastodon as Carolyn at Mastodon 

1317
00:59:26,900 --> 00:59:29,100
social you can find me on 
LinkedIn. 

1318
00:59:29,400 --> 00:59:32,300
So these are the most obvious 
places where I hang out and so I

1319
00:59:32,308 --> 00:59:33,700
look forward to seeing people 
online. 

1320
00:59:34,300 --> 00:59:36,500
I'll put that in the show notes,
thank you so much for this time.

1321
00:59:36,500 --> 00:59:38,000
Kevin I learned a lot from you 
today. 

1322
00:59:38,700 --> 00:59:43,900
Thank you, Henry. 
Thank you for listening to this 

1323
00:59:43,900 --> 00:59:47,300
episode and for staying, right 
until the end, if you're highly 

1324
00:59:47,300 --> 00:59:50,100
enjoyed it, I would appreciate 
if you share it with your 

1325
00:59:50,100 --> 00:59:53,000
friends and colleagues who you 
think would also benefit from 

1326
00:59:53,000 --> 00:59:55,600
listening to this episode. 
And if you are new to the 

1327
00:59:55,600 --> 00:59:58,600
podcast, make sure to subscribe 
and leave me your valuable 

1328
00:59:58,600 --> 01:00:01,600
review and feedback. 
It helps me a lot in order to 

1329
01:00:01,600 --> 01:00:04,900
grow this podcast better. 
You can also find the full show 

1330
01:00:04,900 --> 01:00:08,200
notes of this conversation on 
the episode page at tackling 

1331
01:00:08,200 --> 01:00:11,400
Journal, dot death website, 
including the full transcript 

1332
01:00:11,500 --> 01:00:13,500
interesting. 
Chords and links to the 

1333
01:00:13,500 --> 01:00:15,800
resources mentioned, from the 
conversation. 

1334
01:00:16,200 --> 01:00:19,200
And lastly, make sure to 
subscribe to the show's mailing 

1335
01:00:19,200 --> 01:00:22,200
list on package. 
You know, dot f to get notified 

1336
01:00:22,200 --> 01:00:25,300
for any future episodes. 
Stay tuned for the next 

1337
01:00:25,300 --> 01:00:26,700
technology. 
No episode. 

1338
01:00:27,000 --> 01:00:28,600
And until then goodbye.
