1
00:00:00,040 --> 00:00:02,480
Do you agree with the statement 
that you spend more than 50% of 

2
00:00:02,480 --> 00:00:04,440
your time reading code? 
Pretty much everybody says yes. 

3
00:00:04,640 --> 00:00:07,280
But then I ask another question.
When was the last time you heard

4
00:00:07,280 --> 00:00:08,840
developers talk about how they 
read that? 

5
00:00:09,160 --> 00:00:10,880
Nobody talks about it. 
If you don't talk about 

6
00:00:10,880 --> 00:00:14,400
something, it's not explicit. 
If it's not explicit, it has 

7
00:00:14,400 --> 00:00:16,360
never been optimized. 
Why do you read code? 

8
00:00:16,680 --> 00:00:18,520
Well, you read code because you 
want to understand enough a 

9
00:00:18,520 --> 00:00:20,480
system to be able to make the 
decision. 

10
00:00:20,480 --> 00:00:23,560
What if we just look at software
engineering as a decision making

11
00:00:23,560 --> 00:00:25,400
activity rather than 
construction activity? 

12
00:00:25,840 --> 00:00:28,520
Software is highly contextual. 
As a consequence, we cannot 

13
00:00:28,520 --> 00:00:30,440
provide clicking tools as 
solutions. 

14
00:00:30,640 --> 00:00:32,720
They won't be effective. 
Nobody can read the whole 

15
00:00:32,720 --> 00:00:35,560
system. 
It means that most information 

16
00:00:35,560 --> 00:00:37,320
that we will basing our 
decisions on are going to be 

17
00:00:37,320 --> 00:00:38,720
inferred. 
So beliefs. 

18
00:00:38,720 --> 00:00:41,280
Basically, whenever people Draw 
Something on the whiteboard 

19
00:00:41,280 --> 00:00:44,520
about the existing system, they 
depict their belief about the 

20
00:00:44,520 --> 00:00:46,440
system rather than the system 
itself. 

21
00:00:46,880 --> 00:00:48,480
This is the essence of multiple 
development. 

22
00:00:48,480 --> 00:00:51,160
We're going to build tools 
through which we read, and then 

23
00:00:51,160 --> 00:00:52,400
we're going to make decisions on
that. 

24
00:00:52,400 --> 00:00:55,880
But these tools will provide an 
unmediated lens through the 

25
00:00:55,880 --> 00:00:57,600
system. 
You mentioned in your writing 

26
00:00:57,600 --> 00:01:01,000
with Simon Wardley the problem 
with legacy system, why it's 

27
00:01:01,000 --> 00:01:02,440
going to be a big challenge for 
us. 

28
00:01:03,240 --> 00:01:05,640
Right now we create software 
faster and faster, so year over 

29
00:01:05,640 --> 00:01:07,760
year the software grows super 
linearly. 

30
00:01:08,160 --> 00:01:10,840
But we're unable to recycle all 
systems, so we behave no 

31
00:01:10,840 --> 00:01:12,120
differently from the plastic 
industry. 

32
00:01:12,640 --> 00:01:15,840
It's not sustainable generative 
AI if you use it for generating 

33
00:01:16,080 --> 00:01:18,120
arbitrary kinds of code, as 
people are trying to do. 

34
00:01:18,480 --> 00:01:23,240
As long as we as humans decide 
we want to understand what 

35
00:01:23,240 --> 00:01:26,200
happens inside the system, we 
have to solve the reading 

36
00:01:26,200 --> 00:01:27,760
problem. 
There is no way around it. 

37
00:01:41,160 --> 00:01:43,480
Hello everyone, welcome back to 
another new episode of the Tech 

38
00:01:43,480 --> 00:01:45,440
Regional Podcast. 
Today I'm very excited to have 

39
00:01:45,480 --> 00:01:47,720
this conversation. 
We are going to learn something 

40
00:01:47,720 --> 00:01:50,320
new, a new concept called 
moldable development. 

41
00:01:50,600 --> 00:01:52,640
So I have Tudor Girbell with me 
today. 

42
00:01:52,640 --> 00:01:54,360
So I'm very excited to have this
conversation. 

43
00:01:54,360 --> 00:01:57,480
Welcome to the show, Tudor. 
Well, thank you for having me. 

44
00:01:58,040 --> 00:02:00,880
Right, Tudor, maybe before we 
start diving into moldable 

45
00:02:00,880 --> 00:02:03,040
development, I'd like you to 
maybe tell us a little bit more 

46
00:02:03,040 --> 00:02:05,520
about yourself by, you know, 
sharing some career turning 

47
00:02:05,520 --> 00:02:07,200
points that you think we can 
learn from you. 

48
00:02:07,800 --> 00:02:11,800
OK. 
Well, so I'm presently the CEO 

49
00:02:11,800 --> 00:02:14,080
of Think. 
Think is a company that is 

50
00:02:14,080 --> 00:02:16,400
focused on modernizing legacy 
systems. 

51
00:02:16,760 --> 00:02:22,080
We exist since about 10 years 
and the reason Think exists is 

52
00:02:22,080 --> 00:02:26,000
because we wanted to have a way 
to fund the research that led to

53
00:02:26,000 --> 00:02:27,720
what today is called multiple 
development. 

54
00:02:28,120 --> 00:02:32,800
There's interest in researching 
the space of how do we reason or

55
00:02:32,800 --> 00:02:36,120
understand systems and make 
decisions about systems leads 

56
00:02:36,160 --> 00:02:38,560
back to a couple of decades in 
my case. 

57
00:02:39,040 --> 00:02:44,400
So I started with my PhD and 
work at the University of Bern 

58
00:02:44,400 --> 00:02:47,400
and postdoc then. 
So my my research area was 

59
00:02:47,400 --> 00:02:50,520
software analysis, software 
evolution, mining systems 

60
00:02:50,520 --> 00:02:54,080
visualizations. 
So I was building quite a number

61
00:02:54,080 --> 00:02:57,880
of tools as and there was an 
extensive platform at the time 

62
00:02:58,080 --> 00:03:01,800
that helped us prototype 
analysis very fast and lots of 

63
00:03:01,800 --> 00:03:05,600
them. 
And at some point I remember 

64
00:03:05,600 --> 00:03:09,360
writing my NTH paper starting 
with this sentence that 

65
00:03:09,360 --> 00:03:11,800
developers spend more than 50% 
of their time reading code. 

66
00:03:11,800 --> 00:03:15,640
And then I realized that the 
oldest reference on the subject 

67
00:03:15,920 --> 00:03:20,120
that I knew of was something 
around it was from around 1979, 

68
00:03:20,160 --> 00:03:24,320
which was about 3 decades back. 
So I was wondering if I can 

69
00:03:24,600 --> 00:03:27,560
state exactly the same problem 3
decades later. 

70
00:03:27,560 --> 00:03:30,600
Is it possible that we are 
asking the problem in the wrong 

71
00:03:30,600 --> 00:03:32,960
way or looking at the problem in
the wrong way? 

72
00:03:33,400 --> 00:03:36,960
So I started to try to look at 
the problem differently and then

73
00:03:36,960 --> 00:03:39,040
what was worse was then I looked
at myself. 

74
00:03:39,480 --> 00:03:42,080
So I was a researcher and I was 
building lots of tools that were

75
00:03:42,080 --> 00:03:45,160
supposed to automate and help 
developers understand their 

76
00:03:45,160 --> 00:03:46,840
systems better. 
But when I looked at what I was 

77
00:03:46,840 --> 00:03:49,480
doing, I was reading code for 
more than 50% of my time. 

78
00:03:49,880 --> 00:03:54,280
Obviously something was not 
quite right and so I tried to 

79
00:03:54,280 --> 00:03:57,560
solve problems afterwards. 
So I left academia to try to 

80
00:03:57,560 --> 00:03:59,920
pursue this idea. 
Finding a different way. 

81
00:04:00,160 --> 00:04:03,040
To look at how to improve 
decision making, software 

82
00:04:03,040 --> 00:04:05,120
engineering and so. 
We knew how to build. 

83
00:04:05,120 --> 00:04:06,720
Tools. 
We did have this extensive 

84
00:04:06,720 --> 00:04:10,240
platform already in place at the
time it was called Moose. 

85
00:04:10,840 --> 00:04:13,640
It was one of the largest 
platform in software analysis 

86
00:04:13,640 --> 00:04:17,200
research at the time. 
Several dozen PhDs worked on it 

87
00:04:17,200 --> 00:04:20,880
and lots of master students as 
well, and several universities. 

88
00:04:21,279 --> 00:04:22,720
So I was the main architect of 
it. 

89
00:04:22,720 --> 00:04:25,920
And so I, I started to do 
consulting and tried to solve 

90
00:04:25,920 --> 00:04:28,720
actual problems. 
And when I realized I was 

91
00:04:28,720 --> 00:04:30,720
looking for the recurrent 
pattern, because I didn't know 

92
00:04:30,720 --> 00:04:33,400
exactly where to start from. 
And I, I was looking for the 

93
00:04:33,400 --> 00:04:35,680
recurrent pattern. 
And then I realized that the 

94
00:04:35,680 --> 00:04:39,200
only recurrent pattern was that 
in order to be meaningful for a 

95
00:04:39,200 --> 00:04:42,920
specific system, our specific 
problems in a specific system 

96
00:04:43,160 --> 00:04:44,680
was that I had to tweak my 
tools. 

97
00:04:45,160 --> 00:04:48,000
I had to change my tools. 
That was the recurrent pattern 

98
00:04:48,000 --> 00:04:50,320
over and over again. 
And that's when these other 

99
00:04:50,320 --> 00:04:52,960
observation came into play, 
which is the software is highly 

100
00:04:52,960 --> 00:04:56,280
contextual, which means that we 
can predict classes of problems 

101
00:04:56,480 --> 00:04:58,840
people will encounter, but we 
cannot predict the specific 

102
00:04:58,840 --> 00:05:00,360
problems that people will 
encounter. 

103
00:05:00,920 --> 00:05:05,120
And it so as a consequence, we 
cannot provide clicking tools as

104
00:05:05,120 --> 00:05:07,200
solutions or we can't provide 
them. 

105
00:05:07,200 --> 00:05:10,240
It's just that they won't be 
effective because the clicking a

106
00:05:10,240 --> 00:05:12,440
clicking tool makes the problem 
in the click. 

107
00:05:12,840 --> 00:05:15,600
So if I can't know the specific 
problem, I'll be answering the 

108
00:05:15,600 --> 00:05:18,560
generic problem. 
And so the rest of the energy to

109
00:05:18,560 --> 00:05:20,760
actually go and answer a 
specific question about my 

110
00:05:20,760 --> 00:05:22,520
system will have to be filled 
somehow. 

111
00:05:22,520 --> 00:05:23,920
And it typically happens 
manually. 

112
00:05:24,520 --> 00:05:27,440
So the alternative is to say, 
well, what if we can build a 

113
00:05:27,440 --> 00:05:30,840
tool after we know the problem, 
which means during development. 

114
00:05:31,280 --> 00:05:33,320
So that was the idea about 15 
years ago. 

115
00:05:33,520 --> 00:05:38,640
And ever since I tried to 
validate or actually we were 

116
00:05:38,640 --> 00:05:41,880
looking for the counter example.
So he and my colleagues, that's 

117
00:05:41,880 --> 00:05:44,800
what we've been doing for the 
last 15 years, searching how is 

118
00:05:44,800 --> 00:05:47,840
it possible, Is it possible to 
tackle every single development 

119
00:05:47,840 --> 00:05:50,840
problem through a custom tool? 
And then is there a 

120
00:05:50,840 --> 00:05:54,960
counterexample when building a 
custom tool is not desirable? 

121
00:05:55,400 --> 00:05:57,080
We haven't found the 
counterexample yet. 

122
00:05:58,120 --> 00:06:01,960
This episode is brought to you 
by Swim dot IO and I'm excited 

123
00:06:01,960 --> 00:06:06,280
to have its CTO and Co founder 
Omar Rosenbaum with me today to 

124
00:06:06,280 --> 00:06:09,240
tell you more about Swim. 
Hi Henry, very nice to meet you 

125
00:06:09,240 --> 00:06:11,920
and thank you for having me. 
So tell us a little bit more, 

126
00:06:11,920 --> 00:06:15,200
what is swim dot IO? 
At Swim, we want to help 

127
00:06:15,360 --> 00:06:17,800
companies understand their code 
bases. 

128
00:06:17,920 --> 00:06:22,280
We combine static code analysis 
with generative AI to create 

129
00:06:22,280 --> 00:06:26,040
comprehensive documents that 
help you navigate the code base.

130
00:06:26,160 --> 00:06:28,520
As an engineer myself, I 
wouldn't want them 10 years to 

131
00:06:28,520 --> 00:06:32,120
spend so much time understanding
existing code. 

132
00:06:32,160 --> 00:06:35,640
I would want them to spend time 
creating and building new stuff.

133
00:06:36,000 --> 00:06:40,040
When you have code that has 
accumulated over decades, and 

134
00:06:40,040 --> 00:06:45,840
especially in legacy languages 
that not many people are adapted

135
00:06:45,920 --> 00:06:48,400
nowadays, then the problem is 
even bigger. 

136
00:06:48,800 --> 00:06:52,840
Swim dot IO is specializing into
helping mainframe developers to 

137
00:06:52,840 --> 00:06:54,800
understand their coupes. 
Why mainframes? 

138
00:06:54,840 --> 00:06:59,440
We actually didn't start there. 
COBOL had been by some people 

139
00:06:59,520 --> 00:07:04,960
obsolete for a few years, and I 
discovered that it's not really 

140
00:07:04,960 --> 00:07:07,800
obsolete, not at all. 
There are more than 800 billion 

141
00:07:07,800 --> 00:07:11,640
lines of COBOL code that are in 
production and they drive lots 

142
00:07:11,640 --> 00:07:16,360
of the business in the world and
we got more and more requests. 

143
00:07:16,520 --> 00:07:19,400
From. 
Customers to help them 

144
00:07:19,400 --> 00:07:21,640
understand the legacy code 
business that was written 

145
00:07:21,640 --> 00:07:25,520
decades ago and get accumulated 
over a very long period of time.

146
00:07:25,720 --> 00:07:29,080
So from your customers so far, 
what are the some of the success

147
00:07:29,080 --> 00:07:32,520
stories that you can share? 
So we worked with an analyst who

148
00:07:32,760 --> 00:07:37,160
shared with us that it took them
a year to document a single 

149
00:07:37,160 --> 00:07:40,400
mainframe application, and using
SWIM they were able to document 

150
00:07:40,400 --> 00:07:43,000
a similar application in a 
matter of hours. 

151
00:07:43,480 --> 00:07:47,360
So saving that amount of time 
enables them to focus on other 

152
00:07:47,560 --> 00:07:50,480
tasks. 
Thanks Amir for sharing with us 

153
00:07:50,480 --> 00:07:53,240
about SWIM Today. 
To learn more about SWIM, check 

154
00:07:53,240 --> 00:07:55,320
out their website at swim dot 
IO. 

155
00:07:57,240 --> 00:08:00,000
Well, I think you shared very, 
very interesting facts, right? 

156
00:08:00,000 --> 00:08:02,000
Let's start with the first thing
that you shared, right? 

157
00:08:02,000 --> 00:08:04,960
You mentioned that 50% of our 
time, I'm most kind of like 

158
00:08:04,960 --> 00:08:07,880
developers, right? 
I think we spend more than 50% 

159
00:08:08,080 --> 00:08:11,760
even now with AI, right? 
Because AI suggests more code 

160
00:08:11,920 --> 00:08:14,280
than we wrote, we are reading 
even more, right? 

161
00:08:14,520 --> 00:08:17,000
So I think reading code is 
definitely the main job of a 

162
00:08:17,000 --> 00:08:19,880
developer and not just that 
actually to understand how the 

163
00:08:19,880 --> 00:08:22,280
software is written. 
Because if your software gets 

164
00:08:22,280 --> 00:08:24,640
bigger, right, you won't be able
to understand just by reading 

165
00:08:24,640 --> 00:08:28,080
one file or few files, right? 
You have to read maybe the edges

166
00:08:28,080 --> 00:08:29,560
of those files that you're 
working with. 

167
00:08:29,760 --> 00:08:32,840
So maybe tell us this problem 
that probably we all experience 

168
00:08:32,840 --> 00:08:35,520
it, right? 
But somehow we kind of like what

169
00:08:35,520 --> 00:08:38,280
you say, right? 
Use this generic tool, clickable

170
00:08:38,280 --> 00:08:41,080
tools, Ides to actually 
understand the code. 

171
00:08:41,400 --> 00:08:43,559
Tell us why this is not really 
optimal? 

172
00:08:43,559 --> 00:08:46,760
Like what kind of examples that 
you can give us why this thing 

173
00:08:46,760 --> 00:08:50,600
doesn't work for longer term? 
That's a nice question. 

174
00:08:50,600 --> 00:08:53,920
So they're very interesting 
studies over this going back a 

175
00:08:53,920 --> 00:08:56,960
couple of decades and measuring 
what developers do. 

176
00:08:57,040 --> 00:09:00,480
And they all show that this, the
amount of time we spend trying 

177
00:09:00,480 --> 00:09:05,480
to figure the system out is way 
up beyond 50%. 

178
00:09:06,040 --> 00:09:09,200
Now, I wasn't satisfied only 
with that, so I actually went 

179
00:09:09,200 --> 00:09:12,400
and directly talked with more 
than like several 1000 people, 

180
00:09:12,640 --> 00:09:15,200
several 1000 developers, and I 
asked them directly in various 

181
00:09:15,200 --> 00:09:17,480
situations. 
And I asked him, do you agree 

182
00:09:17,480 --> 00:09:20,440
with the statement that you 
spend more than 50% of your time

183
00:09:20,440 --> 00:09:22,680
reading Cloud? 
Pretty much everybody says yes. 

184
00:09:22,960 --> 00:09:25,720
So I was at the O2 a couple of 
months ago and there were like 

185
00:09:25,720 --> 00:09:28,040
500 people in the room and I 
asked this question and then 

186
00:09:28,040 --> 00:09:30,040
everybody said yes. 
But then I asked another 

187
00:09:30,040 --> 00:09:32,520
question. 
When was the last time you heard

188
00:09:32,520 --> 00:09:34,560
developers talk about how they 
read out? 

189
00:09:35,000 --> 00:09:38,120
So not about the code that they 
read, but about how they do the 

190
00:09:38,120 --> 00:09:39,520
reading. 
So it's a weird. 

191
00:09:39,520 --> 00:09:42,640
Question right, what's there to 
talk about right and it's. 

192
00:09:43,080 --> 00:09:45,400
Nobody talks about it. 
It's not such a conversation. 

193
00:09:45,800 --> 00:09:49,160
This is kind of interesting. 
Because you were talking. 

194
00:09:49,280 --> 00:09:51,240
You were asking why is this 
suboptimal? 

195
00:09:51,520 --> 00:09:54,760
If you don't talk about 
something, it's not explicit. 

196
00:09:55,240 --> 00:09:57,280
If it's not explicit, it has 
never. 

197
00:09:57,280 --> 00:09:59,800
Been optimized. 
Now normally, let's say when 

198
00:09:59,800 --> 00:10:02,520
you're searching, when you're 
trying, let's say you have a 

199
00:10:02,520 --> 00:10:05,200
running system and you're trying
to optimize performance and you 

200
00:10:05,200 --> 00:10:08,960
profile your system and you find
like a big chunk, like more than

201
00:10:08,960 --> 00:10:12,480
50% of the performance. 
In a single place, in a single 

202
00:10:12,480 --> 00:10:15,240
piece of logic and you looked at
it and you look at it and say, 

203
00:10:15,240 --> 00:10:16,960
wow, we've never optimized this 
algorithm. 

204
00:10:17,440 --> 00:10:20,960
Now this is like a super great 
news because now I can optimize 

205
00:10:21,360 --> 00:10:23,960
a great deal of it because 
there's a very large promise of 

206
00:10:23,960 --> 00:10:26,120
optimizations possibility right 
there. 

207
00:10:26,120 --> 00:10:28,360
The same thing happens with 
activity. 

208
00:10:28,360 --> 00:10:31,280
Like literally when we don't. 
Talk about what we do for more 

209
00:10:31,280 --> 00:10:33,880
than. 50% of our time, that's 
the single largest expense we 

210
00:10:33,880 --> 00:10:35,000
have. 
There's nothing larger than 

211
00:10:35,000 --> 00:10:36,880
that. 
It basically means like we. 

212
00:10:36,880 --> 00:10:39,360
Just we're going to optimize for
the tiny bit. 

213
00:10:39,360 --> 00:10:42,200
So we have this humongous amount
of work and we're just going to 

214
00:10:42,200 --> 00:10:43,800
optimize this little tiny thing 
that we do. 

215
00:10:44,000 --> 00:10:46,880
And this is by the way, right, 
talking about AI, that's what 

216
00:10:46,880 --> 00:10:48,400
happens. 
Like people just say, oh, what 

217
00:10:48,400 --> 00:10:49,880
are we going to use AI for? 
I'm going to. 

218
00:10:49,880 --> 00:10:52,840
Generate more code. 
So then of course what happens 

219
00:10:52,840 --> 00:10:55,840
is the problem just becomes even
larger. 

220
00:10:56,440 --> 00:11:00,120
So that's the first order logic,
the first reason why we should 

221
00:11:00,120 --> 00:11:02,560
actually start talking about it.
We don't even. 

222
00:11:02,560 --> 00:11:04,120
Have to talk about the solution,
right? 

223
00:11:04,120 --> 00:11:07,160
This is just such an obvious 
place to start optimizing. 

224
00:11:07,160 --> 00:11:11,160
So that's basically where I 
started from 15 years ago to 

225
00:11:11,160 --> 00:11:12,880
look at it as an up to a 
conversation. 

226
00:11:13,360 --> 00:11:17,960
And so now what, how else, you 
know, can it be more optimal? 

227
00:11:17,960 --> 00:11:21,720
So for example, in the AI 
worldwide, we say, oh, we have 

228
00:11:21,720 --> 00:11:23,880
this like we, we see these 
demos, right? 

229
00:11:23,880 --> 00:11:27,080
As everybody talks about how I 
generated an application, of 

230
00:11:27,080 --> 00:11:30,280
course the application is only 
10 screens or so, but it's 

231
00:11:30,280 --> 00:11:33,640
basically you're bombarded by 
this, you know, walls of text 

232
00:11:33,640 --> 00:11:35,200
and people say, oh, look, so 
great. 

233
00:11:35,360 --> 00:11:36,880
It's like what? 
Like how? 

234
00:11:37,000 --> 00:11:40,320
How do you know? 
Because it's just, you just have

235
00:11:40,440 --> 00:11:42,960
something there. 
So, so you have to go and read 

236
00:11:42,960 --> 00:11:46,880
it is a way to reason about. 
But in fact, that's the thing, 

237
00:11:46,920 --> 00:11:49,760
you don't have to read it 
because the reason the question 

238
00:11:49,760 --> 00:11:52,760
is why do you read code? 
Well, you read code because you 

239
00:11:52,760 --> 00:11:55,840
want to understand enough a 
system to be able to make a 

240
00:11:55,880 --> 00:11:57,800
decision. 
So a situation around the system

241
00:11:57,800 --> 00:12:00,560
to be able to make a decision. 
Now from this, the activity is 

242
00:12:00,560 --> 00:12:03,320
actually decision making. 
Now, given that social 

243
00:12:03,320 --> 00:12:06,520
engineering is primarily like 
this is what we do most of the. 

244
00:12:06,520 --> 00:12:09,560
Time and AI. 
Just makes the problem more 

245
00:12:09,640 --> 00:12:12,640
obvious. 
The problem exists at its scale 

246
00:12:12,720 --> 00:12:17,280
well before AI. 
So in any organizations we meet,

247
00:12:17,640 --> 00:12:21,920
people are drowning in software 
that they cannot move, that they

248
00:12:21,920 --> 00:12:25,960
cannot understand and change. 
This problem existed for a long 

249
00:12:25,960 --> 00:12:28,520
time. 
We've been able to optimize more

250
00:12:28,520 --> 00:12:30,040
and more. 
The thing that we talked about, 

251
00:12:30,040 --> 00:12:32,440
which was how do we construct 
systems? 

252
00:12:33,040 --> 00:12:35,640
So we got better and better and 
producing more and more code 

253
00:12:35,640 --> 00:12:37,400
faster and faster and faster. 
And now to the. 

254
00:12:37,400 --> 00:12:40,680
Point in which we generate some,
I don't know what code, and 

255
00:12:40,680 --> 00:12:43,160
we're going to just say, Oh 
yeah, put it in the production. 

256
00:12:43,720 --> 00:12:46,240
So this one got better and 
faster and faster and faster, 

257
00:12:46,400 --> 00:12:48,880
but this other problem just 
became larger and larger and 

258
00:12:48,880 --> 00:12:50,880
larger and we're not talking 
about it. 

259
00:12:50,880 --> 00:12:53,680
So we definitely should be 
talking about it, the first 

260
00:12:53,680 --> 00:12:55,120
thing to say. 
Here is that given that. 

261
00:12:55,120 --> 00:12:57,440
We spent so much time trying to 
make decisions. 

262
00:12:57,800 --> 00:13:00,240
What if we just look at software
engineering? 

263
00:13:00,840 --> 00:13:03,800
As a decision making activity 
about an ever changing system 

264
00:13:03,800 --> 00:13:06,720
that is much larger than it fits
in our heads, rather than a 

265
00:13:06,720 --> 00:13:09,720
construction activity. 
Now when you change the point of

266
00:13:09,720 --> 00:13:12,520
view, lots of things change. 
Lots of things that were 

267
00:13:12,520 --> 00:13:15,200
important before all of a sudden
become much less important 

268
00:13:15,680 --> 00:13:17,880
because now you have a different
perspective to look at it. 

269
00:13:17,880 --> 00:13:19,400
So this is the first. 
Thing. 

270
00:13:19,400 --> 00:13:22,360
So from that point of view, 
reading, for example, is just a 

271
00:13:22,360 --> 00:13:23,800
strategy. 
It's just a tactic. 

272
00:13:23,800 --> 00:13:27,480
Actually of extracting 
information from the system 

273
00:13:28,040 --> 00:13:30,760
right now from this point of 
view it becomes obvious, but 

274
00:13:30,760 --> 00:13:33,480
actually this is the most manual
possible way in which we extract

275
00:13:33,480 --> 00:13:36,640
information from our system. 
So you see, like once we make 

276
00:13:36,640 --> 00:13:38,560
this subject obvious and we 
start. 

277
00:13:38,560 --> 00:13:40,720
Talking about it. 
We do like two or three. 

278
00:13:40,720 --> 00:13:43,440
Steps and we just. 
Find ourselves in a rather like,

279
00:13:43,560 --> 00:13:46,280
what are we doing? 
But then it gets even crazier 

280
00:13:46,280 --> 00:13:47,920
because if you think about 
what's an enterprise? 

281
00:13:47,920 --> 00:13:52,400
System doing for example, right?
So all enterprise systems, they 

282
00:13:52,400 --> 00:13:56,400
automate someone's decision 
making specifically by 

283
00:13:56,400 --> 00:13:59,120
preventing those people to ever 
see the raw data. 

284
00:13:59,800 --> 00:14:03,760
So we take the data, we import 
it, we model it, and we present 

285
00:14:03,760 --> 00:14:07,560
it in a way that other humans 
can make much faster decisions 

286
00:14:07,560 --> 00:14:11,480
about humongous amounts of data 
without ever seeing the data. 

287
00:14:11,680 --> 00:14:15,160
So who possesses the skill of 
transforming, you know, raw data

288
00:14:15,160 --> 00:14:16,600
problem into decision making 
problem? 

289
00:14:17,000 --> 00:14:19,760
We do like software, people do. 
So when software. 

290
00:14:19,760 --> 00:14:22,320
People have their own problems. 
What do they do? 

291
00:14:22,880 --> 00:14:26,080
Well, we fall back to the most 
manual possible way of doing 

292
00:14:26,080 --> 00:14:28,160
things. 
It doesn't make any sense. 

293
00:14:28,320 --> 00:14:29,800
So. 
But the cool thing about this 

294
00:14:30,000 --> 00:14:31,520
is. 
So there are a couple of things 

295
00:14:31,520 --> 00:14:36,800
here and one of them is that we 
have a large opportunity for 

296
00:14:36,800 --> 00:14:40,040
optimization because you have 
these like very large costs. 

297
00:14:40,040 --> 00:14:43,360
It was like obviously we're 
doing something that is so 

298
00:14:43,360 --> 00:14:45,160
manual. 
So it's like very, very good 

299
00:14:45,160 --> 00:14:47,200
news. 
Because we just a little. 

300
00:14:47,200 --> 00:14:50,760
Bit of investment in that space 
probably can put you ahead of 

301
00:14:50,760 --> 00:14:51,840
things. 
But the other thing is that 

302
00:14:51,840 --> 00:14:54,840
there's a significant probably, 
you know, like this is just a 

303
00:14:54,840 --> 00:14:58,360
small investment can lead you to
a significant short term type of

304
00:14:58,360 --> 00:15:01,280
benefits, but it's more very 
likely that you can have layers 

305
00:15:01,280 --> 00:15:03,360
of that. 
So just on this thing. 

306
00:15:03,360 --> 00:15:06,400
But the other one is we 
shouldn't just be looking at the

307
00:15:06,400 --> 00:15:08,600
cost. 
So when we say this is the 

308
00:15:08,600 --> 00:15:12,240
amount of time we spend trying 
to gather the information, we 

309
00:15:12,240 --> 00:15:16,080
should be also looking and what 
do we do with the result of that

310
00:15:16,080 --> 00:15:18,640
activity? 
Because the decisions that we 

311
00:15:18,640 --> 00:15:22,880
make is a consequence of reading
the cup are much more costly 

312
00:15:22,880 --> 00:15:25,000
than the time we spend actually 
reading the code. 

313
00:15:25,360 --> 00:15:27,600
And this is where it becomes 
really exciting. 

314
00:15:28,120 --> 00:15:33,720
So today, for example, it's 
actually very rare to find a 

315
00:15:33,720 --> 00:15:37,600
team that is able to provide an 
accurate depictions of their 

316
00:15:37,600 --> 00:15:40,400
system. 
So let's say you know, an 

317
00:15:40,400 --> 00:15:43,640
architecture diagram, people 
will be presenting architecture 

318
00:15:43,640 --> 00:15:45,920
diagrams, but then I always ask 
them. 

319
00:15:45,920 --> 00:15:49,080
So like usually those are 
manually put together. 

320
00:15:49,560 --> 00:15:52,560
And so I asked them, would you 
bet your salary that the diagram

321
00:15:52,560 --> 00:15:56,040
is actually real? 
And nobody would take the bet 

322
00:15:56,720 --> 00:15:59,000
because it would be, everybody 
knows. 

323
00:15:59,080 --> 00:16:02,080
Yeah, but it's not expected to 
be actually that real, right? 

324
00:16:02,080 --> 00:16:04,960
And then the question is, well, 
why not see if you take this as 

325
00:16:04,960 --> 00:16:08,200
the basis for any decision 
making, shouldn't it be real? 

326
00:16:08,920 --> 00:16:12,040
And put it the other way around.
I'm in an engineering space, 

327
00:16:12,040 --> 00:16:14,720
right? 
I'm not betting on, you know, 

328
00:16:14,720 --> 00:16:17,680
what's going to happen tomorrow.
I'm, I'm in an engineering space

329
00:16:17,680 --> 00:16:19,680
where I'm trying to build 
systems that are kind of 

330
00:16:19,680 --> 00:16:23,400
reliable and are meaningful and 
they produce some value. 

331
00:16:23,840 --> 00:16:29,200
So not knowing what the current 
system looks like, probably not 

332
00:16:29,200 --> 00:16:32,840
a good variable to have. 
So that's what we're saying is 

333
00:16:32,840 --> 00:16:37,800
that well there is a systematic 
way to know about your system at

334
00:16:37,800 --> 00:16:40,040
much lower cost than it happens 
today. 

335
00:16:40,480 --> 00:16:43,600
And this then has far reaching 
consequences. 

336
00:16:44,040 --> 00:16:46,840
This is the essence of multiple 
development is we're saying 

337
00:16:47,160 --> 00:16:50,840
we're going to take this time 
that we spent today or the 

338
00:16:50,840 --> 00:16:54,440
developers spent today reading 
and we're going to take some of 

339
00:16:54,440 --> 00:16:57,240
it, some of this effort. 
I'm going to build tools through

340
00:16:57,240 --> 00:17:00,840
which we read and then we're 
going to make decisions on that.

341
00:17:00,840 --> 00:17:05,359
But these tools will provide an 
unmediated lens through the 

342
00:17:05,359 --> 00:17:09,720
system because often people say,
shouldn't we trust, you know, 

343
00:17:09,720 --> 00:17:12,240
technical people that they know 
what they're doing? 

344
00:17:12,960 --> 00:17:14,640
We should trust technical 
people. 

345
00:17:14,640 --> 00:17:19,079
There are some problems that 
shouldn't be decomposed or seen 

346
00:17:19,079 --> 00:17:21,839
as trust problems. 
So an example that I always give

347
00:17:21,839 --> 00:17:24,040
is, let's say that I'm 
interested in what's the 

348
00:17:24,040 --> 00:17:26,720
temperature outside. 
Is that a trust problem? 

349
00:17:26,720 --> 00:17:29,560
Should I go and ask someone and 
trust that someone? 

350
00:17:29,560 --> 00:17:32,360
Or is it just should I go and 
look at the thermometer which is

351
00:17:32,360 --> 00:17:35,720
outside my window here and if I 
look at the thermometer which is

352
00:17:35,720 --> 00:17:39,120
outside my window, does it mean 
that I'm not trusting the person

353
00:17:39,120 --> 00:17:41,600
next to me? 
No, because that is not a trust 

354
00:17:41,600 --> 00:17:44,160
problem, right. 
So now the the issue with 

355
00:17:44,160 --> 00:17:46,920
reading is that nobody can read 
the whole system. 

356
00:17:47,320 --> 00:17:51,840
So if nobody can read the whole 
system, it means that most 

357
00:17:51,840 --> 00:17:54,600
information that we will basing 
our decisions on are going to be

358
00:17:54,600 --> 00:17:57,160
inferred. 
So beliefs basically. 

359
00:17:57,640 --> 00:18:01,560
So the consequence is that at 
some point your beliefs will be 

360
00:18:01,560 --> 00:18:05,040
significantly, you know, apart 
from the actual, the reality of 

361
00:18:05,040 --> 00:18:07,960
the system and you'll find 
yourself dancing around the fire

362
00:18:08,440 --> 00:18:11,440
to make rain happen. 
So it's, it's really like that. 

363
00:18:11,440 --> 00:18:15,720
So for example, we we're writing
a book with Simon Worley, which 

364
00:18:15,720 --> 00:18:19,200
tries to summarize what we've 
learned about multiple 

365
00:18:19,200 --> 00:18:20,960
development. 
And one of the case studies that

366
00:18:20,960 --> 00:18:22,480
we're showing there is an actual
system. 

367
00:18:22,840 --> 00:18:26,840
It's an important data pipeline 
in a significant telecom 

368
00:18:26,840 --> 00:18:30,160
company. 
And their issue was that this 

369
00:18:30,160 --> 00:18:33,080
pipeline was too slow. 
So everybody knew it all the way

370
00:18:33,080 --> 00:18:35,600
to the C level. 
They had a large initiative 

371
00:18:36,080 --> 00:18:39,000
demanding that, well, we should 
improve the performance of this 

372
00:18:39,000 --> 00:18:41,760
one, but like significantly, 
let's say an order of magnitude 

373
00:18:41,760 --> 00:18:43,440
or so. 
This is what they wanted. 

374
00:18:43,440 --> 00:18:46,320
Now they worked on it for three 
years and after three years, the

375
00:18:46,320 --> 00:18:49,320
performance was exactly the same
as it was three years before. 

376
00:18:49,880 --> 00:18:53,520
And so it was like somebody 
looked at the problem and says, 

377
00:18:53,880 --> 00:18:57,240
well, how come? 
So when we looked at the system,

378
00:18:57,640 --> 00:18:59,640
we asked them what could you 
draw the system for us? 

379
00:18:59,640 --> 00:19:02,560
And then they drew four boxes 
and said these are the data 

380
00:19:02,560 --> 00:19:06,080
pipeline looks like. 
So the way we always look at the

381
00:19:06,080 --> 00:19:09,480
problem like that is we're going
to build a tool that shows us 

382
00:19:09,520 --> 00:19:12,200
that system kind of like data 
science if you want, like we 

383
00:19:12,200 --> 00:19:14,600
start from the problem and then 
build a tool specifically for 

384
00:19:14,600 --> 00:19:16,880
that problem. 
In their case, they had like 

385
00:19:16,880 --> 00:19:20,000
custom made technology that was 
doing transformations and the 

386
00:19:20,000 --> 00:19:23,000
local platform that didn't have 
any kind of analysis tools and 

387
00:19:23,000 --> 00:19:25,480
so on. 
So we had to build interesting 

388
00:19:25,720 --> 00:19:28,360
analysis tools so that we can 
recover some sort of data 

389
00:19:28,360 --> 00:19:30,360
lineage. 
But while in this process, very 

390
00:19:30,360 --> 00:19:33,280
soon, we went back and said, 
well, you know, like the output 

391
00:19:33,280 --> 00:19:36,600
from the first box doesn't seem 
to match the input for the other

392
00:19:36,600 --> 00:19:38,400
ones. 
And then we asked, so Are you 

393
00:19:38,400 --> 00:19:40,680
sure you don't have another 
thing here in between? 

394
00:19:41,040 --> 00:19:44,400
And they discovered the whole 
system that they were not aware 

395
00:19:44,400 --> 00:19:46,920
that it was there. 
And and it has nothing. 

396
00:19:46,920 --> 00:19:49,360
To do with the ability like 
engineering necessarily 

397
00:19:49,360 --> 00:19:52,080
abilities directly, because 
these were like good engineers. 

398
00:19:52,400 --> 00:19:55,960
The problem is that when you 
work in teams and silos right 

399
00:19:55,960 --> 00:19:58,920
when things move between, the 
most interesting problems are 

400
00:19:58,920 --> 00:20:00,880
always in between the things 
that you already know. 

401
00:20:01,240 --> 00:20:02,960
Right. 
So if you're not prepared to see

402
00:20:02,960 --> 00:20:06,720
those interspaces, you're going 
to miss the interesting 

403
00:20:06,920 --> 00:20:10,120
opportunities, right? 
So the issue in their case was 

404
00:20:10,120 --> 00:20:13,600
they could enumerate 4 things 
and they had actually 5. 

405
00:20:14,360 --> 00:20:17,760
But if even at this large coarse
grain level, you're not able to 

406
00:20:17,760 --> 00:20:21,000
see the whole system, you're 
basically in no position to 

407
00:20:21,000 --> 00:20:23,400
optimize anything. 
So it doesn't matter how much 

408
00:20:23,400 --> 00:20:27,240
effort you're going to spend 
because the problem is not, oh, 

409
00:20:27,360 --> 00:20:30,280
are you able to change? 
The problem is I don't see the 

410
00:20:30,280 --> 00:20:33,440
system in the 1st place. 
Even if I'm convinced I'm 

411
00:20:33,440 --> 00:20:36,360
actually understanding my 
system, I'm not seeing it. 

412
00:20:36,760 --> 00:20:39,800
Once that's the case, that's the
first problem to solve. 

413
00:20:39,800 --> 00:20:42,200
And I would say, OK, but this 
sounds like such a ridiculous 

414
00:20:42,200 --> 00:20:44,600
case. 
But you'd be surprised how often

415
00:20:44,600 --> 00:20:48,160
this happens even in places 
where which people say, oh, I 

416
00:20:48,160 --> 00:20:50,400
actually have a much better 
grasp of my system. 

417
00:20:50,840 --> 00:20:53,520
You'll go and ask a few couple 
like more detail. 

418
00:20:53,520 --> 00:20:57,280
Go to three levels deeper and 
you'll find yourself in the 

419
00:20:57,280 --> 00:20:59,440
place where people Draw 
Something on the whiteboard. 

420
00:21:00,040 --> 00:21:02,760
Whenever people Draw Something 
on the whiteboard about the 

421
00:21:02,760 --> 00:21:07,120
existing system, they depict 
their belief about the system 

422
00:21:07,640 --> 00:21:11,240
rather than the system itself. 
This is really important because

423
00:21:11,240 --> 00:21:13,840
if you can't distinguish between
these ones, you're going to find

424
00:21:13,840 --> 00:21:18,000
yourself being in a make belief 
space and then your actions will

425
00:21:18,000 --> 00:21:20,560
have no impact on the reality. 
Yeah. 

426
00:21:20,800 --> 00:21:23,720
So I think so many interesting 
things that you mentioned just 

427
00:21:23,720 --> 00:21:25,760
now, right? 
So I think one major insights 

428
00:21:25,760 --> 00:21:28,360
that I could listen from what 
you just said, right? 

429
00:21:28,560 --> 00:21:32,120
Software development is actually
kind of like a decision making 

430
00:21:32,120 --> 00:21:35,080
process, right? 
And I think through writing 

431
00:21:35,080 --> 00:21:38,040
code, you know, through syntax, 
through whatever programming 

432
00:21:38,040 --> 00:21:40,840
language that you use, it can be
suboptimal, right? 

433
00:21:40,840 --> 00:21:44,880
Because whatever that we want to
create, we are kind of like 

434
00:21:44,880 --> 00:21:48,000
limited by the tools and the 
kind of like the thing that we 

435
00:21:48,000 --> 00:21:50,760
express ourselves in, right? 
And I think we all know as a 

436
00:21:50,760 --> 00:21:54,760
software developer, once you get
to write your code in a longer 

437
00:21:54,760 --> 00:21:57,640
time, it's very, very difficult 
to actually understand what is 

438
00:21:57,640 --> 00:21:59,960
going on, especially it can be 
very abstract, right? 

439
00:21:59,960 --> 00:22:02,680
And so many people working 
together in the team, some are 

440
00:22:02,680 --> 00:22:05,640
new, maybe some have left, maybe
even like they don't talk to 

441
00:22:05,640 --> 00:22:07,760
each other. 
So there are so many different 

442
00:22:07,760 --> 00:22:09,600
ways of how software is being 
written. 

443
00:22:09,600 --> 00:22:11,840
And I think this is going to be 
a challenge, right? 

444
00:22:12,160 --> 00:22:15,440
And plus, you may think that AI 
will solve it, but AI, you know,

445
00:22:15,440 --> 00:22:18,200
that could also hallucinate by 
reading your code, right? 

446
00:22:18,200 --> 00:22:21,160
So some of these definitely is 
optimal and I can really 

447
00:22:21,160 --> 00:22:23,600
understand because now I'm 
currently, even though I'm 

448
00:22:23,600 --> 00:22:25,440
currently working in a small 
startup, right? 

449
00:22:25,440 --> 00:22:27,880
We have written code for, I 
don't know, the past few months,

450
00:22:28,240 --> 00:22:31,960
there are still things that I 
think I don't fully trust myself

451
00:22:31,960 --> 00:22:33,680
and knowing the system end to 
end, right? 

452
00:22:33,680 --> 00:22:37,120
Just like what you mentioned, if
we asked to to come up with an 

453
00:22:37,120 --> 00:22:40,160
architecture diagram, yeah, we 
can kind of like draw high level

454
00:22:40,160 --> 00:22:43,440
picture, but we are never sure 
because the code is the fact, 

455
00:22:43,440 --> 00:22:45,200
right? 
So sometimes the code doesn't 

456
00:22:45,200 --> 00:22:47,320
reflect what you believe, like 
what you said. 

457
00:22:47,880 --> 00:22:51,120
So I think this also leads us to
another thing that you mentioned

458
00:22:51,120 --> 00:22:52,720
in your writing with Simon 
Wardley. 

459
00:22:52,760 --> 00:22:56,160
The problem with legacy system, 
like does it here, I think 

460
00:22:56,160 --> 00:22:59,760
doesn't just refer to old, 
really old systems, but software

461
00:22:59,760 --> 00:23:02,200
that you wrote maybe a few 
months ago can also be 

462
00:23:02,880 --> 00:23:05,920
categorized as legacy. 
So tell us this legacy problem, 

463
00:23:06,000 --> 00:23:08,000
why it's going to be a big 
challenge for us. 

464
00:23:08,920 --> 00:23:12,760
So we've internalized this idea 
that once we write the systems, 

465
00:23:13,120 --> 00:23:15,040
we can't really make sense of 
them anymore. 

466
00:23:15,560 --> 00:23:18,800
Not really. 
So in rare occasions, man, 

467
00:23:18,800 --> 00:23:21,840
there's actually like people are
very like very joyful. 

468
00:23:21,840 --> 00:23:25,000
But the vast majority of 
situations of the reports out 

469
00:23:25,000 --> 00:23:26,680
there. 
So we for example, in the book 

470
00:23:26,680 --> 00:23:29,520
released, I don't know, a 
paragraph worth of all sorts of 

471
00:23:29,520 --> 00:23:32,560
different kinds of reports from 
that we took from industries, 

472
00:23:32,560 --> 00:23:34,960
blog posts and reports here and 
reports there. 

473
00:23:35,280 --> 00:23:37,840
Of course, those are not 
necessarily super systematic, 

474
00:23:38,120 --> 00:23:41,040
but they all point to exactly 
one problem. 

475
00:23:41,040 --> 00:23:43,960
Like legacy is everywhere and 
it's very expensive and it's 

476
00:23:43,960 --> 00:23:46,120
very hard. 
Like all these reports saying, 

477
00:23:46,120 --> 00:23:50,520
oh, 7080% of or whatever the 
number is of the migration 

478
00:23:50,520 --> 00:23:52,280
projects are, are failing, 
right. 

479
00:23:52,320 --> 00:23:55,520
And that's really like the 
reason if you look back into why

480
00:23:55,520 --> 00:23:58,560
this is the case, it's because 
we don't see the system. 

481
00:23:58,920 --> 00:24:01,640
The interesting thing is that as
far as people see the system, 

482
00:24:02,000 --> 00:24:05,120
they have no problem making 
better decisions. 

483
00:24:05,320 --> 00:24:08,360
Absolutely no problem. 
That's the the great thing about

484
00:24:08,360 --> 00:24:12,880
this is that the skills already 
are in house because we we just 

485
00:24:12,880 --> 00:24:16,360
have to apply the skills that we
use to automate other people's 

486
00:24:16,360 --> 00:24:19,400
decision making. 
We just can't apply them to our 

487
00:24:19,480 --> 00:24:22,360
work. 
It's pretty much like that now. 

488
00:24:22,520 --> 00:24:25,600
The thing with legacy? 
Is you're right, like legacy 

489
00:24:25,600 --> 00:24:29,400
doesn't necessarily have to mean
very old, but in fact it 

490
00:24:29,400 --> 00:24:31,360
shouldn't even mean something 
that is bad. 

491
00:24:31,720 --> 00:24:34,160
Legacy should have a positive 
meaning, right? 

492
00:24:34,160 --> 00:24:37,600
So in everywhere else, like 
legacy has this positive 

493
00:24:37,600 --> 00:24:40,960
connotation. 
You want the legacy of most of 

494
00:24:40,960 --> 00:24:43,680
the time, right, But not in 
software. 

495
00:24:43,760 --> 00:24:47,400
Software people hear legacy. 
It was oh, so for example, one 

496
00:24:47,400 --> 00:24:49,280
other question I asked 
developers, he said, well, do 

497
00:24:49,280 --> 00:24:51,040
you love working with legacy 
systems? 

498
00:24:51,440 --> 00:24:55,160
And people definitely don't 
associate legacy and love, you 

499
00:24:55,160 --> 00:24:59,520
know, they don't find a sentence
that would make make these two 

500
00:24:59,520 --> 00:25:03,200
words work together in the same 
time at the same time. 

501
00:25:03,200 --> 00:25:06,120
So, and that's a. 
Problem because legacy means 

502
00:25:06,120 --> 00:25:08,400
value. 
It is the thing that produces 

503
00:25:08,400 --> 00:25:10,760
value right now. 
Now the other thing about 

504
00:25:10,800 --> 00:25:16,600
systems is that right now we're 
looking at systems often as just

505
00:25:16,600 --> 00:25:20,240
transforming input into output. 
So this is one way I call this 

506
00:25:20,240 --> 00:25:23,120
one a utilitarian view on 
software systems. 

507
00:25:23,640 --> 00:25:26,560
However, most software systems 
have replaced some sort of 

508
00:25:26,560 --> 00:25:29,840
manual work that happened 
before, and we used to call that

509
00:25:29,840 --> 00:25:34,080
work knowledge work. 
So obviously these systems, we 

510
00:25:34,080 --> 00:25:37,160
can also look at them as encoded
knowledge when you look at the 

511
00:25:37,160 --> 00:25:39,040
system as encoding knowledge, 
right? 

512
00:25:39,200 --> 00:25:41,720
And then we start to talk about 
knowledge management. 

513
00:25:42,080 --> 00:25:44,920
So that means exploiting the 
knowledge, internalizing an 

514
00:25:44,920 --> 00:25:47,440
organization to create a new 
value. 

515
00:25:47,800 --> 00:25:50,840
Then all of a sudden it means 
it's kind of important given 

516
00:25:50,840 --> 00:25:54,800
that in any meaningful software 
organization, the core knowledge

517
00:25:54,800 --> 00:25:58,240
is not in people's heads and is 
not in documents and not in 

518
00:25:58,240 --> 00:26:00,960
emails or other forms of 
communication. 

519
00:26:01,040 --> 00:26:04,280
They are in systems, which means
that any knowledge management 

520
00:26:04,400 --> 00:26:09,440
based activity has to start from
the core system, from inside the

521
00:26:09,440 --> 00:26:11,480
system. 
And that's the opportunity. 

522
00:26:11,480 --> 00:26:15,000
And today people look at legacy 
systems and they see, wow, this 

523
00:26:15,000 --> 00:26:17,400
is an impediment. 
It drags me down, I can't move 

524
00:26:17,400 --> 00:26:19,600
right. 
So This is why incumbents have 

525
00:26:19,600 --> 00:26:23,400
difficulties when newcomers come
into a space because they can't 

526
00:26:23,400 --> 00:26:25,400
move their systems, while 
newcomers don't have that 

527
00:26:25,400 --> 00:26:28,480
problem until newcomers become 
large enough and then they have 

528
00:26:28,480 --> 00:26:30,400
the problem with the new space 
of newcomers. 

529
00:26:30,760 --> 00:26:34,000
But if you would be able to 
change the system fast, then all

530
00:26:34,000 --> 00:26:37,480
of a sudden the legacy would 
become a competitive advantage 

531
00:26:37,920 --> 00:26:40,640
and not an impediment. 
That's where we want to be. 

532
00:26:40,800 --> 00:26:43,880
So today, whenever people talk 
about legacy, they just talk 

533
00:26:43,880 --> 00:26:49,000
about large costs, very high 
risks, and the difficulty of 

534
00:26:49,000 --> 00:26:52,280
ever seeing inside. 
And I think we should be moving 

535
00:26:52,280 --> 00:26:55,280
in a world where legacy is 
actually a positive thing that 

536
00:26:55,280 --> 00:26:58,000
we should be able to change it 
and will. 

537
00:26:58,440 --> 00:27:01,000
So this is one of you from an 
organizational point of view, 

538
00:27:01,000 --> 00:27:03,200
First of all, just see a single 
organization point of view. 

539
00:27:03,680 --> 00:27:06,640
The idea would be take legacy 
from something that looks like a

540
00:27:06,640 --> 00:27:09,640
negative on the balance sheet to
transform it into a value 

541
00:27:09,640 --> 00:27:12,440
creation opportunity. 
Let's take an even larger 

542
00:27:12,680 --> 00:27:15,280
perspective here. 
You know, let's go to like 

543
00:27:15,280 --> 00:27:18,400
societal level. 
So right now we create software 

544
00:27:18,400 --> 00:27:21,320
faster and faster. 
So year over year the software 

545
00:27:21,320 --> 00:27:24,720
grows super linearly, but at the
same time, we're unable to 

546
00:27:24,720 --> 00:27:28,160
recycle all systems. 
So from this point of view, we 

547
00:27:28,160 --> 00:27:30,320
behave no differently from the 
plastic industry. 

548
00:27:30,960 --> 00:27:33,680
It's not sustainable. 
And So what does it mean to 

549
00:27:33,680 --> 00:27:36,800
recycle a system? 
Recycle means to take it apart 

550
00:27:36,800 --> 00:27:38,400
and refurbish it between your 
purposes. 

551
00:27:38,800 --> 00:27:42,160
But of course, before you can 
take a system apart, you first 

552
00:27:42,160 --> 00:27:45,440
have to understand the parts. 
But if the way I understand the 

553
00:27:45,440 --> 00:27:48,880
parts depends on me reading and 
I have a fundamental problem 

554
00:27:48,880 --> 00:27:50,960
because reading is kept at a 
constant speed. 

555
00:27:51,280 --> 00:27:54,000
So on the one hand I have a 
super linear growth, on the 

556
00:27:54,000 --> 00:27:56,520
other hand I have a constant 
recyclability function. 

557
00:27:57,120 --> 00:27:59,160
It can't work. 
It literally cannot work. 

558
00:27:59,760 --> 00:28:02,440
So it's not sustainable. 
So the only alternative here is 

559
00:28:02,440 --> 00:28:06,520
to make it so that I can read it
about my system so I understand 

560
00:28:06,520 --> 00:28:11,640
the parts, regardless of how 
large the parts are and how 

561
00:28:11,640 --> 00:28:14,800
large the system is. 
So the only way to achieve that 

562
00:28:14,800 --> 00:28:17,240
is through tools. 
But now of course we had these 

563
00:28:17,240 --> 00:28:19,600
other problem with of course we 
want the tools. 

564
00:28:19,880 --> 00:28:21,560
The problem is that software is 
contextual. 

565
00:28:21,560 --> 00:28:24,920
So the only way to solve this 
problem is by making tools to 

566
00:28:24,920 --> 00:28:28,280
also adapt to that context. 
That's again leads us back to 

567
00:28:28,280 --> 00:28:31,080
the same little tiny thing. 
So, you know, this little tiny 

568
00:28:31,080 --> 00:28:33,200
detail of, oh, where, what do 
developers do? 

569
00:28:33,600 --> 00:28:35,360
Look at how many implications it
has. 

570
00:28:35,360 --> 00:28:38,640
On the one hand, we talk about 
large costs associated with it. 

571
00:28:38,960 --> 00:28:42,000
On the other hand, we talk about
is this the opportunity for 

572
00:28:42,000 --> 00:28:45,080
creating new value like business
on the business side? 

573
00:28:45,120 --> 00:28:47,040
Can I refurbish my system for 
that? 

574
00:28:47,400 --> 00:28:51,080
But now if I just take an even 
larger perspective, I see, well,

575
00:28:51,080 --> 00:28:53,600
it's actually not sustainable 
and we're moving the whole 

576
00:28:53,600 --> 00:28:57,840
economy on top of software. 
At least this new world should 

577
00:28:57,840 --> 00:29:00,960
be sustainable, because we still
have difficulties making the old

578
00:29:00,960 --> 00:29:04,040
world kind of work. 
I think very, very interesting 

579
00:29:04,040 --> 00:29:05,720
perspective, right? 
So I think when we talk about 

580
00:29:05,720 --> 00:29:08,320
legacy, we always associate it 
with bad things, you know, a lot

581
00:29:08,320 --> 00:29:10,560
of technical debt, very 
difficult to change. 

582
00:29:10,840 --> 00:29:12,080
We just need to rewrite it, 
right? 

583
00:29:12,080 --> 00:29:13,920
So that's always the excuse of 
developers. 

584
00:29:13,920 --> 00:29:16,600
We just need to rewrite it. 
But obviously, like what you 

585
00:29:16,600 --> 00:29:19,360
mentioned, I fully agree, the 
challenge is actually to 

586
00:29:19,360 --> 00:29:22,480
understand the encoded knowledge
inside the code inside the 

587
00:29:22,480 --> 00:29:25,120
system, right? 
And it could spend, you know, 

588
00:29:25,120 --> 00:29:27,280
across multiple different 
places, right? 

589
00:29:27,520 --> 00:29:30,240
And for me in the past, when I 
joined a new organization, a new

590
00:29:30,240 --> 00:29:32,840
team that have existing system 
running, right? 

591
00:29:32,840 --> 00:29:35,040
In the past, what I tried to do 
is basically to use 

592
00:29:35,040 --> 00:29:38,560
instrumentation, you know, going
to observability world, you have

593
00:29:38,560 --> 00:29:42,040
telemetry, you have metrics, you
have probably all these trace 

594
00:29:42,040 --> 00:29:44,720
spans that you can understand 
how the system interact with 

595
00:29:44,720 --> 00:29:46,640
each other. 
Sometimes if the tool can 

596
00:29:46,640 --> 00:29:49,400
generate, you know, like 
automated diagram, that's also 

597
00:29:49,400 --> 00:29:52,680
one way how I did that. 
But it's never fully enough, 

598
00:29:52,680 --> 00:29:54,320
right? 
Because it's always challenging.

599
00:29:54,440 --> 00:29:57,680
And sometimes if you have access
to the data, you can also deduce

600
00:29:57,680 --> 00:30:00,600
it from the data, but we don't 
know just by looking at data, 

601
00:30:00,600 --> 00:30:03,280
also not fully accurate because 
it's just the output, right? 

602
00:30:03,280 --> 00:30:05,840
You don't know how it comes up, 
the calculations and all that. 

603
00:30:06,080 --> 00:30:07,400
So definitely this is a 
challenge. 

604
00:30:07,480 --> 00:30:10,400
And I kind of laugh when you 
mentioned we are like a plastic 

605
00:30:10,400 --> 00:30:12,320
industry. 
We keep churning software, but 

606
00:30:12,320 --> 00:30:14,960
we cannot recycle them. 
I think it's going to be a major

607
00:30:14,960 --> 00:30:17,040
challenge if we continue this 
path, right? 

608
00:30:17,720 --> 00:30:21,280
Though maybe let's go into the 
multiple development, you know, 

609
00:30:21,280 --> 00:30:22,840
maybe workflow, let's say, 
right? 

610
00:30:22,960 --> 00:30:26,040
So for people, because it's 
still sound abstract for some of

611
00:30:26,040 --> 00:30:29,920
us, so how would you explain, 
you know the workflow working 

612
00:30:29,920 --> 00:30:32,920
with multiple development? 
So you let's start with 

613
00:30:32,920 --> 00:30:34,840
something you already mentioned.
So let's start with 

614
00:30:34,840 --> 00:30:37,120
observability. 
The interesting thing with 

615
00:30:37,120 --> 00:30:40,240
observability, of course you can
put the the default metrics you 

616
00:30:40,240 --> 00:30:44,600
know and monitoring and so on 
that level CPU and disk usage 

617
00:30:45,120 --> 00:30:47,400
and tells you something, but not
really interesting things, 

618
00:30:47,400 --> 00:30:49,200
right? 
But then you can start to have, 

619
00:30:49,240 --> 00:30:52,680
oh, let's add some signals which
are maybe technology specific 

620
00:30:52,680 --> 00:30:54,800
all over this. 
I can start to learn new things 

621
00:30:55,160 --> 00:30:58,240
like which services are being 
used, but then I can increase 

622
00:30:58,240 --> 00:31:01,240
the specificity of it. 
Well, let me add the main 

623
00:31:01,240 --> 00:31:04,080
specific, like business specific
kind of signal. 

624
00:31:04,080 --> 00:31:07,040
So then I can, you know, answer 
business problems you like how 

625
00:31:07,040 --> 00:31:09,920
the business flows actually are 
representing my system. 

626
00:31:09,920 --> 00:31:13,320
So that becomes really exciting.
But notice here how the value 

627
00:31:13,920 --> 00:31:16,640
increases with the specificity 
of the signal. 

628
00:31:17,120 --> 00:31:19,200
So that signal is a little tiny 
analysis. 

629
00:31:19,720 --> 00:31:22,840
There's another place where we 
use little tiny analysis. 

630
00:31:23,240 --> 00:31:26,440
This is testing. 
So in testing you have a problem

631
00:31:26,880 --> 00:31:32,960
and then you stop, you write a 
test and in the test you say, 

632
00:31:32,960 --> 00:31:36,840
well, this is the setup and this
is what the condition should be.

633
00:31:36,920 --> 00:31:40,880
This condition captures value. 
This assertion here says this is

634
00:31:40,880 --> 00:31:44,960
valuable and the consequences 
that as soon as a single test 

635
00:31:44,960 --> 00:31:48,040
fails, people stop and fix it in
most of the time today, right. 

636
00:31:48,320 --> 00:31:50,720
So you're not going to deploy if
the if the tests are not green. 

637
00:31:51,200 --> 00:31:53,800
So that's pretty nice because 
you're stopping the line to 

638
00:31:53,800 --> 00:31:55,840
deploy even if a single test 
fails. 

639
00:31:56,440 --> 00:31:59,080
Now if you switch. 
To let's say for example, static

640
00:31:59,080 --> 00:32:02,400
analysis, again, static analysis
like a test is nothing with an 

641
00:32:02,400 --> 00:32:05,440
analysis tool, right? 
It just takes functionality and 

642
00:32:05,440 --> 00:32:08,040
transformed into red and green 
types of things. 

643
00:32:08,400 --> 00:32:10,120
So it's kind of interesting, 
right? 

644
00:32:10,160 --> 00:32:12,120
But static analysis is also an 
analysis. 

645
00:32:12,120 --> 00:32:14,560
It takes something, in this case
takes static source code. 

646
00:32:14,920 --> 00:32:18,080
It also produces red and green 
type of thing if I look into a 

647
00:32:18,080 --> 00:32:20,120
range rule or something. 
But then I can have. 

648
00:32:20,120 --> 00:32:23,600
Systems where I have, you know, 
thousands of tests or 10s of 

649
00:32:23,600 --> 00:32:26,320
thousands of tests, all green 
and then I have on these other 

650
00:32:26,320 --> 00:32:28,400
places I have 10s of thousands 
of warnings. 

651
00:32:28,880 --> 00:32:32,560
How come is it like this team 
all of a sudden, you know, lost 

652
00:32:32,560 --> 00:32:34,800
interest in qualities like what 
happened? 

653
00:32:34,800 --> 00:32:37,880
Like they have two minds. 
Like like, why is it? 

654
00:32:37,880 --> 00:32:39,880
Well, The thing is, just look at
the. 

655
00:32:39,880 --> 00:32:44,440
Difference in how these two 
analysis have been produced. 

656
00:32:44,840 --> 00:32:47,400
So the tests have been created 
within the context of the 

657
00:32:47,480 --> 00:32:50,600
system. 
After you know the problem, the 

658
00:32:50,600 --> 00:32:53,320
static analysis typically is 
downloaded from somewhere. 

659
00:32:53,480 --> 00:32:55,840
So you're downloading it from 
your system for your system. 

660
00:32:56,160 --> 00:32:58,360
And I don't know, you're doing, 
I don't know, maybe banking or 

661
00:32:58,360 --> 00:33:00,440
so. 
And I'm working in embedded 

662
00:33:00,440 --> 00:33:02,800
systems. 
If now all of a sudden we're 

663
00:33:02,800 --> 00:33:05,520
using the same analysis, you use
the same, I use the same. 

664
00:33:06,000 --> 00:33:08,800
So by definition, that analysis 
must capture what's common 

665
00:33:08,800 --> 00:33:11,880
between us, which also by 
definition, it doesn't capture 

666
00:33:11,880 --> 00:33:13,720
what's interesting about our 
systems. 

667
00:33:13,720 --> 00:33:17,720
Of course you don't want to mess
up nulls, you know, send create 

668
00:33:17,720 --> 00:33:19,560
no pointer exceptions. 
Of course you don't want to do 

669
00:33:19,560 --> 00:33:21,800
that. 
But that's such a terribly low 

670
00:33:22,200 --> 00:33:24,240
value, right? 
Like you're living, the rest of 

671
00:33:24,240 --> 00:33:28,680
the 99.99% of value creation 
right is left completely 

672
00:33:28,680 --> 00:33:31,200
unchecked. 
So these things the static. 

673
00:33:31,200 --> 00:33:32,720
Analysis that we download from 
the web. 

674
00:33:32,960 --> 00:33:36,480
They solve a problem, but they 
literally solve someone else's 

675
00:33:36,480 --> 00:33:39,200
problem. 
So the alternative is we can 

676
00:33:39,200 --> 00:33:41,680
take the same thing that work 
for testing, the same thing that

677
00:33:41,680 --> 00:33:44,800
works for observability, but it 
literally applied to everything,

678
00:33:45,240 --> 00:33:47,600
including the tools that we look
through. 

679
00:33:48,080 --> 00:33:52,080
So not only checks of sorts, but
also the tools that we visually 

680
00:33:52,080 --> 00:33:53,880
view things or edit things 
through. 

681
00:33:54,240 --> 00:33:55,920
And this is also kind of 
interesting because it. 

682
00:33:55,920 --> 00:33:58,080
Leads us to into the development
experience base. 

683
00:33:58,360 --> 00:34:02,960
At the very beginning, you 
mentioned the IDEI in IDE stands

684
00:34:02,960 --> 00:34:06,400
for integrated, which basically 
means every time you leave the 

685
00:34:06,400 --> 00:34:10,520
environment, the eye has fed. 
And today, like people use these

686
00:34:10,520 --> 00:34:13,520
things, which they're called ID 
ES, and they spend like 70% of 

687
00:34:13,520 --> 00:34:16,040
the time in the web browser. 
This is really funny. 

688
00:34:16,520 --> 00:34:19,480
And then The thing is, right. 
The question is, well, how do 

689
00:34:19,480 --> 00:34:21,719
you make this development 
experience work? 

690
00:34:21,719 --> 00:34:25,760
And one thing to realize here is
that you cannot experience 

691
00:34:25,760 --> 00:34:29,560
anything in a system except 
through some sort of a tool. 

692
00:34:29,840 --> 00:34:32,360
There's no way for me to sense 
anything in a system. 

693
00:34:32,360 --> 00:34:35,080
Maybe if I'm looking at the 
code, maybe I see an editor? 

694
00:34:35,600 --> 00:34:37,760
Or if I'm looking at an object, 
maybe I was going to see any 

695
00:34:37,760 --> 00:34:39,320
object inspector or something 
like that. 

696
00:34:39,320 --> 00:34:41,159
So there's always a tool in 
between. 

697
00:34:41,400 --> 00:34:43,719
But the interesting thing is, I 
mean, what's something we know 

698
00:34:43,719 --> 00:34:47,239
from data science now is that if
you just change the way you. 

699
00:34:47,239 --> 00:34:49,360
Look. 
You don't change the data. 

700
00:34:49,520 --> 00:34:52,520
You just change the way you look
at it and you can fundamentally 

701
00:34:52,520 --> 00:34:54,679
affect the way people make 
decisions about it. 

702
00:34:55,080 --> 00:34:59,360
And this ability, the ability to
control the thing we look 

703
00:34:59,360 --> 00:35:01,720
through. 
And this also includes the 

704
00:35:01,720 --> 00:35:04,920
signals you observability, the 
static checks, but also like 

705
00:35:04,920 --> 00:35:07,080
visualizations, queries against 
the code. 

706
00:35:07,480 --> 00:35:10,520
And not only against the code, 
but against what if my system is

707
00:35:10,520 --> 00:35:14,280
built now in multiple languages 
and it has a service oriented 

708
00:35:14,280 --> 00:35:17,000
architecture? 
And maybe there's also a bus in 

709
00:35:17,000 --> 00:35:18,560
the middle? 
There are messages being sent 

710
00:35:18,560 --> 00:35:19,480
there. 
And if you look. 

711
00:35:19,480 --> 00:35:23,040
At how those are captured in the
code, there's no dependency 

712
00:35:23,040 --> 00:35:25,320
between this. 
You know, the message name is 

713
00:35:25,320 --> 00:35:28,320
going to be some string 
somewhere and that's going to be

714
00:35:28,480 --> 00:35:30,280
pushed. 
And then somebody will going to 

715
00:35:30,280 --> 00:35:33,280
read that string and is going to
say, yeah, you just send me a 

716
00:35:33,280 --> 00:35:35,160
message, which means that 
there's a dependency there, but 

717
00:35:35,240 --> 00:35:37,280
we don't see it. 
If I just look at the base 

718
00:35:37,280 --> 00:35:39,960
language, I don't see anything 
there, right. 

719
00:35:39,960 --> 00:35:43,680
But if, on the other hand, I 
can, if I elevate the tool to 

720
00:35:43,680 --> 00:35:46,560
understand my framework, for 
example, the framework that I'm 

721
00:35:46,560 --> 00:35:49,960
using, all of a sudden I can 
start to see things that were 

722
00:35:49,960 --> 00:35:52,920
completely invisible before. 
During the pandemic, for 

723
00:35:52,920 --> 00:35:57,600
example, we donated our time for
a government and we built an 

724
00:35:57,600 --> 00:35:59,840
app. 
So we helped build an app, but 

725
00:36:00,040 --> 00:36:03,320
we use the React Native. 
But we didn't, we didn't know 

726
00:36:03,320 --> 00:36:06,440
React Native beforehand. 
So we had to learn and we had 

727
00:36:06,440 --> 00:36:09,360
one month to produce the app. 
So we spent, I don't know, a few

728
00:36:09,360 --> 00:36:12,000
days to learn React Native. 
So we did, and we started to 

729
00:36:12,000 --> 00:36:14,160
build components. 
It was not a complicated app. 

730
00:36:14,720 --> 00:36:18,720
Maybe the second week or so, we 
ended up with the dependency 

731
00:36:18,720 --> 00:36:21,000
between like the cyclic 
dependency between React 

732
00:36:21,000 --> 00:36:24,760
components and we said, OK, 
well, so React is only the most 

733
00:36:24,760 --> 00:36:29,040
used framework in the world. 
So obviously we think maybe 

734
00:36:29,040 --> 00:36:32,440
others have that problem and 
surely, surely enough, right, 

735
00:36:32,440 --> 00:36:33,840
they do. 
So you're good looking to stake 

736
00:36:33,840 --> 00:36:37,400
overflows of the world like 
there's lots of those kinds of 

737
00:36:37,400 --> 00:36:38,560
problems. 
How do I deal with the? 

738
00:36:39,000 --> 00:36:43,160
Particles, but at the. 
Time we said well OK, so again 

739
00:36:43,280 --> 00:36:45,640
this is a very widely used 
framework. 

740
00:36:45,640 --> 00:36:49,000
It looks to be a rather often 
occurring problem. 

741
00:36:49,600 --> 00:36:53,400
Surely there must be some tools 
that will help us detect these 

742
00:36:53,400 --> 00:36:57,000
cycles. 
We didn't find any, so the 

743
00:36:57,040 --> 00:36:58,200
people. 
Have the time. 

744
00:36:58,280 --> 00:37:00,880
And just think about this, is 
take overflow right? 

745
00:37:01,200 --> 00:37:05,840
The proposition of take overflow
is I have a problem in my 

746
00:37:05,840 --> 00:37:06,840
system. 
The. 

747
00:37:06,880 --> 00:37:10,040
Thing that I chose to put 
together tells me. 

748
00:37:10,040 --> 00:37:12,560
Here's the error. 
And the best possible 

749
00:37:12,560 --> 00:37:15,600
engineering solution. 
For me is to take this. 

750
00:37:15,600 --> 00:37:18,520
Problem. 
Go and ask it somewhere else and

751
00:37:18,520 --> 00:37:22,680
hope that someone that has never
seen my system will give me the 

752
00:37:22,680 --> 00:37:25,680
interesting answer. 
This is absolutely. 

753
00:37:25,680 --> 00:37:28,200
Not engineering right? 
So to me the. 

754
00:37:28,200 --> 00:37:32,000
Success of stock overflow and 
stock overflow was asking until 

755
00:37:32,000 --> 00:37:34,360
a couple of years ago this 
interesting question, which was 

756
00:37:34,800 --> 00:37:36,760
what's the first thing you? 
Do and you have a problem? 

757
00:37:37,040 --> 00:37:39,280
And it was always, I think there
were a couple of years where 

758
00:37:39,280 --> 00:37:40,960
there was, you know. 
Do you Google? 

759
00:37:40,960 --> 00:37:43,360
1st Or do you go to a? 
Stakeover flow directly. 

760
00:37:43,360 --> 00:37:46,040
So which one is? 
It was not clear and it was like

761
00:37:46,040 --> 00:37:49,160
90% people responding. 
This is the first thing I do 

762
00:37:49,160 --> 00:37:52,880
when I have a problem. 
So that's literally like there's

763
00:37:52,880 --> 00:37:54,360
a. 
Huge chorus. 

764
00:37:54,880 --> 00:37:58,960
Of people really crying for help
because that's not an 

765
00:37:58,960 --> 00:38:00,600
engineering way. 
Right. 

766
00:38:00,600 --> 00:38:02,680
We shouldn't. 
This should be like the losses, 

767
00:38:02,680 --> 00:38:06,240
or sometimes maybe you want to 
go and debate and so on. 

768
00:38:06,320 --> 00:38:07,760
But they should not be the 
first. 

769
00:38:07,760 --> 00:38:10,360
Thing we think about. 
So when we had that. 

770
00:38:10,360 --> 00:38:11,320
Problem. 
What did we do? 

771
00:38:11,320 --> 00:38:14,320
Well, we stopped. 
And we built the tool that would

772
00:38:14,320 --> 00:38:18,600
show us here the components in 
React and we will being able to 

773
00:38:18,600 --> 00:38:20,720
click on a component and see, 
well, here's what it is. 

774
00:38:20,720 --> 00:38:22,240
So even this simple thing, 
right? 

775
00:38:22,240 --> 00:38:25,560
So if you think about your 
development, your, your editor, 

776
00:38:25,880 --> 00:38:27,720
right? 
So what I like about Visual 

777
00:38:27,720 --> 00:38:29,480
Studio Code is how honest it is,
right? 

778
00:38:29,480 --> 00:38:31,760
It doesn't sell itself as an 
IDE. 

779
00:38:32,000 --> 00:38:34,440
It just says I'm an editor. 
Which is really really. 

780
00:38:34,440 --> 00:38:36,840
Nice and honest. 
So in an editor you typically 

781
00:38:36,840 --> 00:38:40,680
see files and the source code. 
I just described like in the 

782
00:38:40,680 --> 00:38:43,600
React application. 
I really want to see components.

783
00:38:43,960 --> 00:38:46,280
I'd want to see files. 
Files are very low level. 

784
00:38:46,280 --> 00:38:49,080
This is the like. 
The lowest level in which I'm 

785
00:38:49,080 --> 00:38:51,840
storing data. 
Why would they want to look in 

786
00:38:51,840 --> 00:38:53,840
the database and just see a 
record by record? 

787
00:38:53,840 --> 00:38:56,680
Like why would that be an 
interesting view of things, 

788
00:38:56,680 --> 00:38:58,240
right? 
So what I really would like to 

789
00:38:58,240 --> 00:38:59,960
see, I would like to see an 
index of components. 

790
00:38:59,960 --> 00:39:04,480
It's a very basic thing I should
have an expectation for because 

791
00:39:04,480 --> 00:39:05,800
we don't talk about it. 
We don't. 

792
00:39:05,800 --> 00:39:07,800
Expect it, so I don't like to 
do. 

793
00:39:07,800 --> 00:39:10,280
That so we may have a problem 
with components. 

794
00:39:10,360 --> 00:39:11,880
You want to see the list of 
components. 

795
00:39:11,880 --> 00:39:13,120
OK, here's the list of 
components. 

796
00:39:13,400 --> 00:39:15,320
If I can see the list of 
components and if I can say, 

797
00:39:15,320 --> 00:39:17,240
well, this component depends on 
the other component. 

798
00:39:17,640 --> 00:39:20,680
This is the other crazy thing if
you think about oh, JavaScript. 

799
00:39:20,760 --> 00:39:25,160
Is very weakly typed. 
It's hard to do static analysis,

800
00:39:25,240 --> 00:39:28,560
that's kind of true. 
But if you look at React, that's

801
00:39:28,560 --> 00:39:31,440
hard coded type. 
It literally says this 

802
00:39:31,440 --> 00:39:33,640
component. 
If hands on these other 

803
00:39:33,640 --> 00:39:36,080
components, it's like the names 
are right there. 

804
00:39:36,320 --> 00:39:38,120
There is no look up there sort 
of thing. 

805
00:39:38,360 --> 00:39:41,520
It's very, very concrete. 
So you can actually build very 

806
00:39:41,520 --> 00:39:45,480
cheaply at all, really gives you
the graph of components. 

807
00:39:45,800 --> 00:39:49,360
It's not difficult. 
But this mass hallucination 

808
00:39:49,360 --> 00:39:52,640
space that we live in where we 
say, oh, I don't know what to 

809
00:39:52,640 --> 00:39:54,200
do. 
I go over and ask a stack 

810
00:39:54,200 --> 00:39:56,040
overflow. 
You don't do that. 

811
00:39:56,040 --> 00:39:58,720
Stop and look at all and look at
the opportunities that are 

812
00:39:58,720 --> 00:40:01,160
around you and you will see 
actually going to stack. 

813
00:40:01,160 --> 00:40:03,480
Overflow is the. 
First thing, oh, OK, now I'm not

814
00:40:03,480 --> 00:40:05,960
going to go to Stack Overflow. 
I'm going to just type in 

815
00:40:05,960 --> 00:40:09,160
because ChatGPT is much closer. 
So I'm going to ask, oh, what 

816
00:40:09,160 --> 00:40:11,200
are those right? 
And ChatGPT will tell me oh here

817
00:40:11,200 --> 00:40:14,000
are the components but you have 
no way of knowing if these are 

818
00:40:14,000 --> 00:40:15,000
all. 
Components or not. 

819
00:40:15,000 --> 00:40:16,480
Maybe they are, maybe they're 
not. 

820
00:40:17,000 --> 00:40:19,200
But there is a way to use? 
For example, something like 

821
00:40:19,200 --> 00:40:22,000
ChatGPT. 
Will say, well, what if you ask 

822
00:40:22,000 --> 00:40:26,720
ChatGPT, could you give me a 
tool that I can run, a small 

823
00:40:26,720 --> 00:40:30,720
tool that I can run to list all 
the components? 

824
00:40:31,280 --> 00:40:33,960
And maybe if I say, oh look, 
actually you missed this one 

825
00:40:33,960 --> 00:40:36,920
over here because you know, like
they're not just one way of 

826
00:40:36,920 --> 00:40:39,760
defining components. 
For example, nowadays in React, 

827
00:40:39,760 --> 00:40:42,920
you can have several ways. 
So now if I find this exception 

828
00:40:42,920 --> 00:40:46,240
here, maybe I go and extend my 
tool, maybe with AI, maybe 

829
00:40:46,240 --> 00:40:51,160
without AI, but the idea of 
having an unmediating 

830
00:40:51,160 --> 00:40:54,520
inspectable. 
Deterministic way to answer 

831
00:40:54,520 --> 00:40:58,160
questions about the reality of 
my current system is really 

832
00:40:58,160 --> 00:41:00,000
simple and is incredibly 
powerful. 

833
00:41:00,400 --> 00:41:02,120
And that's the essence of 
multiple development. 

834
00:41:02,520 --> 00:41:06,400
We're simply saying now imagine 
you have the possibility to 

835
00:41:06,400 --> 00:41:09,960
create custom tools for every 
problem you have. 

836
00:41:10,320 --> 00:41:11,920
That's the essence of multiple 
development. 

837
00:41:11,920 --> 00:41:15,440
Now this of course means those 
tools have to be creatable at 

838
00:41:15,440 --> 00:41:19,320
much lower cost then we consider
tools to be created today. 

839
00:41:19,960 --> 00:41:22,600
So when I say much lower cost, I
mean minutes cheap. 

840
00:41:23,040 --> 00:41:26,520
So within minutes I should be 
able to create an increment that

841
00:41:26,600 --> 00:41:28,320
gives me some sort of added 
value. 

842
00:41:28,760 --> 00:41:31,280
Maybe it's not the end of it, 
but if I spend minutes, I should

843
00:41:31,360 --> 00:41:34,400
I want to say something that 
produced an increment and I can 

844
00:41:34,400 --> 00:41:36,080
decide whether or not I go left 
or right. 

845
00:41:36,560 --> 00:41:39,120
So now this means that I now 
need a whole new kind of a 

846
00:41:39,120 --> 00:41:44,000
development environment that 
makes it whose first job is to 

847
00:41:44,000 --> 00:41:47,440
make the creation easier, 
because anything that comes 

848
00:41:47,440 --> 00:41:50,840
out-of-the-box solve some 
problem, but is almost 

849
00:41:50,840 --> 00:41:54,280
guaranteed to not be my problem.
So this is more interesting for 

850
00:41:54,280 --> 00:41:58,000
a development environment to 
start asking not how do you edit

851
00:41:58,000 --> 00:42:01,920
this, but how do I create a new 
tool that is highly specific to 

852
00:42:01,920 --> 00:42:05,360
what I want. 
And so this leads to a new kind 

853
00:42:05,360 --> 00:42:08,240
of a development environment, 
but also implies new kinds of 

854
00:42:08,240 --> 00:42:12,080
skills because now I would have 
to have the skill of creating 

855
00:42:12,080 --> 00:42:16,160
the tool, ideally within the 
organization, within the team. 

856
00:42:16,560 --> 00:42:20,400
But even more interesting is the
skill of asking questions. 

857
00:42:20,840 --> 00:42:26,360
So today, because we answer 
questions very slowly, we're 

858
00:42:26,360 --> 00:42:29,840
going to ask very few questions,
interesting questions about the 

859
00:42:29,840 --> 00:42:32,240
system. 
And because we ask few questions

860
00:42:32,240 --> 00:42:36,000
and far apart, the muscle that 
is the muscle of asking 

861
00:42:36,000 --> 00:42:40,400
questions atrophies. 
So we find ourselves asking kind

862
00:42:40,400 --> 00:42:44,840
of generic questions and they're
very difficult to act upon and 

863
00:42:44,840 --> 00:42:48,600
very difficult to answer. 
While what we want to do is we 

864
00:42:48,600 --> 00:42:51,440
want like if you think about, 
OK, here's the question, here's 

865
00:42:51,440 --> 00:42:54,160
the answer, and then here's the 
next question that comes. 

866
00:42:54,680 --> 00:42:58,040
So if the distance is very far 
between the question and the 

867
00:42:58,040 --> 00:43:00,880
answer, the distance between two
questions going to be very far. 

868
00:43:01,360 --> 00:43:05,640
But now imagine that I can 
decrease the cost of of an 

869
00:43:05,640 --> 00:43:09,560
answer to be almost 0, not 0, 
but very, very close, many times

870
00:43:09,560 --> 00:43:12,160
faster. 
All of a sudden the bottleneck 

871
00:43:12,320 --> 00:43:14,360
will be, oh, how do I come up 
with the next interesting 

872
00:43:14,360 --> 00:43:16,400
question and the next 
interesting question and the 

873
00:43:16,400 --> 00:43:20,480
next interesting question? 
And so the skill of learning how

874
00:43:20,480 --> 00:43:22,960
to build tools. 
So of course you need the 

875
00:43:22,960 --> 00:43:24,600
environment. 
You need something where you can

876
00:43:24,600 --> 00:43:27,040
create tools very quickly. 
And when I say create tools, I 

877
00:43:27,040 --> 00:43:30,440
mean thousands of tools. 
When I say thousands of tools, I

878
00:43:30,440 --> 00:43:32,840
mean thousands of tools 
persistent. 

879
00:43:33,080 --> 00:43:37,920
So little tiny micro tools that 
coexist and they can use to 

880
00:43:37,920 --> 00:43:41,800
assemble narratives about my 
systems very quickly and pretty 

881
00:43:41,800 --> 00:43:44,080
much on demand. 
So if you just think about this,

882
00:43:44,480 --> 00:43:48,240
in my world, I, I've seen, for 
example, a large organization, 

883
00:43:48,680 --> 00:43:53,840
like a large Unicorn and they 
had thousands of developers. 

884
00:43:54,360 --> 00:43:56,720
And then when we looked at the 
tools, they used dozens of 

885
00:43:56,720 --> 00:43:59,160
tools. 
Right now, OK, in my 

886
00:43:59,280 --> 00:44:03,280
organization, my team, we are a 
dozen people and we use 10s of 

887
00:44:03,280 --> 00:44:06,400
thousands of tools. 
And so it's similar, right? 

888
00:44:06,600 --> 00:44:08,920
Everybody uses tools, but not 
the same way. 

889
00:44:09,520 --> 00:44:12,520
It's kind of like when people 
were saying, oh, we do some 

890
00:44:12,520 --> 00:44:15,040
testing, you know, we do some 
automatic testing. 

891
00:44:15,560 --> 00:44:18,760
So for these 5 cases here, this 
is automated, but the rest of 

892
00:44:18,760 --> 00:44:21,920
the 10,000 scenarios are not 
right? 

893
00:44:21,920 --> 00:44:25,120
Or when we're saying, oh, some 
parts of the deployment pipeline

894
00:44:25,120 --> 00:44:26,200
was automated. 
Yeah. 

895
00:44:26,200 --> 00:44:29,280
So there's like some automation 
and it looks like deployment, 

896
00:44:29,680 --> 00:44:32,320
but it's not the same as when 
you have a deployment pipeline 

897
00:44:32,320 --> 00:44:33,880
that you can use 10 times per 
day. 

898
00:44:34,280 --> 00:44:36,280
It's like the properties are not
the same. 

899
00:44:36,800 --> 00:44:39,440
So that's what we're saying. 
And so you need this technology 

900
00:44:39,440 --> 00:44:43,800
to allow you to create and host 
and effectively use such tools, 

901
00:44:44,280 --> 00:44:46,360
maintain them. 
You need the skill of creating 

902
00:44:46,360 --> 00:44:49,840
the tool, but the most 
interesting and important skill 

903
00:44:50,200 --> 00:44:52,760
is going to be the one that is 
about asking questions. 

904
00:44:53,560 --> 00:44:55,920
Yeah, in your article with Simon
Wardley, you mentioned about 

905
00:44:55,920 --> 00:44:57,800
time to question, time to 
answer, right. 

906
00:44:57,800 --> 00:45:00,480
So I think that's very critical,
maybe the critical thinking 

907
00:45:00,480 --> 00:45:03,720
skills that people are talking 
about lately with the at the end

908
00:45:03,840 --> 00:45:05,680
of AI, right, we are losing our 
critical thinking. 

909
00:45:05,960 --> 00:45:08,160
So maybe asking questions and 
getting the answers is 

910
00:45:08,160 --> 00:45:11,120
definitely still gonna be the 
main core skills for developers.

911
00:45:11,560 --> 00:45:14,120
And actually when you mentioned 
about cyclic dependency, I kind 

912
00:45:14,120 --> 00:45:16,760
of like remember my recent 
experience actually I was 

913
00:45:16,760 --> 00:45:19,520
working with a Nest JS back end 
system, right? 

914
00:45:19,760 --> 00:45:22,600
And we have the concept of 
modules and service and all 

915
00:45:22,600 --> 00:45:25,800
that, which also has a cyclic 
dependency kind of problem. 

916
00:45:26,160 --> 00:45:30,080
But I could actually solve the 
problem just by subscribing to 

917
00:45:30,080 --> 00:45:34,040
their tools, which they call dev
tools $5 a month just to 

918
00:45:34,040 --> 00:45:36,200
visualize how module 
interconnect with each other. 

919
00:45:36,480 --> 00:45:39,720
So actually I kind of understand
what you're saying, right? 

920
00:45:39,720 --> 00:45:43,480
So imagine if you have all your 
files, all your classes and all 

921
00:45:43,480 --> 00:45:46,480
that, but you can visualize it 
differently, maybe through 

922
00:45:46,480 --> 00:45:48,640
different type of micro tools 
that you mentioned, right? 

923
00:45:48,920 --> 00:45:51,400
Maybe you could even visualize 
and solve the problem faster. 

924
00:45:51,680 --> 00:45:54,680
And best case is like you start 
generating more questions like 

925
00:45:54,680 --> 00:45:57,120
how can I improve the system? 
Or maybe there are the parts of 

926
00:45:57,120 --> 00:45:59,760
systems that I would like also 
to know about, right? 

927
00:46:00,000 --> 00:46:02,160
So I think this is definitely 
very exciting. 

928
00:46:02,440 --> 00:46:05,480
And you come up with this tool 
called Glamorous Toolkit, right?

929
00:46:05,480 --> 00:46:08,680
So maybe a little bit shared 
with people, how can they use 

930
00:46:08,680 --> 00:46:11,480
glamorous toolkit, what kind of 
things that they need to do in 

931
00:46:11,480 --> 00:46:13,160
order to come up with this micro
tools? 

932
00:46:13,960 --> 00:46:15,440
It's interesting that you 
mentioned, right? 

933
00:46:15,440 --> 00:46:18,080
So you have a framework. 
And apparently people that build

934
00:46:18,080 --> 00:46:20,760
the framework came up with the 
idea that they should also build

935
00:46:20,760 --> 00:46:22,800
tools that understand the 
framework. 

936
00:46:23,560 --> 00:46:25,840
I mean this is. 
It should be so common 

937
00:46:25,840 --> 00:46:29,040
knowledge, right? 
But The thing is, even when you 

938
00:46:29,040 --> 00:46:33,440
don't have the $5 per month or. 
Day or whatever possibility. 

939
00:46:33,800 --> 00:46:35,640
It shouldn't mean that you're 
hopeless. 

940
00:46:36,280 --> 00:46:38,880
It should still be within the 
realm of possibility to 

941
00:46:38,880 --> 00:46:42,760
literally build your own tools. 
So we as a tiny, tiny team, I 

942
00:46:42,800 --> 00:46:46,400
mean, we were like 4 people. 
So four people decided, oh, you 

943
00:46:46,400 --> 00:46:48,280
know what? 
Like we see this very large 

944
00:46:48,280 --> 00:46:51,440
problem, everybody has it, but 
it's economically feasible for 

945
00:46:51,440 --> 00:46:53,280
us to spend the day and build a 
tool. 

946
00:46:53,680 --> 00:46:56,200
I think we have a tool that 
shows me the dependencies and 

947
00:46:56,200 --> 00:46:59,000
cycles between my components. 
And then The thing is that, you 

948
00:46:59,000 --> 00:47:02,400
know, tomorrow you will not be 
using a very commonly used tool 

949
00:47:02,400 --> 00:47:04,840
and maybe you'll not just be 
using 1 technology, but you'll 

950
00:47:04,840 --> 00:47:06,480
be using the combination of 
things. 

951
00:47:06,480 --> 00:47:09,040
And all of a sudden, then what? 
There is no off the shelf. 

952
00:47:09,040 --> 00:47:12,160
There is no. $5 per month type 
of opportunity so you. 

953
00:47:12,160 --> 00:47:14,400
What do you do? 
Oh, you're going to go to Stack 

954
00:47:14,400 --> 00:47:16,840
Overflow? 
So there should be a space to 

955
00:47:16,880 --> 00:47:20,360
continue where I say, well, what
if for any question I have, 

956
00:47:20,360 --> 00:47:24,200
there is an economic way, an 
economically feasible way to go 

957
00:47:24,200 --> 00:47:26,800
and answer questions. 
And so that's what Glamorous 

958
00:47:26,800 --> 00:47:29,120
Toolkit is. 
Glamorous Toolkit is a free and 

959
00:47:29,120 --> 00:47:32,520
open source environment that we 
have created. 

960
00:47:32,840 --> 00:47:35,480
Well, this is a really. 
Crazy idea if you look at this 

961
00:47:35,480 --> 00:47:37,880
status quo right? 
Like what I'm saying here, 

962
00:47:37,880 --> 00:47:40,840
thousands of tools like how do 
you maintain these people say? 

963
00:47:41,120 --> 00:47:43,280
Oh, are you not going? 
To be bombarded by too many 

964
00:47:43,280 --> 00:47:44,920
tools. 
And the answer is yes, you can 

965
00:47:44,920 --> 00:47:47,520
maintain it very quickly or 
easily and cheaply. 

966
00:47:47,560 --> 00:47:50,520
Actually, it's much cheaper than
if you don't build the tools and

967
00:47:50,520 --> 00:47:53,320
yes, you're not combined, you're
not overwhelmed by thousands of 

968
00:47:53,320 --> 00:47:55,600
tools because you don't see 
thousands of at once. 

969
00:47:55,600 --> 00:47:57,520
You'll see them one of those 
that are meaningful in the 

970
00:47:57,520 --> 00:48:00,400
specific context, so. 
It was a really crazy. 

971
00:48:00,400 --> 00:48:05,760
Idea a decade ago and so the the
current incarnation of glamorous

972
00:48:05,760 --> 00:48:11,040
toolkit we started about 2017 
and the goal here was we want to

973
00:48:11,480 --> 00:48:14,120
create a vehicle with which 
we're going to explore how far 

974
00:48:14,120 --> 00:48:16,080
this idea. 
Can go and. 

975
00:48:16,080 --> 00:48:22,600
So the way we set up was that if
we are going to exist in 10 

976
00:48:22,600 --> 00:48:25,080
years, it means that multiple 
development works. 

977
00:48:25,440 --> 00:48:28,560
So, you know, when you're doing 
your own validation for a new 

978
00:48:28,560 --> 00:48:31,040
idea, you're going to be biased,
right? 

979
00:48:31,040 --> 00:48:34,560
So it's obvious if I say, oh 
look, I've done this one, I 

980
00:48:34,560 --> 00:48:36,880
applied in a case, it works 
brilliantly. 

981
00:48:37,240 --> 00:48:39,000
Everybody should do exactly 
this, right? 

982
00:48:39,000 --> 00:48:42,560
So that's we see that it 
economically works in all sorts 

983
00:48:42,560 --> 00:48:45,920
of situations, but not often 
necessarily, you know, it's not 

984
00:48:45,920 --> 00:48:48,640
necessarily grounded in reality.
So we really wanted to. 

985
00:48:48,720 --> 00:48:52,480
Validate before we're going to 
go, so thing was created 10 

986
00:48:52,480 --> 00:48:56,680
years ago and we still exist. 
And the way we created it was we

987
00:48:56,680 --> 00:49:00,840
said well, OK, we can't do 
unbiased type of validation 

988
00:49:00,840 --> 00:49:03,120
because we'll have to do the 
validation ourselves. 

989
00:49:03,640 --> 00:49:06,000
So what we're going to do is 
we're going to create the most 

990
00:49:06,000 --> 00:49:08,800
adversarial type of situation we
can imagine. 

991
00:49:08,800 --> 00:49:12,560
And if we can survive that, then
the only way, the only 

992
00:49:12,560 --> 00:49:15,360
explanation would be that this 
notable development works. 

993
00:49:15,640 --> 00:49:18,200
So Glamorous Toolkit is among 
those. 

994
00:49:18,400 --> 00:49:20,040
Everything we do is free and 
open source. 

995
00:49:20,040 --> 00:49:22,480
Glamorous Toolkit is a 
significant piece of technology.

996
00:49:22,480 --> 00:49:25,200
It's used in production in 
different places. 

997
00:49:25,520 --> 00:49:28,600
We made it completely free and 
there is no, we don't have any 

998
00:49:28,600 --> 00:49:30,360
means to charge it. 
So people can just download. 

999
00:49:30,360 --> 00:49:33,560
It and work with it, but when I 
say it's significant, I also 

1000
00:49:33,560 --> 00:49:35,360
say, well, we've actually used 
it in. 

1001
00:49:35,440 --> 00:49:38,600
Dozens of different classes of 
problems. 

1002
00:49:39,240 --> 00:49:42,280
So not problems, but like 
classes of problems. 

1003
00:49:42,640 --> 00:49:45,840
So when I say, you know, like 
classes, I mean how do I reverse

1004
00:49:45,840 --> 00:49:47,720
engineer an API? 
How do I reverse engineer a 

1005
00:49:47,720 --> 00:49:50,320
protocol? 
How do I make a distributed 

1006
00:49:50,320 --> 00:49:52,960
system and reverse engineer and 
move it to something else? 

1007
00:49:53,360 --> 00:49:55,400
How do I reverse engineer 
architectures? 

1008
00:49:55,400 --> 00:49:59,400
How do I reason about the domain
and make business answer? 

1009
00:49:59,400 --> 00:50:02,880
Like do explainable domain 
driven design directly from the 

1010
00:50:02,880 --> 00:50:05,240
system? 
How do I do data lineage? 

1011
00:50:05,240 --> 00:50:08,640
How do I do DevOps and 
observability directly from 

1012
00:50:08,640 --> 00:50:11,040
there and all using the same 
kinds of? 

1013
00:50:11,040 --> 00:50:14,080
Tools and techniques and what 
they what we are showing and 

1014
00:50:14,080 --> 00:50:17,240
when you open Glamorous Toolkit.
It comes with all like a book. 

1015
00:50:17,680 --> 00:50:20,200
A book of the size of Harry 
Potter written inside. 

1016
00:50:20,920 --> 00:50:24,280
In the environment, because it's
a knowledge base, it's a data 

1017
00:50:24,280 --> 00:50:26,200
science platform, it's a 
programming tool. 

1018
00:50:26,440 --> 00:50:29,160
But this is not like a classian 
does it by just stitching 

1019
00:50:29,160 --> 00:50:32,240
together different tools, but 
just having a really common 

1020
00:50:32,240 --> 00:50:34,080
design. 
Because these are not different 

1021
00:50:34,080 --> 00:50:36,000
spaces. 
And what we're showing is that 

1022
00:50:36,000 --> 00:50:39,080
it's possible to tackle really, 
really different classes of 

1023
00:50:39,080 --> 00:50:41,760
problems exactly in the same 
way. 

1024
00:50:41,760 --> 00:50:45,080
And the promise here is if you 
can do that, it means that you 

1025
00:50:45,080 --> 00:50:48,680
can invest in the skill once and
then use it over and over again 

1026
00:50:49,240 --> 00:50:51,440
in all sorts of unforeseen types
of situations. 

1027
00:50:51,920 --> 00:50:55,120
Now, when we build Glamorous 
Toolkit, so we used it as a 

1028
00:50:55,120 --> 00:50:58,640
vehicle for us to explore. 
But at the same time, Glamorous 

1029
00:50:58,640 --> 00:51:01,360
Toolkit is the first large. 
Case study of multiple 

1030
00:51:01,360 --> 00:51:05,160
development if you look at 
something like IDEA Intellij. 

1031
00:51:05,720 --> 00:51:07,520
And you look into the plug 
insurance marketplace. 

1032
00:51:07,920 --> 00:51:11,280
You will have something like 6-7
thousand plug insurance 

1033
00:51:11,280 --> 00:51:13,720
worldwide. 
Then you move to Visual Studio 

1034
00:51:13,720 --> 00:51:15,840
Code, and I think last time I 
looked, it was they had like 

1035
00:51:15,840 --> 00:51:20,840
60,000 plug insurance worldwide.
When you open Glamorous Toolkit 

1036
00:51:20,880 --> 00:51:26,240
built by a tiny team, you have 
more than 4000 plugins in the 

1037
00:51:26,240 --> 00:51:28,800
core. 
And these are the tools that we 

1038
00:51:28,800 --> 00:51:31,400
used to develop the platform 
itself. 

1039
00:51:31,960 --> 00:51:35,520
So when people are going to use 
Take Glamorous Toolkit and use 

1040
00:51:35,520 --> 00:51:38,640
it for another system, they're 
going to be building thousands 

1041
00:51:38,640 --> 00:51:42,440
of tools more. 
Per system, not worldwide, per 

1042
00:51:42,440 --> 00:51:45,280
system. 
So the EBRANCE Toolkit is the. 

1043
00:51:45,280 --> 00:51:48,440
First, major or a significant 
case study of multiple 

1044
00:51:48,440 --> 00:51:52,720
development itself, which means 
that you can use it and you can 

1045
00:51:52,720 --> 00:51:55,840
take it and use it for solving 
actual problems, but you can 

1046
00:51:55,840 --> 00:51:57,520
also just take it and use it and
say well. 

1047
00:51:57,520 --> 00:51:59,640
What does my multiple 
development mean and simply 

1048
00:51:59,640 --> 00:52:02,440
learn from it and then maybe 
copy it in other places? 

1049
00:52:02,440 --> 00:52:05,480
Our only worry? 
Is that people will not copy the

1050
00:52:05,480 --> 00:52:07,200
whole of it. 
Because this thing has. 

1051
00:52:07,200 --> 00:52:11,000
So many implications, so many 
interesting details, and it can 

1052
00:52:11,000 --> 00:52:13,040
be so powerful. 
It's not just about how you view

1053
00:52:13,040 --> 00:52:16,120
things, but also how you create 
editors for different languages,

1054
00:52:16,120 --> 00:52:19,000
how do you combine different 
languages, how do you deal with 

1055
00:52:19,000 --> 00:52:20,880
data in different formats, and 
so on. 

1056
00:52:21,520 --> 00:52:24,080
So on the practical. 
Side, the way you work with that

1057
00:52:24,160 --> 00:52:27,720
toolkit is it's based on small 
talk, so it's an image based 

1058
00:52:27,880 --> 00:52:29,880
system. 
So you basically download it and

1059
00:52:29,880 --> 00:52:32,680
then you customize things. 
Sources are all in GitHub. 

1060
00:52:32,680 --> 00:52:35,520
So you can also create your own 
customizations put in next to 

1061
00:52:35,520 --> 00:52:38,440
your project. 
So you can take and build like a

1062
00:52:38,440 --> 00:52:40,000
Docker. 
You can take a base Docker, 

1063
00:52:40,000 --> 00:52:42,840
create, put something into it. 
So take the base image, put 

1064
00:52:42,840 --> 00:52:44,960
something into it and save it. 
And this is going to be the 

1065
00:52:44,960 --> 00:52:48,360
distribution for your system. 
So this is how it is the way you

1066
00:52:48,360 --> 00:52:51,040
learn it. 
We advise people to to split 

1067
00:52:51,040 --> 00:52:54,440
learning in two phases. 
On the one hand, learn how to 

1068
00:52:54,440 --> 00:52:58,240
learn and then afterwards learn 
for a specific problem. 

1069
00:52:58,560 --> 00:53:01,040
And this learning how to learn 
is really interesting because. 

1070
00:53:01,320 --> 00:53:04,040
As I said. 
GT Glamour Toolkit was built 

1071
00:53:04,520 --> 00:53:08,560
following multiple developments,
so it has explanatory tools 

1072
00:53:08,920 --> 00:53:10,840
inside. 
So it has a way to search for 

1073
00:53:10,840 --> 00:53:13,240
example. 
Inside has the way to 

1074
00:53:13,520 --> 00:53:16,720
understand, like different 
objects will have different ways

1075
00:53:16,720 --> 00:53:20,320
to visualize it themselves. 
So learning how to jump from one

1076
00:53:20,320 --> 00:53:22,160
tool to another, it's kind of 
important. 

1077
00:53:22,320 --> 00:53:25,200
And the other thing here is if 
you think about tools that you 

1078
00:53:25,200 --> 00:53:26,600
typically think about. 
Features. 

1079
00:53:26,960 --> 00:53:30,880
So you might be learning things 
like shortcuts by hand or, or by

1080
00:53:30,880 --> 00:53:34,120
heart, or you'll say, well, this
button does this, this button 

1081
00:53:34,120 --> 00:53:36,440
and that, right? 
There will be dozens of buttons 

1082
00:53:36,440 --> 00:53:38,840
to learn. 
Or really like 100, OK, but in 

1083
00:53:38,840 --> 00:53:42,840
our case, we have thousands. 
And then when I start to combine

1084
00:53:42,840 --> 00:53:46,880
them, I have an explosion of 
possible combinations of things.

1085
00:53:47,280 --> 00:53:49,560
So it's not possible to learn 
them by heart. 

1086
00:53:50,160 --> 00:53:52,440
Instead, what you want is you 
want to learn what's this? 

1087
00:53:52,440 --> 00:53:54,640
How do you decompose each 
problem in the same way? 

1088
00:53:54,680 --> 00:53:56,040
That's the most interesting 
thing. 

1089
00:53:56,440 --> 00:54:00,640
And this is how we can scheme to
arbitrary situations and 

1090
00:54:00,640 --> 00:54:04,560
actually not overwhelm people. 
Sounds really interesting tool, 

1091
00:54:04,560 --> 00:54:05,880
right? 
So definitely, we'll put it in 

1092
00:54:05,880 --> 00:54:08,320
the show notes for people who 
are interested when you listen 

1093
00:54:08,320 --> 00:54:10,720
to those explanation just now. 
Sounds really cool actually, if 

1094
00:54:10,720 --> 00:54:13,720
you can actually come up with 
different ways to answer 

1095
00:54:13,720 --> 00:54:15,200
questions about your systems, 
right? 

1096
00:54:15,520 --> 00:54:18,920
And speaking about tools these 
days, I'm sure people use IDE, 

1097
00:54:18,920 --> 00:54:20,760
right? 
Not just simple text editor. 

1098
00:54:21,160 --> 00:54:24,800
And people now have AI tools as 
well, either chat base or maybe 

1099
00:54:24,800 --> 00:54:26,760
the cursor or whatever that is, 
right? 

1100
00:54:26,760 --> 00:54:30,360
It's more like a genetic AI and 
I'm sure this Grammars Toolkit 

1101
00:54:30,360 --> 00:54:32,800
is 1 potential tool. 
Although the attraction probably

1102
00:54:32,800 --> 00:54:35,440
we still need to see in the next
few years where do you see the 

1103
00:54:35,440 --> 00:54:37,800
future of our development 
environment, right? 

1104
00:54:37,800 --> 00:54:42,120
Do you actually see IDE AI and 
Grammars Toolkit living side by 

1105
00:54:42,120 --> 00:54:44,880
side, collaborate? 
Or even can we use AI to come up

1106
00:54:44,880 --> 00:54:48,640
with those micro tools? 
Well, so first of all, Grammars 

1107
00:54:48,640 --> 00:54:50,360
Toolkit is a development 
environment. 

1108
00:54:50,600 --> 00:54:52,560
So you should see. 
It's just that it doesn't look 

1109
00:54:52,560 --> 00:54:54,760
like any development environment
because typically we open a 

1110
00:54:54,760 --> 00:54:56,400
development environment and what
do you see? 

1111
00:54:56,800 --> 00:54:58,240
A giant text editor in front of 
you. 

1112
00:54:58,680 --> 00:55:00,560
What are you going to do, right?
You're going to scroll through 

1113
00:55:00,560 --> 00:55:03,640
it and try to learn, right? 
There's not even a search box. 

1114
00:55:04,320 --> 00:55:07,080
So the in our case, right? 
Because anything is the last 

1115
00:55:07,080 --> 00:55:09,120
thing I want to do, not the 
first thing I want to do. 

1116
00:55:09,400 --> 00:55:11,680
Just think of this. 
What does it mean when I say I 

1117
00:55:11,680 --> 00:55:13,800
said at the beginning, we don't 
talk about how we read code. 

1118
00:55:14,160 --> 00:55:18,240
Where do people read code? 
Well, in an editor, It literally

1119
00:55:18,240 --> 00:55:21,360
wasn't made for reading. 
It was made for anything. 

1120
00:55:21,360 --> 00:55:23,120
It's a different use case. 
It's similar. 

1121
00:55:23,560 --> 00:55:26,360
It's really different. 
So the question is, why should 

1122
00:55:26,360 --> 00:55:28,160
you see an editor as the first 
thing? 

1123
00:55:28,400 --> 00:55:31,240
I don't know why though. 
We used to have, for example, 

1124
00:55:31,240 --> 00:55:34,000
Yahoo was heavy. 
Oh, here's the tree of all the 

1125
00:55:34,000 --> 00:55:36,400
interesting pages. 
And then there's the other guys 

1126
00:55:36,400 --> 00:55:38,880
will come and say, well, what if
I just give you a search box? 

1127
00:55:39,240 --> 00:55:41,000
Much more interesting as an 
interface, right? 

1128
00:55:41,000 --> 00:55:42,760
And then nobody was saying well 
where is your tree. 

1129
00:55:43,000 --> 00:55:45,760
But I still remember actually 
people asking that question, 

1130
00:55:45,760 --> 00:55:47,680
where is the tree? 
Well, you might not be 

1131
00:55:47,680 --> 00:55:50,840
interested in the tree, in fact.
So, yeah, so I think that that 

1132
00:55:51,320 --> 00:55:54,480
if you optimize, if you take 
seriously this idea that we 

1133
00:55:54,480 --> 00:55:56,000
should be optimizing for 
decision. 

1134
00:55:56,000 --> 00:55:59,120
Making. 
The nature of the tools should 

1135
00:55:59,120 --> 00:56:01,160
change. 
They shouldn't be. 

1136
00:56:01,160 --> 00:56:04,080
It's not an increment. 
It's a really, really different 

1137
00:56:04,080 --> 00:56:06,320
kind of perspective. 
So Lammers look it is a 

1138
00:56:06,320 --> 00:56:08,560
development environment, but 
it's a development environment 

1139
00:56:08,560 --> 00:56:09,920
which you can create other 
development. 

1140
00:56:09,920 --> 00:56:13,800
Environments now, I do believe. 
AI has like generative AI is the

1141
00:56:13,800 --> 00:56:17,600
way we see it today. 
It's very interesting not to be 

1142
00:56:17,600 --> 00:56:19,640
in the way that certainly people
look at it today. 

1143
00:56:20,000 --> 00:56:24,200
So I really think that as long 
as we want to be the ones making

1144
00:56:24,200 --> 00:56:27,640
choices about what goes into 
production, we have to solve the

1145
00:56:27,640 --> 00:56:30,040
reading problem. 
There is no way around it, 

1146
00:56:30,360 --> 00:56:33,040
because otherwise we're just 
going to pretend, which is 

1147
00:56:33,040 --> 00:56:36,400
exactly what we're doing right 
now when people pretend to work 

1148
00:56:36,400 --> 00:56:39,760
and then three years go past and
nothing changed. 

1149
00:56:40,280 --> 00:56:42,880
But then at some point, some 
people will exploit this new 

1150
00:56:42,880 --> 00:56:46,360
opportunity of using our 
leveraging the human 

1151
00:56:46,360 --> 00:56:48,800
intelligence and they will 
transform this one into a 

1152
00:56:48,800 --> 00:56:50,560
competitive advantage. 
And this will become the new 

1153
00:56:50,560 --> 00:56:52,760
norm just like how DevOps, 
right? 

1154
00:56:52,760 --> 00:56:56,760
So even today, we still find 
people that are still now 

1155
00:56:56,760 --> 00:56:59,840
automating their deployment 
pipeline, but they will be 

1156
00:56:59,840 --> 00:57:02,760
automating right after they'll 
put automating testing in place.

1157
00:57:03,080 --> 00:57:07,160
There's going to be a long tail 
of those cases and it's the same

1158
00:57:07,160 --> 00:57:10,360
thing I believe will happen with
the way we optimize decisions. 

1159
00:57:11,000 --> 00:57:15,320
So with AI is very interesting. 
So if you use it for generating 

1160
00:57:15,840 --> 00:57:19,600
arbitrary kinds of code, as 
people are trying to do now, I 

1161
00:57:19,600 --> 00:57:22,440
think that this, the appeal 
there is right. 

1162
00:57:22,440 --> 00:57:25,880
So the local platforms are in 
trouble or they have to become 

1163
00:57:25,880 --> 00:57:28,440
AI. 
But low code never really 

1164
00:57:28,440 --> 00:57:30,960
displaced the interesting 
systems. 

1165
00:57:31,480 --> 00:57:37,640
As long as we as humans decide 
we want to understand what 

1166
00:57:37,640 --> 00:57:41,560
happens you inside the system, 
we have to solve the human 

1167
00:57:41,560 --> 00:57:44,920
problem, the reading problem. 
There is no way around this 

1168
00:57:44,920 --> 00:57:48,840
because literally today we 
humans or engineers and business

1169
00:57:48,840 --> 00:57:52,080
people are starved for 
information. 

1170
00:57:52,560 --> 00:57:56,000
People don't see the system you 
literally don't have like your 

1171
00:57:56,000 --> 00:57:58,320
brain can work. 
It doesn't matter at which speed

1172
00:57:58,800 --> 00:58:00,640
because you don't have the 
input. 

1173
00:58:01,120 --> 00:58:03,600
So you don't know what's what's 
in there. 

1174
00:58:03,960 --> 00:58:05,600
So when you're asking. 
The AI right? 

1175
00:58:05,600 --> 00:58:07,920
The other use that people use AI
for is. 

1176
00:58:08,200 --> 00:58:11,160
Oh, we're going to use. 
AI to summarize a system for us.

1177
00:58:11,760 --> 00:58:14,720
The problem with that is that 
again, you don't know what of 

1178
00:58:14,720 --> 00:58:20,040
it, what of the answer was left 
out and how covering is this 

1179
00:58:20,040 --> 00:58:21,960
one. 
So basically you're replacing. 

1180
00:58:21,960 --> 00:58:24,960
Someone's drawing on the 
whiteboard with this one, but 

1181
00:58:24,960 --> 00:58:28,200
their beliefs in both of them, 
but they're not quantifiable. 

1182
00:58:28,560 --> 00:58:30,520
And so that is not an 
interesting way. 

1183
00:58:30,520 --> 00:58:34,680
I think it's very appealing, but
it's not really an interesting 

1184
00:58:34,680 --> 00:58:37,640
engineering solution. 
On the other hand, if you ask an

1185
00:58:37,640 --> 00:58:39,600
AI to say well. 
Could you create me the tool? 

1186
00:58:39,600 --> 00:58:42,480
That I can run. 
To see these dependencies, for 

1187
00:58:42,480 --> 00:58:45,680
example, that I believe is very 
interesting because those talk 

1188
00:58:45,680 --> 00:58:48,200
can be really small. 
But then of course, now all of a

1189
00:58:48,200 --> 00:58:50,320
sudden I want to create lots of 
those tools. 

1190
00:58:50,480 --> 00:58:53,080
Where should I be creating lots 
of those tools for any of my 

1191
00:58:53,080 --> 00:58:54,840
question? 
Then all of a sudden you want to

1192
00:58:54,840 --> 00:58:57,560
demand, oh, I need to put 
somewhere these tools. 

1193
00:58:57,960 --> 00:59:00,480
So I will be demanding that my 
development environment should 

1194
00:59:00,480 --> 00:59:03,320
be hosting these kinds of tools.
So maybe all of a sudden this 

1195
00:59:03,320 --> 00:59:06,160
editor just giant text editor I 
have in front of me. 

1196
00:59:06,360 --> 00:59:09,240
Is not the most interesting. 
Thing at all to see so I'll be 

1197
00:59:09,240 --> 00:59:11,320
demanding that you know what I 
should be able to have a 

1198
00:59:11,320 --> 00:59:14,240
different kind of a development 
environment there that allows me

1199
00:59:14,240 --> 00:59:16,920
to have an engineering 
conversation with my system and 

1200
00:59:16,920 --> 00:59:19,960
then once you see they say well 
actually you know what if the 

1201
00:59:19,960 --> 00:59:24,400
cost of a tool is actually so 
tiny that the blocker isn't the 

1202
00:59:24,400 --> 00:59:28,480
creation of the tool but is the 
asking of the question the rule 

1203
00:59:28,480 --> 00:59:31,280
was sending actually the AI is 
just that it's interesting 

1204
00:59:31,280 --> 00:59:34,280
optimizations but it's nothing 
but an optimization so that's 

1205
00:59:34,280 --> 00:59:37,160
what I see because at the end of
the day it doesn't matter who 

1206
00:59:37,160 --> 00:59:41,080
creates the code it matters who 
has to make a choice about that 

1207
00:59:41,080 --> 00:59:44,200
code so either we're going to 
delegate everything to an AI and

1208
00:59:44,200 --> 00:59:47,600
I can see lots of incentives for
doing this just like how people 

1209
00:59:47,800 --> 00:59:50,600
this kind of trading which is 
completely unmediated by humans 

1210
00:59:50,880 --> 00:59:53,920
today algorithmic trading and I 
can see this one being 

1211
00:59:53,920 --> 00:59:57,040
extrapolated and there will be 
classes of problems where people

1212
00:59:57,040 --> 00:59:59,240
will want to do that like for 
example spam. 

1213
00:59:59,640 --> 01:00:02,760
I think they are thriving today.
There are classes of problems 

1214
01:00:02,760 --> 01:00:04,960
where this would work but there 
will be classes of problems 

1215
01:00:04,960 --> 01:00:08,240
where I don't see this current 
technology ever doing this other

1216
01:00:08,240 --> 01:00:09,680
kinds of advances. 
In technology. 

1217
01:00:09,720 --> 01:00:12,000
Might change the equation. 
But the current. 

1218
01:00:12,000 --> 01:00:16,240
One, there will be interesting, 
very large areas of economic 

1219
01:00:16,240 --> 01:00:20,920
value creation where the human 
will have to decide, and then 

1220
01:00:20,960 --> 01:00:24,280
that is the problem that we 
actually have to solve, right? 

1221
01:00:24,560 --> 01:00:27,760
So I think that's really 
insightful explanation, right? 

1222
01:00:27,760 --> 01:00:31,560
So how probably we can see a 
potential future where maybe AI 

1223
01:00:31,720 --> 01:00:34,080
glamorous toolkit, multiple 
development, right, working side

1224
01:00:34,080 --> 01:00:36,440
by side and we solve different 
class of problem. 

1225
01:00:36,800 --> 01:00:39,800
So I noticed also recently you 
kind of like Co wrote a book 

1226
01:00:39,800 --> 01:00:41,840
with Simon Watley. 
You also mentioned it in very 

1227
01:00:41,840 --> 01:00:43,960
beginning. 
Maybe can you tell us a little 

1228
01:00:43,960 --> 01:00:46,880
bit what's the mission here? 
Like why are you writing the 

1229
01:00:46,880 --> 01:00:48,440
book? 
What are you trying to come up 

1230
01:00:48,440 --> 01:00:50,840
with Simon, right? 
And what are you trying to 

1231
01:00:50,840 --> 01:00:53,000
explain to people? 
Yeah. 

1232
01:00:53,240 --> 01:00:55,640
So first just to. 
Wrap up on the AI and Glamorous 

1233
01:00:55,640 --> 01:00:57,680
Toolkit. 
In Glamorous Toolkit, for 

1234
01:00:57,680 --> 01:01:01,240
example, we think AI is really 
interesting, but the way you're 

1235
01:01:01,240 --> 01:01:04,440
going to consume the output of 
the AI is really important. 

1236
01:01:04,440 --> 01:01:07,480
So we're actually doing research
and there is an infrastructure 

1237
01:01:07,480 --> 01:01:10,800
in Glamorous Toolkit directly to
work with AI but create on 

1238
01:01:10,800 --> 01:01:14,120
demand interfaces to consume the
output of the AI. 

1239
01:01:14,360 --> 01:01:18,120
So for example, I imagine 
starting a chat and just having 

1240
01:01:18,120 --> 01:01:22,960
a generic chat interface and 
then while chatting to customize

1241
01:01:23,320 --> 01:01:25,520
how the messages are being 
proposed to you. 

1242
01:01:25,880 --> 01:01:29,280
So if if you're seeing something
by default these days, when 

1243
01:01:29,280 --> 01:01:31,440
people say, oh, if I show you a 
picture, it's like this. 

1244
01:01:31,640 --> 01:01:34,200
What if I want to see the hex of
the picture, right? 

1245
01:01:34,800 --> 01:01:38,320
Or if the encoding or something 
like this or so I might want to 

1246
01:01:38,320 --> 01:01:40,080
choose different kinds of 
representations. 

1247
01:01:40,480 --> 01:01:43,640
And so that interface 
controlling the tool through 

1248
01:01:43,640 --> 01:01:46,640
which you look has lots and lots
of implications. 

1249
01:01:47,200 --> 01:01:50,880
This is a bit, maybe what I'm 
saying here is a little 

1250
01:01:51,160 --> 01:01:54,720
abstract, hard to believe. 
I understand that. 

1251
01:01:54,720 --> 01:01:57,480
And that's the reason why we're 
writing this book. 

1252
01:01:57,520 --> 01:02:04,160
Simon and I, we worked for 
several years together and since

1253
01:02:04,160 --> 01:02:07,760
about a year, he chose to work 
much more closer with us. 

1254
01:02:08,240 --> 01:02:12,440
We basically spend the whole 
year trying to find ways to 

1255
01:02:12,440 --> 01:02:16,760
explain what it is that we 
discovered in our research and 

1256
01:02:16,760 --> 01:02:19,560
in our work in a way that is 
more consumable. 

1257
01:02:20,200 --> 01:02:24,320
So something that abstracts a 
bit the technical details and 

1258
01:02:24,320 --> 01:02:29,400
find a way to explain to, for 
example, a CTO or CIO, maybe CFO

1259
01:02:29,600 --> 01:02:33,760
type of level as to why is it 
interesting to look into the 

1260
01:02:33,760 --> 01:02:36,680
legacy space, How do you create 
value? 

1261
01:02:36,680 --> 01:02:38,200
How can you create value out of 
it? 

1262
01:02:38,200 --> 01:02:40,720
And why the development 
experience is the answerable. 

1263
01:02:41,360 --> 01:02:44,600
And of course, to explain on 
multiple development, that's a 

1264
01:02:44,600 --> 01:02:47,480
little bit of the background. 
So definitely good luck with the

1265
01:02:47,480 --> 01:02:49,440
rest of the chapters that you're
writing with Simon. 

1266
01:02:49,440 --> 01:02:51,920
I read all the chapters that you
have so far, right? 

1267
01:02:51,920 --> 01:02:53,840
So I must say it's very 
interesting. 

1268
01:02:53,880 --> 01:02:56,240
It gives a lot of background and
kind of like the problem 

1269
01:02:56,240 --> 01:02:59,120
challenges we are facing. 
And I'm sure we gotta learn a 

1270
01:02:59,120 --> 01:03:01,160
lot more about multiple 
development in the future. 

1271
01:03:01,800 --> 01:03:03,840
Tudor, it's been a pleasure to 
help you with the show. 

1272
01:03:03,840 --> 01:03:06,640
I have one last question, which 
I normally ask to all my guests.

1273
01:03:06,640 --> 01:03:08,720
I call this the tree technical 
leadership with them. 

1274
01:03:08,920 --> 01:03:11,400
Think of them just like an 
advice you want to give to us. 

1275
01:03:11,600 --> 01:03:13,960
Maybe if you can share your 
version of tree technical 

1276
01:03:13,960 --> 01:03:16,480
leadership with them. 
I think I'll just stick with. 

1277
01:03:16,480 --> 01:03:23,800
One one of them which is simply 
start to spend 15 minutes a day 

1278
01:03:24,320 --> 01:03:27,600
as a developer looking for how 
else. 

1279
01:03:27,880 --> 01:03:30,160
Would you be able to find an 
answer to a problem that you're 

1280
01:03:30,160 --> 01:03:32,800
looking at right now? 
Don't try to necessarily do it, 

1281
01:03:32,920 --> 01:03:35,920
simply just think about it. 
And then what you will see is 

1282
01:03:35,920 --> 01:03:38,000
that after. 
A couple of days you will start 

1283
01:03:38,000 --> 01:03:41,000
to notice opportunities popping 
up around you because the 

1284
01:03:41,000 --> 01:03:44,160
interesting thing about whenever
something is not explicit, your 

1285
01:03:44,160 --> 01:03:47,560
eyes are not trained to see 
interesting things related to 

1286
01:03:47,560 --> 01:03:49,760
that. 
And I think this is an 

1287
01:03:49,760 --> 01:03:54,160
interesting problem in any case,
because it goes into this idea 

1288
01:03:54,160 --> 01:03:57,720
that whatever you're training, 
that's what you're going to use 

1289
01:03:58,440 --> 01:04:03,360
and teaching yourself going 
through a more inconvenient 

1290
01:04:03,360 --> 01:04:06,200
experience as like everybody 
else is doing something. 

1291
01:04:06,840 --> 01:04:08,280
I'm just telling you, you're not
right. 

1292
01:04:08,280 --> 01:04:10,400
Go ahead. 
And not to do what everybody? 

1293
01:04:10,400 --> 01:04:12,560
Else is doing try to think how 
would I? 

1294
01:04:12,560 --> 01:04:16,600
Possibly answer this question 
here, but without reading a line

1295
01:04:16,600 --> 01:04:19,360
of code if possible. 
And sometimes it's not exactly 

1296
01:04:19,360 --> 01:04:23,360
possible, but many times it is. 
You might find it around you. 

1297
01:04:23,480 --> 01:04:27,040
And so this exercise I find is 
an interesting exercise, 

1298
01:04:27,040 --> 01:04:31,280
especially with newcomers in 
programming because it teaches 

1299
01:04:31,280 --> 01:04:35,320
people to start to train the 
ability to see things that are 

1300
01:04:35,320 --> 01:04:39,240
not obvious at 1st. 
And the other thing that he 

1301
01:04:39,240 --> 01:04:46,040
trains is the idea that 
engineering is a discipline that

1302
01:04:46,040 --> 01:04:50,560
doesn't follow hypes, hypes, 
hypes, they go engineering 

1303
01:04:50,560 --> 01:04:53,920
changes all the time, but it 
really doesn't, right? 

1304
01:04:53,920 --> 01:04:56,600
And there can be a systematic 
way to discover it. 

1305
01:04:57,200 --> 01:04:59,280
And so that's what I would urge 
you to do it. 

1306
01:05:00,000 --> 01:05:02,040
So think how you would think, 
right? 

1307
01:05:02,040 --> 01:05:05,000
So it's kind of like meta level.
So I think it's kind of like 

1308
01:05:05,000 --> 01:05:07,840
beautiful advice, right? 
So I think we could use more 

1309
01:05:07,840 --> 01:05:11,080
critical thinking and also kind 
of like probe the system that we

1310
01:05:11,080 --> 01:05:12,920
have, right? 
So that we can understand it 

1311
01:05:12,920 --> 01:05:13,760
better. 
And maybe there are 

1312
01:05:13,760 --> 01:05:16,280
opportunities like what you 
said, how we can improve it so 

1313
01:05:16,280 --> 01:05:19,440
that our software can be 
recycled, not like the problem 

1314
01:05:19,440 --> 01:05:22,240
that we are having now. 
So to know if people would love 

1315
01:05:22,240 --> 01:05:25,240
to connect with you, maybe they 
want to ask you more questions. 

1316
01:05:25,240 --> 01:05:26,960
Is there a place where they can 
find you online? 

1317
01:05:27,840 --> 01:05:31,360
Well, yeah, so of course, you 
can find me on LinkedIn, I 

1318
01:05:31,360 --> 01:05:36,000
believe at Gerba on LinkedIn, 
and I invite people to just 

1319
01:05:36,000 --> 01:05:38,240
connect with me and directly ask
questions. 

1320
01:05:38,560 --> 01:05:42,880
You can go to 
glamglamoroustoolkityoucandownload@gtoolkit.com.

1321
01:05:42,880 --> 01:05:44,720
There's also a Discord community
there. 

1322
01:05:45,200 --> 01:05:48,080
And if you're interested in what
we do as a company and how we 

1323
01:05:48,080 --> 01:05:51,080
modernize legacy systems, go to 
fenk.com. 

1324
01:05:51,080 --> 01:05:53,520
So FENK comes from feel and 
think. 

1325
01:05:54,040 --> 01:05:55,320
Yeah. 
Find more details about it 

1326
01:05:55,320 --> 01:05:57,520
there. 
I like it feel and think 

1327
01:05:57,560 --> 01:06:01,040
think.com right so if people 
have modernization challenges, 

1328
01:06:01,120 --> 01:06:04,040
you can contact to the. 
Just wanted to say that hidden 

1329
01:06:04,040 --> 01:06:07,240
thing comes from the fact that 
know how to think in our world, 

1330
01:06:07,320 --> 01:06:09,840
right? 
Or we think we do, but we forgot

1331
01:06:09,840 --> 01:06:13,280
that the way we feel is as 
important as the way we think, 

1332
01:06:13,720 --> 01:06:15,560
right? 
And if you come back to this 

1333
01:06:15,560 --> 01:06:18,480
problem of how do people feel 
when they are in the presence of

1334
01:06:18,480 --> 01:06:20,600
legacy, I believe we should 
change that. 

1335
01:06:21,240 --> 01:06:23,000
Really nice name behind it, 
right? 

1336
01:06:23,000 --> 01:06:25,400
So I think for people who are 
interested in multiple 

1337
01:06:25,400 --> 01:06:27,720
development, make sure to check 
out to those resources. 

1338
01:06:28,120 --> 01:06:31,240
And I hope you have more 
traction in this space, right? 

1339
01:06:31,240 --> 01:06:33,920
So looking forward to see the 
future where we are coming up 

1340
01:06:33,920 --> 01:07:13,840
with our micro tools. 
Yeah.

