WEBVTT

1
00:00:05.120 --> 00:00:10.679
Hello, and welcome everyone to another
episode of Adventures and DevOps. I'm warrnt

2
00:00:10.720 --> 00:00:14.480
Broad your host, and unfortunately Will
will not be joining us today. He'll

3
00:00:14.480 --> 00:00:20.120
be back next week when he returns
from his vacation spot on the other side

4
00:00:20.120 --> 00:00:27.920
of the world. But today I'd
like to introduce from more than twenty years

5
00:00:27.960 --> 00:00:34.479
in the industry, experience in platforms
and consulting and advisory in many different areas

6
00:00:35.799 --> 00:00:43.039
work with the CNCF. With us
today is David Stenglai, who great to

7
00:00:43.079 --> 00:00:47.280
be here. Yeah, thanks for
joining us. You know, originally you

8
00:00:47.320 --> 00:00:52.679
said that we could talk anything about
platforms, and this is actually a really

9
00:00:52.719 --> 00:00:57.079
interesting topic because a couple of weeks
ago I had brought up that meeting with

10
00:00:57.320 --> 00:01:00.920
a bunch of DevOps folks experience in
the industry. We were actually trying to

11
00:01:00.920 --> 00:01:07.280
define what platforms actually are, like
what is what counts as a platform And

12
00:01:07.599 --> 00:01:11.280
one of those conversations, the one
of the co authors from Team Topologies was

13
00:01:11.280 --> 00:01:18.480
suggesting that everything's a platform. And
if everything's a platform, then I think

14
00:01:18.519 --> 00:01:22.319
there is this sort of a fear
that it's very difficult to define. Maybe

15
00:01:22.319 --> 00:01:23.840
it's sort of one of those things
that you, I know, when I

16
00:01:23.879 --> 00:01:29.480
see it, but you know,
what it actually is can be difficult to

17
00:01:29.719 --> 00:01:34.359
identify and practice. What do you
think? Uh yeah, And I kind

18
00:01:34.359 --> 00:01:40.040
of get where the team topologies people
are coming from, especially with their minimum

19
00:01:40.159 --> 00:01:46.280
viable platform, right, they define
documentation as a minimum viable platform. But

20
00:01:46.400 --> 00:01:51.560
I think when we think about and
there are many different kinds of platforms,

21
00:01:52.319 --> 00:01:56.319
but we think about them a little
differently over time, especially modern platforms.

22
00:01:56.760 --> 00:02:02.200
So I have a definition that is
almost intentionally vague, but it kind of

23
00:02:02.280 --> 00:02:06.760
encompasses a lot of things and helps
kind of determine what they are. And

24
00:02:06.799 --> 00:02:10.759
that is that a platform is a
system that allows you to build things and

25
00:02:10.919 --> 00:02:16.360
gives them a home a place to
run. And the other side of it

26
00:02:16.439 --> 00:02:23.199
is a platform either abstracts or completely
captures work that the user of the platform

27
00:02:23.240 --> 00:02:29.520
would otherwise need to do. And
so and that's it, because that is

28
00:02:29.560 --> 00:02:35.039
the basics of a platform, and
it's it's kind of vague in general like

29
00:02:35.080 --> 00:02:39.439
that, because there's a lot of
commonalities between what we think of as like

30
00:02:39.759 --> 00:02:44.800
end user platforms like an uber or
something like that, and internal platforms.

31
00:02:45.520 --> 00:02:49.000
Where it gets a little different is
you know whether or not you have like

32
00:02:49.080 --> 00:02:55.919
that network producer consumer. You know, network effect type thing going on in

33
00:02:57.240 --> 00:03:02.719
internal platforms, and it can happen. But you know, the reason I

34
00:03:02.840 --> 00:03:07.520
like this definition is I feel like
I've been working on platforms for nearly thirty

35
00:03:07.599 --> 00:03:10.360
years. As an operating system,
as a platform, you know, as

36
00:03:10.400 --> 00:03:15.919
a modern developer, even think about
what the layout of blocks on disc is

37
00:03:15.680 --> 00:03:21.639
or how memory is managed for them, you know, out of system like

38
00:03:22.080 --> 00:03:24.520
that's a that to me is a
platform. An operating system is something I

39
00:03:24.520 --> 00:03:30.560
can build and run on without having
to worry about really low level stuff.

40
00:03:30.159 --> 00:03:35.680
But platforms kind of accrete over time, right, you know, they get

41
00:03:35.719 --> 00:03:38.680
pushed down lower and lower, and
like twenty twenty five, thirty years ago,

42
00:03:38.759 --> 00:03:44.039
we used to care a lot more
about how processes were managed and how

43
00:03:44.719 --> 00:03:49.400
discs were laid out, And you
know, there's only a very specialized few

44
00:03:49.400 --> 00:03:53.520
people who actually still care about that
because we've built layers on top of it.

45
00:03:53.599 --> 00:03:59.560
So the definition of platform is a
moving target. Over time, we

46
00:03:59.599 --> 00:04:02.639
expect more and more to get pushed
down below us and to be able to

47
00:04:02.680 --> 00:04:08.599
work with higher and higher abstractions.
So to say everything is a platform,

48
00:04:09.719 --> 00:04:18.120
I wouldn't necessarily say that. I
do agree that a minimum viable platform or

49
00:04:18.279 --> 00:04:24.160
minimum viable set of tools could include
just documentation for a small group of people.

50
00:04:25.439 --> 00:04:30.199
But when you get to a modern
platform that is especially now being defined

51
00:04:30.240 --> 00:04:36.040
around self service, right, you
know, the criteria for it is a

52
00:04:36.079 --> 00:04:43.720
little different. And I think the
distinction comes in between application and platform where

53
00:04:43.720 --> 00:04:48.560
it gets really fuzzy. Right.
So take Minecraft. Minecraft is a platform

54
00:04:48.639 --> 00:04:53.800
you can build stuff and run on
top of it, right. But another

55
00:04:53.879 --> 00:04:59.079
game, like you know, a
multiplayer with no extensibility, Well, that's

56
00:04:59.160 --> 00:05:03.360
that's an application. You might build
much more, you know, high level

57
00:05:03.519 --> 00:05:09.959
conceptual things like clans or something like
that on a game, but you don't

58
00:05:09.959 --> 00:05:14.160
get to build arbitrary things like you
can in Minecraft. Right, people built

59
00:05:14.240 --> 00:05:17.519
airplanes, computers. I think there's
someone who wrote Doom to run inside of

60
00:05:17.560 --> 00:05:23.560
Minecraft. Right, so you know
that's the proof of any sort of computer.

61
00:05:23.560 --> 00:05:27.519
It cannot run Doom. And so
if it can run Doom, maybe

62
00:05:27.560 --> 00:05:30.240
that's a definition I never thought of. If it can run Doom, it's

63
00:05:30.279 --> 00:05:34.560
a platform, right. I mean, I think building on top of is

64
00:05:34.600 --> 00:05:40.439
an interesting way of looking at it, because even at very slow processing speeds,

65
00:05:40.800 --> 00:05:44.720
you could make any sort of chat
interface run Doom. Right, So

66
00:05:46.000 --> 00:05:51.519
I think I like that because it
makes the distinction between we're running the thing

67
00:05:51.759 --> 00:05:57.920
and it's running on top of something
else. You didn't mention that. You

68
00:05:58.000 --> 00:06:02.680
feel like the attention to some of
the lower level platforms is not We don't

69
00:06:02.680 --> 00:06:08.560
pay attention to it as much anymore. Is it because it's been highly optimized

70
00:06:08.600 --> 00:06:12.759
and there aren't a lot of further
ways that we can take that, or

71
00:06:12.920 --> 00:06:15.720
is it that there's now a lot
of different layers, a lot of different

72
00:06:15.720 --> 00:06:18.720
abstractions that people are paying more and
more attention to. It's because we can't,

73
00:06:19.199 --> 00:06:25.800
right, you know, one of
the earlier parts of platforms and computing

74
00:06:25.959 --> 00:06:30.879
was escaping assembly language, right,
you know, And there are still people

75
00:06:30.879 --> 00:06:35.480
who work in assembly language, of
course, but you can't manage higher and

76
00:06:35.560 --> 00:06:43.519
higher levels of abstraction while needing to
know how to do everything at every level.

77
00:06:43.759 --> 00:06:46.839
I think it's important to understand how
computers work, how like how the

78
00:06:46.920 --> 00:06:53.920
things work, But having the skill
to work at all those levels doesn't really

79
00:06:53.959 --> 00:06:56.720
add up, right, So like, when you call yourself a full stack

80
00:06:56.759 --> 00:07:04.040
developer, you're probably not writing assembly
right because you couldn't maintain your ability to

81
00:07:04.199 --> 00:07:10.000
work on higher level problems and all
that low level stuff. You wouldn't be

82
00:07:10.079 --> 00:07:15.319
very productive. So I think it's
it's to some degree optimized because I've had

83
00:07:15.360 --> 00:07:19.079
a long time to figure out how
to manage discs, how to manage memory.

84
00:07:19.240 --> 00:07:24.000
You know, Linux is I came
from a background of Unix when it

85
00:07:24.079 --> 00:07:27.920
wasn't Linux didn't even I wouldn't say
it didn't exist, but it was not

86
00:07:28.040 --> 00:07:31.959
allowed to be used in most you
know, sort of corporate environments. And

87
00:07:32.040 --> 00:07:36.839
so we were managing like five different
flavors of Unix systems. And now it's

88
00:07:36.839 --> 00:07:43.360
consolidated and that level of abstraction to
the operating system right is simplified. You

89
00:07:43.399 --> 00:07:46.800
know, you don't have to figure
out where AUK is on like five different

90
00:07:46.879 --> 00:07:51.879
kinds of systems, So that that
it's almost the necessity for us to be

91
00:07:51.920 --> 00:07:58.360
able to move up to higher level
things to build on top that, even

92
00:07:58.399 --> 00:08:01.800
though they might be able to be
optimized, we can't look at that.

93
00:08:01.079 --> 00:08:05.680
Now. The flip side of that
is we tend to accrete things and get

94
00:08:05.720 --> 00:08:11.279
away from them and not optimize them, and we end up with our platform

95
00:08:11.399 --> 00:08:16.879
potentially being really bloated underneath us because
we're not paying full attention to the cost

96
00:08:16.079 --> 00:08:20.040
of the abstraction that we're doing,
right, And so you know, there's

97
00:08:20.040 --> 00:08:24.720
a necessity to go through sometimes and
figure out, like those few people who

98
00:08:24.879 --> 00:08:28.560
understand, go down through the layers
and figure out are we making the best

99
00:08:28.639 --> 00:08:33.159
use of this because hardware keeps getting
so much faster, right, but yet

100
00:08:33.159 --> 00:08:37.679
we still manage to run at the
same speed. Right, So we're doing

101
00:08:37.759 --> 00:08:45.559
something in order to like add new
stuff but not make it more efficient that

102
00:08:45.919 --> 00:08:50.320
you know, for all that we've
increased, I found an SD card that

103
00:08:50.480 --> 00:08:52.639
was two hundred and fifty six megs
the other day, Right, you can

104
00:08:52.639 --> 00:08:56.759
get a terabyted SD card pretty easily
now. And the fact that we were

105
00:08:56.799 --> 00:09:03.559
able to do so much and such
constrain and environments and get things done and

106
00:09:03.639 --> 00:09:09.320
responsive, and now we've added so
much and we've got our slack clients like

107
00:09:09.399 --> 00:09:16.720
crushing computers and adding up to responsiveness
that is just still in the similar range.

108
00:09:18.000 --> 00:09:22.159
Right. So that's one of the
risks of abstracting like that over time.

109
00:09:24.799 --> 00:09:26.600
I mean, you said something about
that, and actually it sort of

110
00:09:26.600 --> 00:09:31.279
triggered me thinking if we add more
levels of abstraction, can we still be

111
00:09:31.320 --> 00:09:35.679
in that situation where we understand enough
about the stack in order to make optimizations

112
00:09:35.679 --> 00:09:39.000
like, I feel like I've heard
a lot over my career. Oh,

113
00:09:39.000 --> 00:09:41.240
but we still need to know how
assembly is going to get built, because

114
00:09:41.240 --> 00:09:46.159
there's optimizations that we could be making
at higher levels if we know about that,

115
00:09:46.440 --> 00:09:50.519
And I feel like that's sort of
eroded over time because the number of

116
00:09:50.559 --> 00:09:54.720
abstraction layers has definitely increased. I
think there has been some return to that

117
00:09:56.320 --> 00:10:00.200
with like eBPF at the networking level, like sort of, okay, there

118
00:10:00.200 --> 00:10:03.440
are optimizations here, or there are
things that we need to know at the

119
00:10:03.519 --> 00:10:07.799
lower levels inside the operating system,
and we have multiple platforms on top of

120
00:10:07.799 --> 00:10:11.600
it, it's very difficult to see
that. But I like you said assembly,

121
00:10:11.600 --> 00:10:13.600
I mean it even goes lower,
like people aren't going to know exactly

122
00:10:13.600 --> 00:10:16.759
how to stack the silicon to make
the transist. Well, yeah, and

123
00:10:18.360 --> 00:10:20.519
maybe some of those layers will need
to go away, Like I think WLASM

124
00:10:20.559 --> 00:10:26.639
will have a big impact on the
intermediate layers, Like I think you're going

125
00:10:26.720 --> 00:10:30.120
to see a whole lot wiped out
once it's going to take a few more

126
00:10:30.240 --> 00:10:35.360
years, but once you have WAZI
components. So that's a good acronym stop

127
00:10:35.480 --> 00:10:41.279
right. LASM is a web called
web assembly and it's essentially an instruction set

128
00:10:41.440 --> 00:10:50.559
that allows browsers or originally browsers,
to run sort of arbitrary code as opposed

129
00:10:50.639 --> 00:10:58.519
to you know, specific HTML and
JavaScript and type stuff, so you can

130
00:10:58.559 --> 00:11:03.320
compile you know, used to be
you had to target C code, you

131
00:11:03.320 --> 00:11:07.919
know, compiled code at a specific
architecture and run it on that specific architecture,

132
00:11:09.279 --> 00:11:13.480
and WASM allows you to compile C
code or other code that you normally

133
00:11:13.519 --> 00:11:18.919
targets real machines to run on a
web browser or a node dass back end.

134
00:11:20.440 --> 00:11:22.080
It's been around for a while and
people have been waiting for it to

135
00:11:22.279 --> 00:11:26.960
kind of like you know, become
more prevalent, and it's been slow to

136
00:11:28.000 --> 00:11:31.240
develop, but in a I think
a good way, they're being considered because

137
00:11:31.360 --> 00:11:35.399
you know, they're there. There
have been a lot of provisional standards of

138
00:11:35.440 --> 00:11:39.759
things that get partially released and then
you end up with lots of like incompatible

139
00:11:41.000 --> 00:11:45.799
implementations of things. So it's good
that they're if they're building a universal format

140
00:11:45.879 --> 00:11:48.960
for running code that they you know, they take their time, and one

141
00:11:48.960 --> 00:11:58.919
of the big advancements that they've had
recently is having high level an interface definition

142
00:11:58.000 --> 00:12:03.960
language with high level types between WASM
modules so you'll be able to have a

143
00:12:05.080 --> 00:12:11.399
runtime with Python, Rust c code
all interoperating with each other through the WASM

144
00:12:11.480 --> 00:12:16.799
runtime using high level types and not
needing all those languages to know directly how

145
00:12:16.840 --> 00:12:20.600
to talk to each other or in
bed or things like that. So,

146
00:12:20.720 --> 00:12:26.120
like all of the composition stuff that
we do now in order to create software

147
00:12:26.759 --> 00:12:33.759
and either like making stubs for specific
language run times or using even containers right

148
00:12:33.919 --> 00:12:37.600
like and saying oh, I need
a sidecar and need another complete copy of

149
00:12:37.639 --> 00:12:41.799
Linux with its own libraries and all
this other stuff, when really I just

150
00:12:41.840 --> 00:12:48.080
want this HTTP server with this specific
kind of way of working that sort of

151
00:12:48.159 --> 00:12:52.879
thing. That complexity will go away, and the WASM runtime will actually run

152
00:12:52.440 --> 00:12:58.720
HTTP between components with no network involved. So you'll get down to like nanosecond

153
00:12:58.799 --> 00:13:03.679
lay incies for making HDCP calls between
components. They'll all be in the same

154
00:13:03.759 --> 00:13:11.679
run time, and you will eliminate
all of that network and operating system stuff

155
00:13:11.159 --> 00:13:16.039
that allows us to do composition now. And so I think that will a

156
00:13:16.080 --> 00:13:20.960
lot of its own complexities, right, but it will also eliminate a whole

157
00:13:20.960 --> 00:13:24.200
air of stuff that we're dealing with
now to build software, which is I

158
00:13:24.240 --> 00:13:30.519
have to deal with a whole lot
of operating system stuff and Docker and you

159
00:13:30.519 --> 00:13:35.039
know, all this other understanding when
you know, I'd like to just be

160
00:13:35.360 --> 00:13:39.080
working in terms of higher level application
tools, and so I think that kind

161
00:13:39.080 --> 00:13:45.360
of compaction is what we get over
time. So like we figure out this

162
00:13:46.200 --> 00:13:50.039
set of platform layers. We're working
with this now, but it may not

163
00:13:50.159 --> 00:13:56.080
become part of the permanent, you
know, strata underneath us because it hasn't

164
00:13:56.120 --> 00:14:01.320
proven itself, and we're going to
go some other direction and maybe eliminate that

165
00:14:01.399 --> 00:14:03.679
layer, try an alternative, and
then eventually, like Linux became, you

166
00:14:03.759 --> 00:14:09.080
know, the sort of standard operating
system substrate, right, and it took

167
00:14:09.120 --> 00:14:13.440
a long time to get that consolidated
and sort of decided as an industry.

168
00:14:15.440 --> 00:14:16.480
No, I totally get that.
I mean it makes a lot of sense

169
00:14:16.480 --> 00:14:20.080
actually when you if you're thinking about
where the future of a particular component is

170
00:14:20.120 --> 00:14:24.279
going. And I've this isn't the
first time I've heard web assembly. I

171
00:14:24.320 --> 00:14:28.559
think I've been brought up on a
lot of teams I've led in the last

172
00:14:28.600 --> 00:14:31.559
decade, and it's always been like
it's still too early in a way to

173
00:14:31.600 --> 00:14:37.000
have these modules built and then running. Even if you're you know, using

174
00:14:37.000 --> 00:14:41.159
the website, and historically it was
there weren't bindings available, but the idea

175
00:14:41.240 --> 00:14:45.039
that Okay, we're trying to figure
out where the top of the pyramid is,

176
00:14:45.679 --> 00:14:48.120
where the actual application, where the
actual value is, and the interoperability

177
00:14:48.159 --> 00:14:52.799
between modules that could be built in
any language and then run only at run

178
00:14:52.840 --> 00:14:56.799
time proves okay, we sort of
figured out a success path here. You

179
00:14:56.799 --> 00:14:58.840
know. Now, let's get rid
of all the crowd that doesn't directly deliver

180
00:14:58.919 --> 00:15:05.399
it that execution platform and focus on
that. Rebuild it, rebuild what the

181
00:15:05.399 --> 00:15:11.840
browser is offering potentially, and get
to the point where we can deliver the

182
00:15:11.879 --> 00:15:16.000
application on top of it. Yeah. One of the one of the sort

183
00:15:16.039 --> 00:15:24.120
of byproducts of web assembly that's been
kind of useful already and probably increase is

184
00:15:24.240 --> 00:15:31.480
the access to the GPU from web
assembly is starting to become standardized, which

185
00:15:31.519 --> 00:15:37.519
means that writing code to talk to
the GPU gets drastically simpler. So like

186
00:15:37.639 --> 00:15:41.440
right now, in order to talk
to a GPU, you need, like,

187
00:15:41.000 --> 00:15:46.120
you know, you need the library
specific to that GPU, you need

188
00:15:46.159 --> 00:15:48.799
a lot of library, you need
a lot of code, And now it's

189
00:15:48.799 --> 00:15:54.080
becoming easier to just write some rust
code that uses the GPU in a fairly

190
00:15:54.240 --> 00:15:58.480
compact way without requiring you know,
a half a gig or a gigb library

191
00:15:58.519 --> 00:16:03.639
downloads in order to get to it. So you know that that was done

192
00:16:04.000 --> 00:16:10.039
before AI was really prevalent, but
like it's already sort of yielding some dividends

193
00:16:10.080 --> 00:16:15.080
in terms of simplifying being able to
run, you know, and that you

194
00:16:15.080 --> 00:16:18.279
could think of that as a platform, Like that platform stack for running AI

195
00:16:18.399 --> 00:16:22.279
tools is enormous, but people have
been working on sort of compacting it down,

196
00:16:22.399 --> 00:16:30.720
like the Mozilla Foundation has. They
call it Lama file and it is

197
00:16:30.759 --> 00:16:37.080
a single binary solution for running a
local LLM, and it comes It's essentially

198
00:16:37.120 --> 00:16:44.240
a very fancy self extracting shell script
with a bunch of zips in it and

199
00:16:44.320 --> 00:16:49.360
a new kind of lips that will
run the same four gig binary includes all

200
00:16:49.399 --> 00:16:53.840
the model weights and the binaries to
run on Windows, mac Os, Linux,

201
00:16:55.519 --> 00:17:00.320
ARM and x eighty six. To
just download this thing, make it

202
00:17:00.360 --> 00:17:04.160
executable and run it wherever you are, and suddenly you have you know,

203
00:17:04.440 --> 00:17:10.000
Olama running or sorry, open lama. This All of these things are named

204
00:17:10.079 --> 00:17:14.720
so similarly, right, it's like
all some play on Lama. Olama is

205
00:17:14.759 --> 00:17:21.599
another system for running local LMS that's
not related and they kind of make it

206
00:17:21.640 --> 00:17:26.359
easy, but they go through that
gig download of just libraries. So like

207
00:17:26.400 --> 00:17:30.880
that's another like platform stack that's just
going to like get squashed. And right

208
00:17:30.920 --> 00:17:37.799
now, understanding what's going on in
terms of at least the software platform really

209
00:17:37.799 --> 00:17:42.920
difficult, right, But if you
can squash down those layers into I just

210
00:17:44.000 --> 00:17:49.759
need you know, we're in that
kind of turbulent situation of extreme innovation where

211
00:17:51.119 --> 00:17:55.599
everyone's just utilizing things from everywhere else
and then in a few years it'll settle

212
00:17:55.640 --> 00:17:59.799
down and it'll be a little easier
to understand what's going on because it'll standardize.

213
00:18:00.039 --> 00:18:03.559
It will be a much slimmer way
of getting things done. I mean

214
00:18:03.640 --> 00:18:07.400
that seems like some like a great
foresight there. Like I think everyone knows

215
00:18:07.519 --> 00:18:11.119
that the fads are going to end
at some point and there's going to be

216
00:18:11.440 --> 00:18:15.559
what is left act the actual innovation. But that puts a name on it,

217
00:18:15.640 --> 00:18:18.839
right, It's it's that we are
searching for the optimal usage here and

218
00:18:18.920 --> 00:18:22.440
when someone figures it out, all
those other things will go away. And

219
00:18:22.480 --> 00:18:26.240
we're actually seeing this sort of playout
what's happening right now? Yeah, right

220
00:18:26.279 --> 00:18:30.559
for sure? And I think there's
a huge speed component as well, because

221
00:18:30.640 --> 00:18:33.400
unlike web assembly and the layers that
came before it, which I want to

222
00:18:33.440 --> 00:18:38.200
say are things like infrastructure as code, especially in the develop space, there's

223
00:18:38.440 --> 00:18:45.400
a lot of companies putting a huge
amount of financial capital behind quickly investing in

224
00:18:45.480 --> 00:18:52.000
hoping to both be the first and
also most successful getting whatever it is user

225
00:18:52.000 --> 00:18:59.319
percentage numbers. So any thoughts like
so I do I have? I think

226
00:18:59.359 --> 00:19:04.519
the there's a hype curve, right, and I wrote a blog post about

227
00:19:04.559 --> 00:19:08.079
it recently. Was they kept seeing, you know, the industry is just

228
00:19:08.119 --> 00:19:14.559
constantly one hype cycle after another,
and you know, part of the Gartner

229
00:19:14.640 --> 00:19:17.839
hype cycles, it looks like this, and then it goes like there's that

230
00:19:17.920 --> 00:19:23.119
trough of disillusionment and then it climbs
into a slope of you know what they

231
00:19:23.119 --> 00:19:30.640
call the the plateau of productivity or
something like that, right, And there

232
00:19:30.680 --> 00:19:36.200
are some hype cycles which don't seem
to result in a plateau of productivity.

233
00:19:36.960 --> 00:19:41.400
They just seem to come through like
a wave, but then drop back down

234
00:19:41.400 --> 00:19:45.880
again and not everyone catches it.
And I think micro services are an example

235
00:19:45.920 --> 00:19:55.279
of that. There's in larger,
slower moving organizations micro services have not really

236
00:19:55.359 --> 00:20:00.920
had that much benefit and potentially even
been detrimental, like had almost the opposite

237
00:20:00.960 --> 00:20:07.880
effect of making systems far more complex
and just as slow and maybe even more

238
00:20:07.920 --> 00:20:11.279
dangerous than you know, the previous
legacy systems that we're there. If you

239
00:20:11.359 --> 00:20:15.440
contrast that with something like big data, you know, big data as like

240
00:20:15.599 --> 00:20:22.559
the lifeblood of so many companies now
and it and the difference between those two

241
00:20:22.680 --> 00:20:26.559
things, if you look at is
business value, right, you know,

242
00:20:26.720 --> 00:20:34.359
big data was easy to translate into
business value. Microservices is just a technical

243
00:20:34.559 --> 00:20:41.400
solution to things, and there can
be business value to it, but it

244
00:20:41.440 --> 00:20:47.039
didn't originate necessarily there, and it
was to solve an engineering problem and an

245
00:20:47.160 --> 00:20:56.240
organizational a socio technical issue, and
that ability to move fast I think ends

246
00:20:56.319 --> 00:21:03.480
up being important but sometimes overplayed.
So it's especially weird in a time like

247
00:21:03.559 --> 00:21:11.000
now when we have AI making everything
move so much faster that there's this like

248
00:21:11.200 --> 00:21:18.240
big gap opening up between large and
small players to the point where it's been

249
00:21:18.559 --> 00:21:26.319
you know, we're eighteen months little
like maybe what twenty months in and the

250
00:21:26.359 --> 00:21:32.279
big players are trying to keep up
and they're adopting things that are already legacy,

251
00:21:33.200 --> 00:21:37.240
right, So lang chain took so
much mind share early on, and

252
00:21:37.279 --> 00:21:41.440
then they got a hold out of
the thought Works radar, right, one

253
00:21:41.480 --> 00:21:45.759
of the few things on the recently
published radar that was actually a hold and

254
00:21:45.119 --> 00:21:51.519
it it just it probably hit it
right at the point where a lot of

255
00:21:51.519 --> 00:21:56.440
companies were finally ready to start like
adopting tools like that. And so like

256
00:21:56.640 --> 00:22:03.359
all of this continuous disruption and figuring
out out has a natural cost to it,

257
00:22:03.440 --> 00:22:06.960
and I think everyone wants to move
fast, but they're going to end

258
00:22:07.039 --> 00:22:11.200
up wasting quite a bit in order
to figure that out. And I think

259
00:22:11.240 --> 00:22:15.440
the companies that are more experimental with
that rather than saying, oh, we're

260
00:22:15.480 --> 00:22:18.680
going to define the standard and go, it's not a time to define standards.

261
00:22:18.160 --> 00:22:23.359
It's a time to experiment and figure
out what works and learn more nimble

262
00:22:23.400 --> 00:22:29.000
approaches to business, right, Because
there's still plenty of companies that don't know

263
00:22:29.039 --> 00:22:33.160
how to experiment. They only know
let's put it through a bureaucratic process that

264
00:22:33.240 --> 00:22:41.200
gets us something to work with in
eighteen months. For those that are generically

265
00:22:41.240 --> 00:22:47.400
moving slower and aren't interested in defining
the space or even experimenting. Is this

266
00:22:47.440 --> 00:22:51.160
the sort of thing where there's a
lot of value in waiting and waiting it

267
00:22:51.200 --> 00:22:55.359
out, hopefully seeing where the leaders
are and either I don't know, purchasing

268
00:22:55.400 --> 00:23:00.759
them through acquisitions or buying their products
or partnering with them going forward, or

269
00:23:00.839 --> 00:23:04.480
is there still room everywhere for companies
that are invested in technology in some way

270
00:23:04.559 --> 00:23:10.319
to also be experimenting. I think
there are ways to experiment. I think

271
00:23:10.680 --> 00:23:15.720
banking on things is a little tough
right now. And there's an old saying

272
00:23:17.039 --> 00:23:21.599
I wish I could attribute it,
but used to you know, encouraging people

273
00:23:21.599 --> 00:23:29.480
to use boring technology. Right it's
it gets dangerous and it is an important

274
00:23:29.480 --> 00:23:41.039
bit with platforms. If you throw
too many sort of modern or non commodity

275
00:23:41.119 --> 00:23:45.400
things into your platform, you're going
to end up with potentially a lot of

276
00:23:45.440 --> 00:23:51.200
parts that don't mesh very well together, and the experience of the users of

277
00:23:51.240 --> 00:23:56.960
your platform, both your internal and
if you know, external users depend on

278
00:23:56.039 --> 00:24:02.000
it working, you know, well
not be good. So you have to

279
00:24:02.160 --> 00:24:04.440
make a trade off of you know, I'm going to go for modern things

280
00:24:04.680 --> 00:24:11.839
for part of this, because they
are still you know, bespoke and new

281
00:24:11.920 --> 00:24:15.640
parts of that I can't get anywhere
else. But you know, for these

282
00:24:15.680 --> 00:24:21.960
other things like the eighty percent,
Right, I should be going for commodity

283
00:24:22.000 --> 00:24:26.960
items and not you know, overburden
myself with too many new things at the

284
00:24:26.000 --> 00:24:30.920
same time. So yeah, there's
there's plenty to be gained for you know,

285
00:24:32.119 --> 00:24:34.839
mL and AI have been around for
a long time, right, It's

286
00:24:36.920 --> 00:24:40.920
everyone wants to make it the core
of everything. But you know, if

287
00:24:40.960 --> 00:24:45.599
you take a somewhat more experimental approach
and figure out where the areas I could

288
00:24:45.680 --> 00:24:51.240
use it that are truly differentiating for
my business as opposed to like a you

289
00:24:51.279 --> 00:24:55.319
know, a lot of executives are
looking at AIS and cost savings, right,

290
00:24:56.000 --> 00:25:00.480
and it's not it's certainly not at
the point of being that it is.

291
00:25:00.640 --> 00:25:03.799
It's a first mover advantage, not
a cost savings right now, and

292
00:25:03.839 --> 00:25:11.039
when it's a first mover advantage that
is almost like the opposite of being a

293
00:25:11.079 --> 00:25:15.640
cost saver. Those are people who
are willing to put money into things in

294
00:25:15.759 --> 00:25:22.880
order to gain an advantage. There's
a story from Simon Wordley about the beginning

295
00:25:22.920 --> 00:25:29.240
of cloud and how the cloud vendors
were selling you know, corporations and such

296
00:25:29.400 --> 00:25:33.920
just you know, adopting cloud will
save you money, right, And the

297
00:25:33.200 --> 00:25:38.920
first company to decide to use the
cloud to accelerate basically threw that out the

298
00:25:38.960 --> 00:25:44.480
window because everyone else had to use
the cloud to accelerate and therefore not save

299
00:25:44.559 --> 00:25:48.000
money. Right, So the same
kinds of things play out with AI.

300
00:25:48.640 --> 00:25:52.559
You know, using AI to save
money will only work if everyone decides to

301
00:25:52.599 --> 00:25:56.599
do it that way. If someone
uses it to accelerate past you, well

302
00:25:56.680 --> 00:26:00.039
you're probably going to be forced to
do the same thing. Yeah, that's

303
00:26:00.079 --> 00:26:03.240
for sure the case. I mean, I remember thinking about when awos came

304
00:26:03.279 --> 00:26:07.440
out. It wasn't it wasn't for
everyone in a way. It was,

305
00:26:07.759 --> 00:26:11.160
oh, look at all these companies
that are maybe in startup land where the

306
00:26:11.200 --> 00:26:14.759
tools they had were not really that
effective, and we would just take all

307
00:26:14.799 --> 00:26:19.279
of that work, all of the
capital expenditures that they would need to purchase

308
00:26:19.599 --> 00:26:25.279
physical machines, data centers, et
cetera, and just immediately eliminate it.

309
00:26:25.319 --> 00:26:30.960
And for sure there is a capital
expenditure sort of savings. They are cost

310
00:26:30.960 --> 00:26:36.359
savings, but realistically, for sure
it's on the speed side. Yeah,

311
00:26:36.400 --> 00:26:42.279
and that you know, aws and
cloud providers are mashing. You know,

312
00:26:42.319 --> 00:26:48.759
they are platforms. They've grown in
scope to where they're not always the best

313
00:26:49.519 --> 00:26:56.759
self service platform for your internal developers, and they did originally try and sort

314
00:26:56.799 --> 00:27:03.880
of pitch that, but it gets
messy really fast. But they did bring

315
00:27:03.920 --> 00:27:10.440
the whole concept of self service IT
and computing to the four And what they

316
00:27:10.440 --> 00:27:14.960
did is they eliminated all that human
in the loop stuff that people in itad

317
00:27:14.960 --> 00:27:17.319
traditional Like I want to set up
an app, all right, I got

318
00:27:17.359 --> 00:27:21.759
to talk to procurement and get the
hardware. I've got to get a team

319
00:27:22.359 --> 00:27:26.440
that will set it up for me. I will get another team to set

320
00:27:26.519 --> 00:27:29.359
up other stuff on top, and
like, you go through this whole process,

321
00:27:29.400 --> 00:27:32.680
whereas they made it all right,
you make an API call and we'll

322
00:27:32.680 --> 00:27:36.400
give you a database, right,
and you don't have to go through months

323
00:27:36.599 --> 00:27:41.680
and many different teams. So that
aspect of platforms has kind of been trained

324
00:27:41.720 --> 00:27:48.119
in from an early point in cloud. I think the difficulty is translating that

325
00:27:48.279 --> 00:27:53.440
between what cloud providers are sort of
able to do and what organizations need to

326
00:27:53.480 --> 00:28:00.640
do either on top or beside that
to provide a similar level of experience that

327
00:28:00.839 --> 00:28:06.559
is like specialized to what that organization
needs. And you know, the people

328
00:28:06.759 --> 00:28:11.079
working on the cloud providers, they're
all developers. They're used to building and

329
00:28:12.160 --> 00:28:18.839
systems that work as systems, whereas
it people are not developers like systems,

330
00:28:18.880 --> 00:28:26.160
people glue things together. They don't
build, you know, rock solid solutions

331
00:28:26.200 --> 00:28:29.400
that they can present as an API
to people. And that's been some of

332
00:28:29.400 --> 00:28:33.039
the gap of platforms being adopted internally, is that, you know, it's

333
00:28:33.079 --> 00:28:37.960
been a phase of adapting to oh, I need to build a rock solid

334
00:28:38.079 --> 00:28:47.720
product. Now I can't just make
this one narrow automation of some specific task.

335
00:28:48.400 --> 00:28:51.359
I need to make something other people
can build on. That's a very

336
00:28:51.400 --> 00:28:56.839
different approach to things than what it
is traditionally used to So it's taken time

337
00:28:56.920 --> 00:29:02.039
for that to filter out, and
then you have vendors flooding into the space

338
00:29:02.160 --> 00:29:07.960
to try and make this easier for
people to do and kind of build that

339
00:29:07.279 --> 00:29:12.200
product mindset as a product. But
if you don't have the mindset of building

340
00:29:12.400 --> 00:29:18.440
products to begin with, you can
misuse tools. I mean, the same

341
00:29:18.480 --> 00:29:22.359
thing happens with all of our other
like sort of micro services and cloud.

342
00:29:23.359 --> 00:29:27.759
If you keep the wrong mindset,
you'll just do data center in the cloud.

343
00:29:29.359 --> 00:29:32.400
If you keep the wrong mindset with
micro services, you'll just make a

344
00:29:32.440 --> 00:29:37.559
giant distributed monolith. If you go
and keep an old it mindset with platforms,

345
00:29:37.920 --> 00:29:44.359
maybe you're going to require a ticket
submitted right that you use the platform

346
00:29:44.400 --> 00:29:48.440
on behalf of the user. So
you know, there's a there's a continual

347
00:29:48.759 --> 00:29:53.359
like change in how we do things, but we tend to carry some of

348
00:29:53.400 --> 00:30:00.200
our existing ways of getting things done
forward that is not usually pretty health think,

349
00:30:00.079 --> 00:30:03.440
yeah, for sure, that's a
pretty good insight. I think.

350
00:30:03.559 --> 00:30:06.079
I mean, we're all we're talking
about, and so you know you've nailed

351
00:30:06.119 --> 00:30:11.920
the web browser is for sure a
platform for running code modules of all kinds,

352
00:30:11.960 --> 00:30:18.599
especially through web assembly, cloud AI? Are there we say there are

353
00:30:18.599 --> 00:30:22.720
platforms everywhere? Are there other prominent
areas of tech that sort of encompass this

354
00:30:23.160 --> 00:30:26.680
that you know are constantly on your
mind? Or you know, these are

355
00:30:26.720 --> 00:30:32.599
the big three? So I think
the the thing that doesn't get as much

356
00:30:32.599 --> 00:30:38.880
attention is the actual you know,
we call them internal developer platforms, but

357
00:30:40.599 --> 00:30:47.960
what we mean are portals to platforms
in most cases. Right, But until

358
00:30:47.960 --> 00:30:52.839
WASM becomes really widespread, I still
think we have the issue of what is

359
00:30:52.880 --> 00:30:59.480
the environment that the developer actually works
in and builds and runs in. And

360
00:30:59.799 --> 00:31:03.480
there's a whole there's a giant stack
in there that I don't think it's quite

361
00:31:03.599 --> 00:31:11.680
enough attention because a lot of the
platform thinking happens from the system side and

362
00:31:11.880 --> 00:31:17.319
not always the developer side. So
systems people think, well, you know,

363
00:31:17.440 --> 00:31:19.400
once I get Tomcat installed, you're
good, right, Or once I

364
00:31:19.440 --> 00:31:22.960
get the OS installed, you know, it's all Tomcat and then you're good,

365
00:31:22.559 --> 00:31:27.599
and Tomcat or whatever or node or
whatever environment is just it's just a

366
00:31:27.759 --> 00:31:32.960
very base layer, and we've been
trying to accommodate them with more and more

367
00:31:33.000 --> 00:31:37.839
of the pipes, with meshes and
stuff like that. But there is a

368
00:31:37.920 --> 00:31:45.640
whole aspect of building applications that could
benefit from platforms in terms of, well,

369
00:31:45.759 --> 00:31:48.240
I need to talk to a database, how about I talk to it

370
00:31:48.279 --> 00:31:53.839
in a standardized way that's appropriate for
my organization and what our local standards are

371
00:31:53.880 --> 00:32:00.559
and how we've architected for talking to
databases. And that bit is kind of

372
00:32:00.839 --> 00:32:07.200
not as doesn't get as much attention
because it always feels like some of these

373
00:32:07.759 --> 00:32:10.720
you know, evolutions or revolutions always
get pushed from one side of the house,

374
00:32:12.519 --> 00:32:15.920
right, and they therefore there isn't
necessarily this kind of balanced view.

375
00:32:16.400 --> 00:32:20.839
So I think there are plenty of
areas like that in the you know,

376
00:32:21.000 --> 00:32:24.839
data I've had a few people ask
is a is a data system a platform?

377
00:32:24.880 --> 00:32:28.200
Like, of course it is,
but they don't, you know,

378
00:32:28.240 --> 00:32:32.960
they feel hesitant to bring it up
because they don't feel I'm not sure why,

379
00:32:34.119 --> 00:32:37.559
Like, you know, it's easy
to build stuff on top of data

380
00:32:37.559 --> 00:32:42.839
platforms and therefore call it a platform. But there's this perception that if it's

381
00:32:42.880 --> 00:32:45.519
not kubernetas, it's not a platform, right, And that's one of the

382
00:32:45.519 --> 00:32:52.200
things I think is a bit difficult, is the idea that like platforms have

383
00:32:52.279 --> 00:32:57.400
to look a certain way rather than
be a mindset about something for people to

384
00:32:57.440 --> 00:33:00.759
build them. No, I mean, I think that makes a lot of

385
00:33:00.759 --> 00:33:07.759
sense realistically, just getting stuck on
the if it's not Kubernetes, it's it's

386
00:33:07.839 --> 00:33:12.319
not a platform. I mean,
I think the answer here is that there

387
00:33:12.319 --> 00:33:16.559
were platforms before and there's got to
be platforms like after that. Otherwise the

388
00:33:16.599 --> 00:33:21.359
word sort of doesn't have a lot
of meaning. It's just alternative to that.

389
00:33:22.200 --> 00:33:27.559
Yeah, and it really you know. So I am involved in the

390
00:33:27.559 --> 00:33:32.119
CNCF Working Group for Platforms, and
I've been a little hesitant to get involved

391
00:33:32.119 --> 00:33:38.880
with the CNCF because their definition of
cloud native is containers in kubernets right,

392
00:33:38.960 --> 00:33:47.880
And my definition of cloud native goes
well longer in history than that. Like,

393
00:33:49.000 --> 00:33:53.200
I'm more like the twelve factor app
type cloud native, right. And

394
00:33:54.359 --> 00:34:00.799
the nice thing it's been is the
Working Group for Platforms has been very open

395
00:34:00.839 --> 00:34:07.640
minded in terms of what a platform
is defined as and what is important about

396
00:34:07.680 --> 00:34:13.119
a platform, and it has not
been about kubernet As specifically, So I

397
00:34:13.119 --> 00:34:19.440
think there is some there is some
movement towards, you know, figuring out

398
00:34:19.599 --> 00:34:25.119
what cloud native platforms look like without
it being completely bound to kun Is because

399
00:34:25.400 --> 00:34:29.400
I think, you know, everyone
says that the you know, cloud native

400
00:34:29.440 --> 00:34:32.199
is built on containers, but like
I said, WASM could throw that completely

401
00:34:32.280 --> 00:34:37.880
out the window within five years or
so, so you know, making yourself

402
00:34:37.920 --> 00:34:46.159
completely dependent on a container development environment, workflow and mindset for building distributed applications

403
00:34:47.000 --> 00:34:52.159
might not be the best approach.
So I mean, it's good for the

404
00:34:52.199 --> 00:34:57.119
CNCF because they're so heavily invested in
a kubernet Is based ecosystem, with a

405
00:34:57.159 --> 00:35:04.000
few other things possible. But I
like that the Working Group for Platforms is

406
00:35:04.559 --> 00:35:09.360
more open minded than that, and
you know, we're focused on making good

407
00:35:09.400 --> 00:35:15.920
habits and hygiene around how you work
with people in an organization to decide,

408
00:35:16.000 --> 00:35:20.639
you know, what should we build
and how do we deliver value better.

409
00:35:21.199 --> 00:35:29.119
So their their maturity model, which
got published right around cupcom Chicago last fall.

410
00:35:29.719 --> 00:35:37.800
It doesn't mention text acts right,
and there is some eagerness for technical

411
00:35:38.239 --> 00:35:44.199
content from this working group, but
I believe it has to be delivered in

412
00:35:44.239 --> 00:35:46.639
such a way as to not It
needs to be sort of like you know,

413
00:35:46.679 --> 00:35:51.440
a cloud provider has, like you'll
read the documentation, they'll be tabs

414
00:35:51.480 --> 00:35:54.440
for each language and SDK you could
use to I think that's sort of the

415
00:35:54.519 --> 00:35:59.719
way we need to go about it
in terms of providing you know, not

416
00:35:59.840 --> 00:36:05.840
a specific reference implementation, but here's
an approach you could take using two or

417
00:36:05.840 --> 00:36:12.079
three different options for making your platform
code testable or something like that, right,

418
00:36:12.320 --> 00:36:16.480
and rather than picking a specific like
you know, test kitchen for terror

419
00:36:16.480 --> 00:36:20.960
forms, like, show them a
few different options and give them the mindset

420
00:36:21.159 --> 00:36:23.199
that they need to get into.
I mean, I think that's a really

421
00:36:23.199 --> 00:36:28.840
interesting point. Containers took us a
very far distance, and you know,

422
00:36:28.920 --> 00:36:31.599
so thank you to Ducker for that. We got the oci out, the

423
00:36:31.599 --> 00:36:36.920
full initiative and now it is for
sure an open standard. But you brought

424
00:36:37.000 --> 00:36:39.840
up a point earlier on where you
that's not even really what you want to

425
00:36:40.119 --> 00:36:44.800
have to run or deploy, right, You may just want the HDP interface,

426
00:36:45.199 --> 00:36:47.119
and you still have to sort of
decide, Okay, what's my base

427
00:36:47.239 --> 00:36:50.239
image, you know, where does
that come from? You're really still just

428
00:36:50.280 --> 00:36:53.559
building on top of operating system or
other technology, and no one for sure

429
00:36:53.599 --> 00:36:58.239
actually really cares about that. And
now we've got I mean, someone does,

430
00:36:58.360 --> 00:36:59.920
Like I don't want to want to
throw that up. Someone does.

431
00:37:00.079 --> 00:37:04.079
Someone does, But we I think
there was a I think in some ways

432
00:37:04.119 --> 00:37:06.960
Doctor took us a long way,
but it also took us backwards too,

433
00:37:07.079 --> 00:37:17.639
interesting because there was a move to
application paths like cloud Foundry h which is

434
00:37:17.760 --> 00:37:22.760
just sort of like a uh,
you know, an installable version of like

435
00:37:22.800 --> 00:37:29.760
a Heroku. That did a lot
of you know, really looked at concerns

436
00:37:30.159 --> 00:37:37.360
from the engineer's perspective, like you
know, people building systems as opposed to

437
00:37:37.400 --> 00:37:43.679
platforms, and it took a lot
into account for them and really focused you

438
00:37:43.679 --> 00:37:49.000
know, it's very user focused.
And we went a little backwards because of

439
00:37:49.480 --> 00:37:52.719
I mean, there were some issues
with running up a platform that way and

440
00:37:52.960 --> 00:37:58.360
that level of abstraction. We kind
of decided a we didn't want that level

441
00:37:58.360 --> 00:38:02.960
of abstraction in that way, but
also is a lot of cost and licensing

442
00:38:04.320 --> 00:38:08.719
involved in the decision to sort of
back off to something like kubernets. And

443
00:38:08.760 --> 00:38:15.559
then organizations find out that they're giving
up all of these pass style features and

444
00:38:15.840 --> 00:38:19.679
suddenly, like I know of one
organization that's figured out, oh, we

445
00:38:19.719 --> 00:38:24.280
went over to kubernets, and we
didn't realize that, Like every app deployed

446
00:38:24.440 --> 00:38:31.199
in cloud Foundry got a like a
managed ravi at MQ right and they had

447
00:38:31.239 --> 00:38:35.719
a key. They didn't have to
think about messaging for their app, and

448
00:38:35.800 --> 00:38:40.199
suddenly we moved them to kubernets,
and we're forcing all these teams to figure

449
00:38:40.199 --> 00:38:44.639
out how to run hundreds of instances
of you know, a queuing system.

450
00:38:45.400 --> 00:38:50.599
So I think there, you know, there's been a little bit of a

451
00:38:50.639 --> 00:38:57.079
backstep that wasn't even necessary in some
cases, like for instance, take build

452
00:38:57.119 --> 00:39:01.360
packs. Buill packs are wonderful for
not caring about you know, the container

453
00:39:04.639 --> 00:39:10.920
stuff down below, but and there
it's possible to use them with containers,

454
00:39:12.440 --> 00:39:16.840
but nobody does, I mean,
same organization that's on cloud Foundry for some

455
00:39:16.880 --> 00:39:22.800
reason, instead of figuring out build
packs on kubernets just went with making everyone

456
00:39:22.800 --> 00:39:27.280
produce Docker files, right, and
so like all of that work invested in

457
00:39:27.519 --> 00:39:30.920
making their apps run as build packs
needed to be you know, pretty much

458
00:39:31.000 --> 00:39:37.360
redone in order to run on kubernetas. So so I do appreciate some of

459
00:39:37.400 --> 00:39:42.960
the stuff that we got out of
Docker, Like I come from that,

460
00:39:43.159 --> 00:39:45.800
Like I said, that time of
oh, figuring out how to package up

461
00:39:45.840 --> 00:39:51.360
software on several different operats, Like
it's it's still an issue on LINEX how

462
00:39:51.400 --> 00:39:55.079
to package and distribute software. Docker
does so much for that, but it's

463
00:39:55.239 --> 00:40:00.559
it's a lower level than we need
to be for people to be productive building

464
00:40:00.800 --> 00:40:07.800
applications and business value. I sort
of want to dive into that because there

465
00:40:07.840 --> 00:40:15.119
seems like a really interesting corollary here
between what you want out of the application

466
00:40:15.880 --> 00:40:21.559
layer that you're building and maybe some
of the things that the YAMO file in

467
00:40:21.599 --> 00:40:24.079
the pod for Krubernetes offers, Like
I can think about, you know,

468
00:40:24.119 --> 00:40:29.239
what does an application actually need?
What would you prefer doctor to have provided

469
00:40:29.280 --> 00:40:32.280
it? Would it be like a
the HTTP interface, the message bus,

470
00:40:32.400 --> 00:40:37.440
like you just hook into standard strategies
for that. You don't have to know

471
00:40:37.480 --> 00:40:42.440
what the implementation is. Is that
yeah, exactly like the if I'm building

472
00:40:42.440 --> 00:40:47.440
an application, I want abstractions.
I want to build. You know,

473
00:40:47.679 --> 00:40:52.880
I'm going to build a diagram,
a logical diagram of an application, and

474
00:40:53.400 --> 00:41:00.079
it will have, you know,
connections that are logical between components and not

475
00:41:01.000 --> 00:41:07.079
I have to do this APT get
install of this thing and wire it up.

476
00:41:07.800 --> 00:41:14.199
And there is a certain amount of
there is a certain bit where developers

477
00:41:15.039 --> 00:41:20.280
don't understand those things so sometimes don't
want to so they don't understand basics of

478
00:41:20.360 --> 00:41:27.480
like how network data moves right,
and ports and firewalls and but you know,

479
00:41:28.320 --> 00:41:31.039
there's a like I said earlier,
there's a difference between knowing about those

480
00:41:31.079 --> 00:41:37.559
things and being forced to deal with
them, right. So I think there

481
00:41:37.639 --> 00:41:43.599
is far too much in a helm
chart or docer file that we force developers

482
00:41:43.599 --> 00:41:47.360
to understand and deal with as opposed
to figuring out how to you know,

483
00:41:47.920 --> 00:41:51.719
ease the way. And there's a
lot I think there is a fair bit

484
00:41:51.760 --> 00:41:55.960
of work being done on that,
but again we keep pushing it from the

485
00:41:57.000 --> 00:42:00.719
system side. Right, A lot
of platforms dev so a lot of that

486
00:42:00.800 --> 00:42:04.519
stuff gets pushed from the system side, and we keep saying, well,

487
00:42:04.559 --> 00:42:07.440
we want you to work in this
format, We're going to make it easier,

488
00:42:07.000 --> 00:42:12.519
and the developers are like, you
know, it's just it's really complex.

489
00:42:12.679 --> 00:42:16.159
Like there were a lot of developers
are really into it because it's exciting,

490
00:42:16.480 --> 00:42:21.599
right, but at the same time, many of them just want to

491
00:42:21.639 --> 00:42:25.119
be able to figure out how to
build what their job is telling them to

492
00:42:25.119 --> 00:42:30.679
build, and not take all these
like side trips to figure out on stack

493
00:42:30.719 --> 00:42:36.199
overflow, like how do I get
this like Docker composed to work or something

494
00:42:36.280 --> 00:42:40.320
like that. So yeah, you
know, it's part of that is like

495
00:42:40.360 --> 00:42:49.039
the whole shift left idea, which
puts too much on people on the left.

496
00:42:49.440 --> 00:42:53.960
Right. The the idea of getting
earlier on the process is good,

497
00:42:54.000 --> 00:42:58.760
but there's something else that came up
and I don't know where it came from,

498
00:42:59.000 --> 00:43:02.920
but we were in we had a
platform coffee before cupcon EU in the

499
00:43:02.960 --> 00:43:09.000
mornings, and someone brought up shift
down so certain things should be shifted left

500
00:43:09.159 --> 00:43:13.239
and made a concern like, you
know, testing, We've always had this

501
00:43:13.320 --> 00:43:16.320
idea that you know, separate QA
team and everything, and there is a

502
00:43:16.320 --> 00:43:22.440
fair bit of the functionality of testing
that should be done on the left,

503
00:43:22.960 --> 00:43:30.199
but figuring out test frameworks and all
of the plumbing and mechanics and practices that

504
00:43:30.239 --> 00:43:34.599
shouldn't get all shifted left, that
should get shifted down, and you still

505
00:43:34.679 --> 00:43:40.440
need a quality engineering team. They're
just not black box testing anymore. They're

506
00:43:40.480 --> 00:43:45.880
responsible for a different set of things
that offload. As we've shifted load over

507
00:43:45.960 --> 00:43:49.519
to the DEDs by shifting left,
now let's figure out how to offload some

508
00:43:49.599 --> 00:43:53.519
more of it again and put that
on a team that has a product that

509
00:43:53.599 --> 00:43:58.480
takes care of aspects of your testing. I thought for sure you're going to

510
00:43:58.519 --> 00:44:02.119
say platform, because you know the
testers there are building maybe a platform for

511
00:44:02.239 --> 00:44:07.559
testing so that you can make it
easier to pull those things in during the

512
00:44:07.559 --> 00:44:10.400
development cycle rather than having to be
worried about each and every one of them.

513
00:44:10.800 --> 00:44:16.639
So that there's another definition of platforms
that I came up with a while

514
00:44:16.679 --> 00:44:22.119
back and sort of defining what they
look like. And to me, a

515
00:44:22.119 --> 00:44:28.960
platform is a set of runtime environments
and pipelines connecting them, and then frameworks

516
00:44:28.960 --> 00:44:34.840
to interface with those two things.
So you know, you might have a

517
00:44:34.960 --> 00:44:40.960
QA framework or testing framework that allows
you to drop testing into your pipelines.

518
00:44:42.559 --> 00:44:47.000
You might have a you know,
a discovery API or something like that that

519
00:44:47.079 --> 00:44:52.760
allows your app to function in the
runtime environment. Right, So I think

520
00:44:52.800 --> 00:45:00.280
that some of these things are actual
platforms and some of them are a little

521
00:45:00.280 --> 00:45:02.559
more distinct in terms of being frameworks
to allow you to do things, and

522
00:45:02.559 --> 00:45:07.760
you're kind of building on the framework, but it's not actually the place where

523
00:45:07.760 --> 00:45:12.360
it runs, right, And so
like think of maybe the build and pipeline

524
00:45:12.360 --> 00:45:16.880
systems as the platform and then other
people, you know, giving you frameworks

525
00:45:16.920 --> 00:45:22.480
to make it easier to run on
those platforms. I like this definition.

526
00:45:22.559 --> 00:45:27.039
It makes it much clearer that there's
specific things that people could align with rather

527
00:45:27.119 --> 00:45:30.679
than maybe some more abstract ideas.
And the fact everything is called a platform,

528
00:45:30.719 --> 00:45:35.679
So it's the pipeline and the interface
for it, and whether like some

529
00:45:36.079 --> 00:45:40.199
level of abstraction, whether it's HGTP, TCP or a full SDK or framework

530
00:45:40.280 --> 00:45:45.679
interact with, and what was the
third piece runtime environment and the environment to

531
00:45:45.679 --> 00:45:49.559
actually execute. Yeah, for sure
that that makes a lot of sense realistically.

532
00:45:49.599 --> 00:45:52.320
And if it doesn't have all of
that, it's marketing nonsense. Yeah,

533
00:45:52.400 --> 00:45:57.159
yeah, And that's why I,
you know, like the whole idea

534
00:45:57.199 --> 00:46:05.639
of backstage and other things is internal
developer platforms. I don't get the developer

535
00:46:05.679 --> 00:46:10.039
platform thing. You know, your
system is built on some sort of platform

536
00:46:10.079 --> 00:46:15.559
that needs to accommodate all of that
stuff the runtime, and so you know,

537
00:46:15.840 --> 00:46:21.199
I think it's more appropriate to call
things like backstage portals that interface to

538
00:46:21.480 --> 00:46:25.760
the platforms, right. But you
know, and it also leads to this,

539
00:46:27.000 --> 00:46:30.280
Well, there's some people who still
don't quite get that when we say

540
00:46:30.599 --> 00:46:36.840
developer platform, I mean the platform
for developers to build and operate things,

541
00:46:37.519 --> 00:46:42.159
and they're doing DevOps because everyone's thinking, oh, it's platform post DevOps is

542
00:46:42.760 --> 00:46:46.039
no. To me, it's the
evolution of DevOps to the point where people

543
00:46:46.079 --> 00:46:52.679
can focus on their lane. Right. My lane is to build business value

544
00:46:52.760 --> 00:46:57.800
in the form of applications. I
shouldn't have to consider how blocks are stored

545
00:46:57.800 --> 00:47:00.800
on disk or buckets are managing a
you or you know those sorts of things.

546
00:47:01.199 --> 00:47:07.639
Right. It allows me to do
DevOps for my application, not DevOps

547
00:47:07.719 --> 00:47:13.440
for patching vulnerabilities in the operating system
or you know, like like we were

548
00:47:13.559 --> 00:47:19.159
kind of forcing people to do in
earlier forms of like total freedom DevOps,

549
00:47:19.199 --> 00:47:22.599
but you know they're also totally responsible
DevOps, right. I mean, I

550
00:47:22.639 --> 00:47:27.400
think it's a UX problem here,
and maybe UX from a product standpoint,

551
00:47:27.440 --> 00:47:30.159
where as you said, it's being
pushed from the system side, rather than

552
00:47:30.400 --> 00:47:34.440
if I really don't want to know
about that stuff, there should be what

553
00:47:34.440 --> 00:47:37.519
what I like to call sensible defaults. I don't have to pick something it

554
00:47:37.559 --> 00:47:40.880
does. Give me the right block
store and the right file system, and

555
00:47:40.920 --> 00:47:45.960
I don't have to know the difference
between you know, ntfs and ext and

556
00:47:46.159 --> 00:47:50.440
et cetera in order to actually even
deploy my thing. Give me something that

557
00:47:50.519 --> 00:47:54.079
sort of works. And if I
say, wait, the I OPS read

558
00:47:54.119 --> 00:47:59.039
and write to my disc is this
slow? Is that reasonable? And then

559
00:47:59.079 --> 00:48:02.480
maybe I want to investigate and choose
the options available rather than having to decide

560
00:48:02.480 --> 00:48:07.519
that upfront. Yeah, And you
want to be able to define your storage

561
00:48:07.559 --> 00:48:15.159
needs because you understand your storage needs
in terms of maybe TPS right, and

562
00:48:15.719 --> 00:48:17.320
you know that, and you know, if you spend a little time with

563
00:48:17.400 --> 00:48:22.400
the work and you understand the application
that you're building, you say, oh,

564
00:48:22.480 --> 00:48:28.639
if I'm trying to clear through you
know, a thousand transactions of Jason

565
00:48:29.800 --> 00:48:32.400
of this rough set, like,
oh, I need a diss that performs

566
00:48:32.440 --> 00:48:37.400
like this, And you can say
to your maybe, to your platform,

567
00:48:37.760 --> 00:48:44.840
I have this storage requirement space and
speed and latency potentially right, and then

568
00:48:44.920 --> 00:48:49.199
maybe it can help you by saying, oh, you fall into this class,

569
00:48:49.559 --> 00:48:55.880
right, and that's the that's one
of the differentiators in terms of platforms

570
00:48:57.000 --> 00:49:02.079
is I feel like Amazon and others
their general purpose platforms, they're just the

571
00:49:02.239 --> 00:49:07.239
kitchen sink, right, you can
build anything you want. What organizations need

572
00:49:07.320 --> 00:49:14.039
are opinionated platforms built on top of
those with all those sensible defaults and guardrails.

573
00:49:14.079 --> 00:49:19.280
And it's not just sensible defaults,
it's sometimes just the inability to set

574
00:49:19.320 --> 00:49:22.280
things that are just not appropriate for
you. Right, you should not be

575
00:49:22.519 --> 00:49:27.960
setting security related things that's set for
you and you have no way to override

576
00:49:28.000 --> 00:49:34.639
it, and that and capsulates a
whole bunch of things that make life easier

577
00:49:34.679 --> 00:49:37.360
for everyone, you know, the
idea of like maintaining security, auditing,

578
00:49:38.119 --> 00:49:45.800
you know, controls and compliance,
Like if you take that approach of people

579
00:49:45.880 --> 00:49:50.239
stay in their lane and it's not
so easy for them to break out of

580
00:49:50.280 --> 00:49:53.320
it, then you know, we
have a lot more control over the environment

581
00:49:53.800 --> 00:49:58.159
with a trade off and costs,
like do you do you maintain speed and

582
00:49:58.199 --> 00:50:02.440
flexibility? And they get this is
like where the pendulum swings is. Sometimes

583
00:50:02.679 --> 00:50:09.880
those controls and security and compliance end
up taking on too much weight and you

584
00:50:09.920 --> 00:50:14.679
know, the people trying to produce
things on a platform end up suffering because

585
00:50:15.079 --> 00:50:17.800
well, we put all you know, we put all these safeguards in without

586
00:50:17.840 --> 00:50:21.719
figuring out with you what you need
to do to get your job done.

587
00:50:22.000 --> 00:50:28.679
And that's that product and user centric
aspect of platforms as opposed that needs to

588
00:50:28.679 --> 00:50:32.000
be there to differentiate from how I
used to work, which is we build

589
00:50:32.039 --> 00:50:35.519
it, you will use it.
Yeah. No, I mean I think

590
00:50:35.639 --> 00:50:40.119
you still sort of see that problem
with the user experience From an innovation standpoint,

591
00:50:40.239 --> 00:50:45.400
If the users who are building the
applications on top of your platform don't

592
00:50:45.400 --> 00:50:49.679
have any way to give you feedback
on where they're getting slowed down or what

593
00:50:49.719 --> 00:50:52.119
they could use, what their actual
needs are, then you have this sort

594
00:50:52.159 --> 00:50:55.719
of issue where the innovation can only
come from those that are building a platform,

595
00:50:55.840 --> 00:51:00.480
and they of course don't have the
actual use case of building an application

596
00:51:00.519 --> 00:51:04.639
on top of it. And I've
been struggling with this for a while now,

597
00:51:04.639 --> 00:51:07.320
and I'm not sure there is like
a clean answer. I mean,

598
00:51:07.360 --> 00:51:10.719
if you have the best, perfect
platform ever, a developer platform, then

599
00:51:10.840 --> 00:51:15.360
there is not really an issue,
But how do you make real headway in

600
00:51:15.079 --> 00:51:19.440
how to change your platform and make
it better if you aren't sort of dog

601
00:51:19.480 --> 00:51:24.199
fooding at yourself. There is an
option that's kind of in between, because

602
00:51:24.239 --> 00:51:31.000
it's difficult to get systems people to
dog food the platforms entirely because a they

603
00:51:31.000 --> 00:51:38.920
don't historically work like the typical SDLC
developer cycle, and b the work that

604
00:51:38.960 --> 00:51:45.719
they do is difficult to have work
that way. So good a good engineering

605
00:51:45.800 --> 00:51:50.960
life cycle. You know testing mostly
unit tess you've got the test viearament mostly

606
00:51:51.119 --> 00:51:55.599
unit tests at the bottom, and
you step off to integration functional and unfortunately,

607
00:51:55.960 --> 00:52:00.519
you know the way that systems people
are required to work with cloud providers,

608
00:52:00.960 --> 00:52:05.159
it's very difficult for them to do
lots of unit testing at the base.

609
00:52:05.199 --> 00:52:08.760
They end up getting stuck with integration. So it's immediately like a barrier

610
00:52:08.960 --> 00:52:14.440
to them, like changing the way
they behave in the same way that their

611
00:52:14.559 --> 00:52:21.159
users do. But they could go
and talk to their users, and they

612
00:52:21.199 --> 00:52:27.440
could shadow their users, and they
could spend time seeing how they work even

613
00:52:27.480 --> 00:52:30.400
if they don't work the same way, and just spend the time to listen

614
00:52:30.639 --> 00:52:37.840
and understand and figure out if they're
what they're building actually solves a problem for

615
00:52:37.880 --> 00:52:42.880
the user as opposed to its traditional
It is they're solving a problem for themselves,

616
00:52:43.760 --> 00:52:46.199
Like they have requests coming in they
need to automate in order to be

617
00:52:46.199 --> 00:52:50.320
able to survive the rate of requests. Yeah, for sure, And that's

618
00:52:50.599 --> 00:52:54.480
not what a you know. And
the issue with like being built from one

619
00:52:54.559 --> 00:53:00.559
side is it's a massive loss in
efficiency and a huge amount of cost.

620
00:53:01.239 --> 00:53:06.199
Say you have to build, say
you build eight features in your platform,

621
00:53:06.760 --> 00:53:10.000
and only three of them are useful, like the developer, like you guessed

622
00:53:10.119 --> 00:53:15.920
right, right for three out of
the eight. That means you spent time

623
00:53:15.039 --> 00:53:22.559
on five things that you have to
maintain that you spent time building that are

624
00:53:22.599 --> 00:53:27.760
not solving problems, so like they
don't get as much effective change and their

625
00:53:27.800 --> 00:53:32.599
ability to get value delivered. You
spent lots of time doing stuff that people

626
00:53:32.679 --> 00:53:38.519
didn't need and it ends up being
a big cycle of waste. Right because

627
00:53:39.199 --> 00:53:44.000
we're not startups. We're not startups
that are looking for product market fit.

628
00:53:45.000 --> 00:53:50.239
We're not trying to figure out what
customers want because we don't. It's a

629
00:53:50.239 --> 00:53:54.239
captive audience internally, you can just
go talk to all of them, so

630
00:53:54.599 --> 00:53:59.599
you don't have the same constraints as
a startup where you need to imagine what

631
00:53:59.599 --> 00:54:04.199
you're using will find useful you just
go ask them, right, and then

632
00:54:04.239 --> 00:54:07.719
that allows you to prioritize what's going
to be the most useful. Unfortunately,

633
00:54:07.800 --> 00:54:13.880
it has never functioned that way,
right, or at least only partially ever

634
00:54:13.960 --> 00:54:16.960
gotten there. So in order for
platforms to be really successful and for all

635
00:54:16.960 --> 00:54:22.960
this speed to happen, you have
to figure out exactly what's going to solve

636
00:54:22.000 --> 00:54:28.000
a problem, not be not come
up with solution first, which is how

637
00:54:28.079 --> 00:54:30.760
I mean, that's how I remember
my boss coming to me, is like,

638
00:54:30.840 --> 00:54:31.960
you know, oh, we're doing
annual planning. Need to figure out

639
00:54:31.960 --> 00:54:35.800
the budget. What should we build
for next year? Right? Like,

640
00:54:36.079 --> 00:54:42.000
what's what's it's just not let's go
find out what users need and solve their

641
00:54:42.039 --> 00:54:44.599
problems. It's way more fun that
way, right, you know, these

642
00:54:44.639 --> 00:54:47.239
things seem fun, Let's go and
deliver it. You know, I think

643
00:54:47.599 --> 00:54:51.320
five out of eight or three out
of eight success, five out of eight

644
00:54:51.320 --> 00:54:53.920
failure. I think that's a great
rate. Like everyone should be proud if

645
00:54:53.920 --> 00:54:59.519
they actually got three out of eight
features. Yeah, that's true, that's

646
00:54:59.559 --> 00:55:05.760
true. Instead, what you get
are entire platforms that are just not useful,

647
00:55:06.119 --> 00:55:10.840
right, and no adoption and become
legacy you know, before ever being

648
00:55:10.880 --> 00:55:15.079
born. I mean, I think
you're lucky if you get no adoption.

649
00:55:15.239 --> 00:55:19.760
I've seen this sinkhole of there's one
team using it, who oh yeah,

650
00:55:19.800 --> 00:55:22.679
yeah in it forever, right,
yeah, right, this big overblown thing

651
00:55:22.960 --> 00:55:29.320
and you only got partial adoption,
and now you've just added to the stable

652
00:55:29.360 --> 00:55:35.199
of platforms you have to basically maintain
forever because you never hit a solution that

653
00:55:35.320 --> 00:55:38.679
gets the clear adoption, which could
actually have a negative impact in the organization

654
00:55:38.960 --> 00:55:45.320
if what you're actually providing is like
automation of ticket you know, solves,

655
00:55:45.440 --> 00:55:49.199
right, and those are the things
that people necessarily want. Actually, I

656
00:55:49.239 --> 00:55:52.559
think there's a huge trouble here in
trying to actually identify what the value is

657
00:55:52.960 --> 00:55:57.480
or quantify for the for the platform
or for the features that you're adding there.

658
00:55:57.800 --> 00:56:00.519
And so because you can't do that
very effective, it's even more difficult

659
00:56:00.559 --> 00:56:05.840
to remove things and prove that that
would be a problem for someone. That's

660
00:56:05.840 --> 00:56:09.800
where you get into at least a
product mindset. And I hesitate to say

661
00:56:09.920 --> 00:56:17.840
product management because then people start to
think they need to hire product managers and

662
00:56:16.440 --> 00:56:22.920
that's not necessary or even realistic.
Like we go through these again, these

663
00:56:22.960 --> 00:56:27.960
hype cycles where like DevOps or story
or everyone starts to think, oh,

664
00:56:28.079 --> 00:56:31.599
I need to create a job description
and hire a few hundred people that fit

665
00:56:31.679 --> 00:56:37.880
that and put them on teams and
we'll be set right. And that's not

666
00:56:37.360 --> 00:56:43.519
realistic through any of these cycles,
it's never been realistic. And so if

667
00:56:43.559 --> 00:56:51.639
we focus on a product mindset of
finding out user pain points, figuring out

668
00:56:51.719 --> 00:56:55.360
the problems are what to solve,
what I think you can get to is

669
00:56:55.400 --> 00:57:00.239
also if you're getting closer to how
value is produced, you can actually start

670
00:57:00.280 --> 00:57:06.840
to draw a connection between the things
you're doing and the value being produced because

671
00:57:06.920 --> 00:57:10.519
you're having an impact on the engineers
that are directly producing the value, so

672
00:57:10.880 --> 00:57:15.559
in a way, you're indirectly contributing
to the same value. Whereas if you've

673
00:57:15.559 --> 00:57:21.360
just got a flow of tickets and
you're just or you're just trying to make

674
00:57:21.360 --> 00:57:25.199
the system more reliable because you're in
the way of things, like you're seen

675
00:57:25.239 --> 00:57:30.639
as a traditional cost center, right, we're trying to minimize your participation here

676
00:57:30.760 --> 00:57:36.199
because it seems like you just break
things or you're only around to fix broken

677
00:57:36.280 --> 00:57:39.639
things. Whereas if you're solving pain
points and you're making people work faster,

678
00:57:40.960 --> 00:57:46.920
that's contribution to value. Right.
So I think that the again, the

679
00:57:46.960 --> 00:57:55.840
mindset of focusing on users and their
pain points and potentially pulling that especially sentiment

680
00:57:57.079 --> 00:58:00.920
about that in is how you start
to get to measuring. For instance,

681
00:58:00.960 --> 00:58:07.719
I know of a company where someone
created a you know, went to QCon

682
00:58:07.920 --> 00:58:12.599
conferences, you know, five six
years ago, started to see talk about

683
00:58:12.639 --> 00:58:19.719
platforms and DevOps and this kind of
developer productivity type stuff, and started what

684
00:58:20.000 --> 00:58:25.760
amounted to a platform team. Instead
of measuring things like Dora, they just

685
00:58:25.960 --> 00:58:36.000
measured for subjective things like developer satisfaction
and they managed to go and as a

686
00:58:36.039 --> 00:58:38.719
by product fix all the you know, like their Dora metrics which they didn't

687
00:58:38.800 --> 00:58:43.639
track, went up, but they
knew they were doing dozens of deployees a

688
00:58:43.719 --> 00:58:49.480
day instead of once every month,
right, So which is more important People's

689
00:58:50.039 --> 00:58:54.400
ability to feel productive and get their
work done when they're working directly on business

690
00:58:54.480 --> 00:59:00.480
value, and then the byproduct being
well that value flows faster, or focusing

691
00:59:00.519 --> 00:59:04.760
on the thing that is potentially gameable, which is just a number, right,

692
00:59:05.360 --> 00:59:08.719
like a Doro metric for deploy rate
or things like that. I think

693
00:59:08.760 --> 00:59:15.760
those are signals of the system not
terribly useful in terms of measuring value.

694
00:59:15.280 --> 00:59:20.760
I mean there is this mantra of
any metric that becomes the target ceases to

695
00:59:20.880 --> 00:59:24.400
be a good metric here, and
I think the developer fulfillment is sort of

696
00:59:24.440 --> 00:59:28.960
an interesting I used to think that
Doro metrics were well weighted to make it

697
00:59:29.199 --> 00:59:31.760
very hard to game in a way
in which if you were to gain them,

698
00:59:31.760 --> 00:59:36.480
at least you would be doing something
better than likely you are doing today.

699
00:59:36.800 --> 00:59:40.039
But now I've started to see them
for sure being gamed in ways which

700
00:59:40.960 --> 00:59:45.920
we're not intended and have negative consequences, like throwing feature flags in everywhere so

701
00:59:45.960 --> 00:59:50.960
that you can just get your code
into production without actually having it tested,

702
00:59:51.199 --> 00:59:55.679
without it having incident appeal, without
users actually seeing the code, and then

703
00:59:57.159 --> 01:00:00.400
like, oh my Dora metric for
cycle time is now low. Congrats,

704
01:00:00.559 --> 01:00:06.199
right, you know you just eliminated
the metrics value and you threw all the

705
01:00:06.239 --> 01:00:08.559
work and all the tracking into a
metric that you're not even paying attention to,

706
01:00:08.599 --> 01:00:14.599
which is sort of released to cycle
time for the feature flag being enabled.

707
01:00:15.320 --> 01:00:20.840
Yeah, and so you've created a
game so where I think Dora is

708
01:00:22.440 --> 01:00:28.599
appropriate. It's a system level signal
that leadership should be using to figure out

709
01:00:28.599 --> 01:00:31.119
what they're doing wrong. Yeah,
and that's not how I mean, most

710
01:00:31.119 --> 01:00:37.079
places are looking at commit rates and
things like that and talking to people about

711
01:00:37.079 --> 01:00:44.719
it instead of reflecting on why does
my organization have trouble? You know,

712
01:00:44.840 --> 01:00:50.159
trending these Dora metrics in the right
direction. And because you know, way

713
01:00:50.280 --> 01:00:53.519
companies are traditionally managed, it's always
some sort of performance. That's why there's

714
01:00:53.559 --> 01:00:59.320
all this like developer performance measurement and
stuff like that. It's like, I

715
01:00:59.400 --> 01:01:02.079
can't POSSI simply, you know,
have anything other than like a problem with

716
01:01:02.119 --> 01:01:06.440
the team or a person or like
as soon as I fix that, you

717
01:01:06.440 --> 01:01:09.559
know, like gees, let's lay
off the bottom ten percent every year like

718
01:01:09.760 --> 01:01:14.960
this, fire them and that will
make everything better, right. And you

719
01:01:15.000 --> 01:01:19.840
know, I think more and more
servant leaders are coming into existence who understand

720
01:01:19.920 --> 01:01:24.760
that they have to build systems in
which people can be successful. Right,

721
01:01:24.920 --> 01:01:30.960
And Dora metrics are one of many
things that you could use as signal to

722
01:01:30.039 --> 01:01:36.400
understand are you building a successful system? Sentiment also very good, you know,

723
01:01:36.440 --> 01:01:39.719
the new I find it interesting that
like forest Ground was involved with Dora

724
01:01:40.440 --> 01:01:45.559
moved on to space, which is
you know, more subjective, much broader,

725
01:01:45.920 --> 01:01:50.480
and then you've got DX, which
is just this triangle of not really

726
01:01:50.679 --> 01:01:57.000
unmeasurable but far more user experience focused. Right. No, I mean that

727
01:01:57.800 --> 01:02:00.079
it brings me to ask, and
I think maybe with with DX in space,

728
01:02:00.199 --> 01:02:04.400
maybe that's the answer. Is there
a go to metric for you?

729
01:02:05.199 --> 01:02:07.880
Or is it? At least from
my experience, it's like, let me

730
01:02:07.920 --> 01:02:12.440
take inventory of what the current situation
is and see where there are opportunities for

731
01:02:12.480 --> 01:02:16.480
improvement which push something along in some
way which I unblocks or you know,

732
01:02:16.559 --> 01:02:21.320
you look at the obstacles or something
like that. But it feels very subjective,

733
01:02:21.440 --> 01:02:25.119
like I see people getting stuck or
I see communication failing in some way

734
01:02:25.159 --> 01:02:30.519
here. Let's work on improving the
communication or the collaboration or unifying we the

735
01:02:30.800 --> 01:02:36.599
dozens of platforms we're using down to
only a handful. Is there any sort

736
01:02:36.679 --> 01:02:42.840
of concrete metric that you more tend
to like? I mean, it's all

737
01:02:42.840 --> 01:02:47.679
perfect. I think from a technology
perspective, you should be looking at things

738
01:02:47.679 --> 01:02:57.480
like SLOs that are inherently outward facing
and relatively difficult to gain and kind of

739
01:02:57.480 --> 01:03:01.039
make you part of an ecosystem.
And because there's a two, there's two

740
01:03:01.079 --> 01:03:07.800
sides to those sorts of metrics there's
like, Okay, this is what our

741
01:03:07.880 --> 01:03:12.000
objective is. If we're not meeting
an objective and it, you know,

742
01:03:12.559 --> 01:03:15.280
it doesn't match up with what the
sentiment is in terms of user satisfaction.

743
01:03:15.639 --> 01:03:20.960
It kind of like puts some tension
there into having you know, the right

744
01:03:21.039 --> 01:03:25.840
kinds of numbers and you know,
But at the same time, I don't

745
01:03:25.880 --> 01:03:32.079
think it's I think metrics get over
used and also stay around for too long.

746
01:03:34.039 --> 01:03:37.639
There should be trends and things,
and that you should identify parts of

747
01:03:37.679 --> 01:03:44.199
the system that require attention for periods
of time, find your constraints, exploit

748
01:03:44.280 --> 01:03:49.079
them, remove them, and then
work on to other things. So in

749
01:03:49.199 --> 01:03:57.079
terms of like systems, metrics are
useful for diagnosing right, and that they're

750
01:03:57.079 --> 01:04:00.400
not great to just watch all the
time. Like you lots of data about

751
01:04:00.400 --> 01:04:04.840
how your system is functioning, but
you should be looking at composite trends.

752
01:04:05.280 --> 01:04:10.679
You really should be business level things. Right, should be a combination of

753
01:04:10.760 --> 01:04:16.360
employee satisfaction, customer satisfaction, financial
performance. Right. If those things are

754
01:04:16.360 --> 01:04:21.360
in balance, almost nothing else matters, right, So, and you know,

755
01:04:21.440 --> 01:04:25.920
those are the things I would go
for. But that's almost like a

756
01:04:26.440 --> 01:04:30.760
wouldn't call a pipe dream. Most
organizations are really far from understanding that because

757
01:04:30.800 --> 01:04:38.159
technology doesn't communicate in business terms.
And there I've said this many times.

758
01:04:38.559 --> 01:04:43.440
Technologists are almost allergic to where their
paycheck comes from. And I say that

759
01:04:43.559 --> 01:04:48.119
it was funny I got contradicted on
that once in that I think in startup

760
01:04:48.199 --> 01:04:55.639
land people are fairly well connected to
where their paycheck comes from. In big

761
01:04:56.039 --> 01:05:00.360
enterprise, they have no idea.
In both cases, they find it very

762
01:05:00.400 --> 01:05:05.400
difficult to communicate with the business and
get them to understand the value of what

763
01:05:05.440 --> 01:05:14.159
they're doing and you know that sort
of thing. So it's so I don't

764
01:05:14.159 --> 01:05:17.599
think there is one easy metric.
What I'd like to see start happening is

765
01:05:17.719 --> 01:05:23.920
better communication with the rest of the
business and the ability to align on you

766
01:05:23.920 --> 01:05:26.880
know, the sort of fundament because
if you do that, you can get

767
01:05:26.960 --> 01:05:30.280
people to work on the most valuable
thing, because you'll have a straighter line

768
01:05:30.360 --> 01:05:33.440
tour. And this can go very
deep in the organization too, and maybe

769
01:05:33.480 --> 01:05:38.960
allow the organization to make decisions about
buy versus builds, like why are we

770
01:05:39.039 --> 01:05:44.639
spending so much of our human you
know, capital on this thing which is

771
01:05:44.760 --> 01:05:49.360
like a commodity and you know,
not paying for itself and I'm very careful

772
01:05:49.400 --> 01:05:55.440
with that because I also believe in
the fact that you have you know,

773
01:05:55.519 --> 01:06:00.320
your humans are the most valuable thing, and simply treating them as resource so's

774
01:06:00.360 --> 01:06:03.000
to be added to or removed as
part of your cost just seems foolish.

775
01:06:03.360 --> 01:06:10.400
Right. So again, it's like
a systems level thing signals for how leadership

776
01:06:10.480 --> 01:06:13.880
is doing. I was I had
this fear you were going to say,

777
01:06:13.960 --> 01:06:17.760
e NPS score. I mean for
what I I don't particularly like it.

778
01:06:17.800 --> 01:06:23.880
I think there is this h survey. Survey is not done well, give

779
01:06:23.920 --> 01:06:27.880
you the wrong signals, and I
think it's very challenging to be able to

780
01:06:27.920 --> 01:06:32.519
effectively actually grasp is their fulfillment.
On the engineering side, are our customers

781
01:06:32.599 --> 01:06:36.519
actually happy? I mean, I
think, so, here's here's one idea

782
01:06:36.679 --> 01:06:41.880
that we need to look out into
the future in order to actually evaluate that.

783
01:06:42.360 --> 01:06:45.280
But then on the on the flip
side, I think, oh wait,

784
01:06:45.320 --> 01:06:48.199
no, actually, companies are still
bad even correctly evaluating where they're currently

785
01:06:48.239 --> 01:06:53.320
at. Let a let a load
being able to correctly evaluate it on the

786
01:06:53.360 --> 01:06:58.280
line. The interesting thing with the
SLO is uh, the service level objective

787
01:06:58.400 --> 01:07:01.039
is that it's still very it's stary
subjective in nature. Right, It's not

788
01:07:01.280 --> 01:07:04.199
like your I mean, your SLA
is what you put in your contract,

789
01:07:04.199 --> 01:07:08.480
and your SLI is you know,
the thing that you can actually measure what

790
01:07:08.480 --> 01:07:11.039
what what is happening? But that's
a lot is like we want this,

791
01:07:11.800 --> 01:07:15.400
and where does then our customers want
this? We know our customers want this,

792
01:07:15.800 --> 01:07:20.760
right, But going back to the
E NPS thing, I think that

793
01:07:20.880 --> 01:07:28.960
one of the mistakes I've seen is
that if you're going to survey employees about

794
01:07:29.159 --> 01:07:34.719
their satisfaction or things like that,
you you need to have a tread like

795
01:07:34.760 --> 01:07:40.039
you can't. You can't make your
employee survey different every time you give it

796
01:07:40.039 --> 01:07:43.920
to them, right, it is
it doesn't give you a signal. Right,

797
01:07:44.079 --> 01:07:47.599
So, and I think that happens
with a lot of metrics is that

798
01:07:47.679 --> 01:07:53.039
you'll see like a KPI board and
all you'll see is the absolute numbers for

799
01:07:53.079 --> 01:07:57.239
the current time period with no trends, Like how am I supposed to?

800
01:07:57.480 --> 01:08:01.320
Like? I have to contextually understand
the value of this absolute you know,

801
01:08:01.480 --> 01:08:06.079
and and and for many businesses they
can get that, right, But if

802
01:08:06.119 --> 01:08:10.000
you don't know the trend, what's
the what's the value of this thing?

803
01:08:10.119 --> 01:08:14.519
Right? It should just be a
binary a binary switch at that point,

804
01:08:15.840 --> 01:08:18.359
and so E NPS I think,
yes, it's difficult to figure out,

805
01:08:18.560 --> 01:08:25.279
but what I think is more important
is the trend in those things and deciding

806
01:08:25.319 --> 01:08:30.840
if you if you can tune it
at all by making changes. The actual

807
01:08:30.960 --> 01:08:38.359
answers other than like a subjective rating
might be difficult to interpret, but I

808
01:08:38.399 --> 01:08:41.279
think you could tell with an E
NPS, like if you are going to

809
01:08:41.279 --> 01:08:45.520
make changes to a company, if
it's going up or down, maybe you're

810
01:08:45.560 --> 01:08:48.560
having an impact or not. Right. Yeah, I mean I've seen this

811
01:08:48.720 --> 01:08:53.079
done. It's one of those things
that I've only ever seen done poorly,

812
01:08:53.399 --> 01:08:56.479
and I'm still waiting for that circumstance
where it's like, oh, you know,

813
01:08:56.520 --> 01:09:00.279
we did it and it worked out
great. I think there's the the

814
01:09:00.319 --> 01:09:02.399
team's change. Too frequently, there
are too many changes in the organization,

815
01:09:02.479 --> 01:09:06.760
not like from an individual standpoint,
to actually accurately be able to trend that

816
01:09:06.840 --> 01:09:14.520
information over time. There's this knowledge
that assuming the questions aren't bad, which

817
01:09:14.560 --> 01:09:18.119
they're usually bad in some way,
you know, you're looking at the data

818
01:09:18.279 --> 01:09:24.000
and as a as a survey answer, you're you're filling that out and the

819
01:09:24.079 --> 01:09:27.760
result is often wait, I know
what the right there's like a quote unquote

820
01:09:27.840 --> 01:09:31.479
right answer here, and if I
answer negatively, I know what's Like,

821
01:09:31.840 --> 01:09:34.279
I fear what's going to come next. There's going to be a conversation I

822
01:09:34.279 --> 01:09:40.359
don't want to have and worst case
I do answer negatively and then nothing happens.

823
01:09:41.359 --> 01:09:45.399
Yeah, yeah, and that and
that's a lot of what the approach

824
01:09:45.640 --> 01:09:51.119
is of people doing the surveying,
Like why are you surveying? Are you

825
01:09:51.239 --> 01:09:59.800
again doing it from a like you're
doing some sensing? Yeah, what was

826
01:09:59.800 --> 01:10:03.600
your reasoning for doing that? And
are you trying to figure out reactively how

827
01:10:03.600 --> 01:10:11.600
people are feeling and therefore say something
different in the next town hall, right?

828
01:10:12.199 --> 01:10:17.560
Or are you actually interested in delivering
change that addresses what is you keep

829
01:10:17.600 --> 01:10:24.399
scratching deeper with? You know,
I think E NPS, well, a

830
01:10:24.720 --> 01:10:29.680
small teams very difficult, like that
any any team under a certain size,

831
01:10:29.680 --> 01:10:32.640
And I wouldn't say what that is
arbitrarily that that isn't E NPS is like

832
01:10:32.640 --> 01:10:38.000
doesn't have value, right, doesn't
have a this a statistical minimum right for

833
01:10:38.119 --> 01:10:44.359
things like that to have value.
And if you're above a certain point,

834
01:10:44.640 --> 01:10:46.800
I really think it should just be
like a one to ten, right,

835
01:10:46.920 --> 01:10:51.720
there shouldn't be a survey. It
should be something easy to get sensing and

836
01:10:51.760 --> 01:10:55.960
feedback on. And I've seen places
where they even have like a kiosk and

837
01:10:56.039 --> 01:11:00.760
people just you know, bounce the
numbers as a go through, like the

838
01:11:00.800 --> 01:11:08.760
bathroom ratings that they have and uh
and uh you know that. Yeah,

839
01:11:08.880 --> 01:11:11.359
no, I mean that's for sure
true. I think the problem with the

840
01:11:11.399 --> 01:11:14.520
one to ten. In a past
life, we had some surveys in this

841
01:11:14.840 --> 01:11:18.399
area. We were focused on improving
leadership and getting feedback around that, and

842
01:11:19.000 --> 01:11:23.319
oh we had a sas tool and
everything, and that didn't work out because

843
01:11:23.359 --> 01:11:28.399
it turns out that people are some
people are notoriously bad at even knowing where

844
01:11:28.399 --> 01:11:31.760
they're at personally. Right. They
say something's an issue, but it really

845
01:11:31.760 --> 01:11:34.279
wouldn't affect them, Like, oh, yeah, I would leave if we

846
01:11:34.920 --> 01:11:39.319
throw Kubernetes into our platform. But
then you do it and they don't leave.

847
01:11:39.399 --> 01:11:41.800
It's like, oh, I'll leave
if we you know, I have

848
01:11:41.880 --> 01:11:45.760
to do manual testing and I'll have
responsible for testing shift left, securities,

849
01:11:45.760 --> 01:11:47.319
shift left, you know, everything. Then they don't leave, right,

850
01:11:47.399 --> 01:11:50.079
So I think that's always been sort
of a struggle there. I like,

851
01:11:50.199 --> 01:11:55.359
yeah, yeah, and that's an
inner personal and that's you know, and

852
01:11:55.439 --> 01:12:00.720
again that's also size, right,
I mean, sentimental is something you could

853
01:12:00.079 --> 01:12:03.439
you know, when you say true
sentiment, that should be a statistical thing.

854
01:12:03.840 --> 01:12:06.600
If you're dealing with a small group, you're not getting sentiment. You're

855
01:12:06.640 --> 01:12:15.000
getting like opinions, you know,
or yeah, And that's a trickier thing,

856
01:12:15.920 --> 01:12:19.560
you know. I used to think
that platforms were and the kind of

857
01:12:19.640 --> 01:12:26.199
consulting I do, which is advise
people on how to get started with platforms,

858
01:12:26.239 --> 01:12:30.800
evaluate what they need, we didn't
even get the cognitive load, for

859
01:12:30.840 --> 01:12:38.720
instance, which is take a big
on I wouldn't say misunderstood, but underutilized

860
01:12:38.760 --> 01:12:44.840
way of looking at platforms and how
organizations function and at the organizational level,

861
01:12:45.760 --> 01:12:51.880
because they think there's a lot of
emphasis on reducing cognitive load of developers.

862
01:12:51.920 --> 01:12:58.000
And you know that doesn't work well
if you just shove all that cognitive load

863
01:12:58.119 --> 01:13:02.920
somewhere else in the organization. So
you really need to have a in an

864
01:13:03.000 --> 01:13:11.479
internal platform situation, you need to
look at the distribution of cognitive load and

865
01:13:11.600 --> 01:13:15.520
make sure that it's kind of even
right when you're when you're building a Sas

866
01:13:15.560 --> 01:13:21.000
for external customers, the amount you're
you're reducing their cognitive load for some problem.

867
01:13:21.760 --> 01:13:27.439
The amount that you take on really
just has to do with your ability

868
01:13:27.479 --> 01:13:30.920
to be profitable and take on You
could take on any amount of pain as

869
01:13:30.960 --> 01:13:35.000
long as you can be profitable for
it, right, But with an internal

870
01:13:35.039 --> 01:13:39.960
platform, if you do that with
your platform, you're just going to create

871
01:13:40.000 --> 01:13:45.359
bottle micks because there is no you
know, with a platform team, there

872
01:13:45.439 --> 01:13:48.319
is no P and L. Ultimately, you know some people would like to

873
01:13:48.359 --> 01:13:53.039
think that way, but you know
that there there isn't in the same way

874
01:13:53.079 --> 01:13:58.720
that you get with an external platform. So yeah, I'm hearing the message

875
01:13:58.720 --> 01:14:00.560
should be there. There needs to
be PN now for any team building a

876
01:14:00.560 --> 01:14:05.920
platform internally. Well, I hope
I didn't say that no for sure or

877
01:14:05.920 --> 01:14:09.399
not. I mean I have thought
about this in the past, and there

878
01:14:09.439 --> 01:14:13.640
are some things with chargebacks that some
organizations have tried. I think there's an

879
01:14:13.680 --> 01:14:16.600
interesting aspect here. The perfect market
out in the world when you're selling to

880
01:14:16.640 --> 01:14:24.840
customers is realistically, you want the
marginal value to go to zero, Like

881
01:14:24.880 --> 01:14:29.840
the amount you're getting your you're wasting
or spending on building your thing is exactly

882
01:14:29.920 --> 01:14:31.439
how much customers are paying for it. If there's not, then either you

883
01:14:31.520 --> 01:14:34.399
know you're charging too much hypothetically.
Now, of course you want to do

884
01:14:34.479 --> 01:14:38.279
that because then your business makes money
and you can pay people, et cetera.

885
01:14:39.079 --> 01:14:43.920
But internally I do see without that
there is this sort of lack of

886
01:14:43.960 --> 01:14:48.760
balance. The internal teams end up
probably in deficit right there there. They

887
01:14:48.800 --> 01:14:53.880
don't get that feedback, so there's
no measure for oh, you only have

888
01:14:54.039 --> 01:14:57.239
this much money coming in that we
can support it, and they just keep

889
01:14:57.279 --> 01:15:00.399
adding features as you said, But
now I'm wondering whether or not we need

890
01:15:00.439 --> 01:15:03.359
to be focusing on cognitive load more
and if there's a way to directly calculate

891
01:15:03.399 --> 01:15:06.840
that, because you could figure out, oh, this is much cognitive load

892
01:15:06.840 --> 01:15:12.359
we're reducing from the organization, and
this is how much cognitive load we're centralizing

893
01:15:12.479 --> 01:15:15.680
in this other area or in this
team. Their cognitive load is going to

894
01:15:15.720 --> 01:15:17.960
increase over time, and you could
and you're going to bottleneck. Yeah for

895
01:15:18.000 --> 01:15:23.199
sure. Yeah, is there a
like well there isn't. Well, I've

896
01:15:23.239 --> 01:15:30.039
actually been working on something like a
cognitive load map of an organization, so

897
01:15:30.720 --> 01:15:36.119
giving you the ability to visualize how
cognitive load is distributed and combining that sort

898
01:15:36.119 --> 01:15:41.600
of like with the network of interactions
that happen and figuring out if you can

899
01:15:41.600 --> 01:15:45.840
make it assignable, so assignable cognitive
load. Can I assign it to the

900
01:15:45.920 --> 01:15:48.119
nature of work that I do?
Can I assign it to some other team

901
01:15:48.159 --> 01:15:53.279
that I interact with? Can I
assign it to how I'm met, like

902
01:15:53.640 --> 01:15:56.479
you know, and start coming up
with a way of kind of rating this,

903
01:15:56.600 --> 01:15:59.279
and then you should be able to
get, you know, what sort

904
01:15:59.279 --> 01:16:01.600
of looks like a heat map,
and if it's really out of balance,

905
01:16:01.640 --> 01:16:08.079
it should be really clear and you
should be working to try and like even

906
01:16:08.119 --> 01:16:11.840
out that heat map. And so
you know, I think the team topologies

907
01:16:11.880 --> 01:16:16.439
focuses on the at the team level
doing a cognitive load assessment figure out like

908
01:16:16.800 --> 01:16:21.439
when they're overloaded and when you might
need a split and a team I actually

909
01:16:21.479 --> 01:16:26.479
also think we need to jump up
and look at the whole organization and figure

910
01:16:26.520 --> 01:16:30.920
out how much flow are we trying
to force through, Like take features you

911
01:16:30.960 --> 01:16:34.479
mentioned features, like what are we
doing about features? Like features just tend

912
01:16:34.560 --> 01:16:40.680
to go up forever, especially for
internal things like when are you going to

913
01:16:40.760 --> 01:16:43.840
remove features? When are you going
to control the flow of features so that

914
01:16:43.920 --> 01:16:48.239
you're not overloading the whole system,
And a cognitive load map could help you

915
01:16:48.239 --> 01:16:53.760
know, visualize what's going on in
a given organization and figure out is it

916
01:16:53.880 --> 01:17:00.000
running really hot somewhere and does that
correlate to you know, some other things

917
01:17:00.159 --> 01:17:03.119
you could do like value stream mapping
and seeing like how is your value actually

918
01:17:03.119 --> 01:17:08.880
flowing? And oh if it tickles
this one, you know point in the

919
01:17:08.960 --> 01:17:12.239
stream that seems to always be slow. Oh, and it happens to map

920
01:17:12.279 --> 01:17:17.039
to some team that's really read right
in the map. Ah, there's maybe

921
01:17:17.039 --> 01:17:23.199
a constraint I can work on.
And you know's I think platforms and I

922
01:17:23.239 --> 01:17:27.079
think I heard this on the the
podcast you just publish it. Look at

923
01:17:27.199 --> 01:17:30.159
people tend to go big bang,
right, It's been forever it initiatives have

924
01:17:30.239 --> 01:17:38.800
always been like massive undertakings and you
need to focus on experiments. You need

925
01:17:38.840 --> 01:17:45.760
to focus on iterative value generation,
right, and big bang is not about

926
01:17:45.760 --> 01:17:51.039
that. So it's another product mindset
thing. Focus on your users, focus

927
01:17:51.079 --> 01:17:57.279
on the value you could get to
them quickly, and figure out how you're

928
01:17:57.279 --> 01:18:00.640
going to measure whether or not that
was a success. Do they feel any

929
01:18:00.640 --> 01:18:05.039
better about getting their work done right? And there's all sorts of tools for

930
01:18:05.199 --> 01:18:11.439
assessing that. There's a model from
NASA son and we'll get into cognitive load

931
01:18:11.479 --> 01:18:17.079
for a minute. Cognitive load is
a model for talking about learning. So

932
01:18:17.399 --> 01:18:20.159
there are three components to it,
and I don't think we have time to

933
01:18:20.199 --> 01:18:26.680
go into it in any real depth. But it is primarily concerned with people's

934
01:18:26.680 --> 01:18:32.399
ability to learn new things, and
so it doesn't map perfectly over to platforms.

935
01:18:33.840 --> 01:18:39.800
There's some sort of gaps with how
that works. NASA came up with

936
01:18:39.840 --> 01:18:45.840
a model called mental workload that took
into account cognitive load but also physical conditions,

937
01:18:46.600 --> 01:18:53.119
time constraints, things like that.
We actually have a tool for surveying

938
01:18:53.239 --> 01:18:57.840
teams on this and it can kind
of give you a better idea of the

939
01:18:58.600 --> 01:19:00.880
you know, they would use it
with Astronaut and say, we gave you

940
01:19:00.920 --> 01:19:04.680
this problem to solve. You know, your spaceship is about to fall out

941
01:19:04.680 --> 01:19:09.439
of the sky, and how did
you feel about solving that problem? Right?

942
01:19:10.000 --> 01:19:14.960
And you know that I think those
kinds of signals could be really useful

943
01:19:15.000 --> 01:19:18.960
in figuring out if you're actually solving
problems for teams. No, I mean

944
01:19:19.000 --> 01:19:23.239
it's it's such an interesting topic and
I really wish we had more time.

945
01:19:23.279 --> 01:19:27.000
So maybe this is a part two, Part two, Yeah, yeah,

946
01:19:27.039 --> 01:19:30.640
back and tells us how to calculate
cognitive flow and do it effectively in organizations.

947
01:19:30.920 --> 01:19:34.359
So there is something that we always
do on this podcast, which is

948
01:19:34.800 --> 01:19:41.720
picked. Hey, you promised there
was no I know, you know.

949
01:19:41.960 --> 01:19:46.760
I joked with Will early on that
this is actually the struggle for me to

950
01:19:46.800 --> 01:19:48.880
come up with one of these,
and that I have to come up with

951
01:19:48.960 --> 01:19:54.720
one every single week. So that's
fifty two a year, and I just

952
01:19:54.760 --> 01:19:59.840
don't have that many many things to
go through. So Grassmnets draws there,

953
01:20:00.560 --> 01:20:03.239
but I'll go first. So my
pick of the week is going to be

954
01:20:03.399 --> 01:20:09.680
the Fifth Discipline by Peter Senge,
which actually dives into how to think about

955
01:20:09.720 --> 01:20:13.359
systems thinking, how to apply it
in organizations, how to apply it in

956
01:20:13.399 --> 01:20:18.399
situations. It's very this is an
introductory topic to systems thinking and systems engineering

957
01:20:18.439 --> 01:20:21.640
and how to apply it. And
I think it's something that a lot of

958
01:20:23.119 --> 01:20:27.359
engineers would really find beneficial, like
how to actually think about organization in sort

959
01:20:27.359 --> 01:20:30.760
of a technical way and help us
justify when to build platforms and what is

960
01:20:30.800 --> 01:20:35.439
that actually do to the organization.
You know, what problems will that actually

961
01:20:35.479 --> 01:20:40.680
solve longer down the line. And
it's something that I find is missing very

962
01:20:40.680 --> 01:20:50.479
frequently. I there's a bunch of
things. I've one of the problems that

963
01:20:50.479 --> 01:20:57.920
we have with platforms and technologies is
listening skills. Everyone in technology is really

964
01:20:57.960 --> 01:21:00.920
eager to jump to solutioning. You
know, they'll hear the beginnings of a

965
01:21:00.960 --> 01:21:09.479
problem and they'll just start thinking solutions. So the ability to generate more ideas

966
01:21:09.520 --> 01:21:16.520
and be flexible about ideas is important. And it's an interesting book Adam Grant

967
01:21:16.720 --> 01:21:20.560
that I'm listening to I haven't even
finished, called Originals, and it talks

968
01:21:20.600 --> 01:21:31.119
about how creative people just produce more
and they're not necessarily as self critical.

969
01:21:31.199 --> 01:21:35.720
They're not necessarily good at judging what
success is like. There's some other stuff

970
01:21:35.720 --> 01:21:41.720
in the book about how to figure
out that success. So I think that

971
01:21:41.800 --> 01:21:49.199
there's a lot about interpersonal interactions and
psychological safety and factors like that that are

972
01:21:49.359 --> 01:21:54.279
far more important. I guess my
pick, and I'm always pitching. This

973
01:21:54.319 --> 01:21:59.359
one is actually a podcast called The
Hidden Brain. It has given me so

974
01:21:59.720 --> 01:22:08.279
much insight into the counterintuitive ways that
our brains work. We always we tend

975
01:22:08.279 --> 01:22:13.840
to assume one thing, and it's
very frequently different from what we think,

976
01:22:14.359 --> 01:22:18.239
and that has a lot of impact
about how we behave in you know organizational

977
01:22:18.319 --> 01:22:26.359
settings especially, so I would highly
recommend The Hidden Brain is if you enjoy

978
01:22:26.399 --> 01:22:30.079
psychology or at all, or you'd
like to know more about yourself. Sorry

979
01:22:30.119 --> 01:22:34.039
if that was seemingly off topic compared
to your No, you know what.

980
01:22:34.199 --> 01:22:39.039
I actually had picked this before,
and then you kept going into systems engineering.

981
01:22:39.079 --> 01:22:42.199
I'm like, wow, he's like
selling my pick for me. No,

982
01:22:42.359 --> 01:22:44.159
I mean I like the Hidden Brain, you know. I think we'd

983
01:22:44.199 --> 01:22:48.119
get there realistically because those sorts of
things affect our judgments, affect what we're

984
01:22:48.439 --> 01:22:51.720
where we focus on building. So
I think that's highly relevant as well.

985
01:22:53.159 --> 01:22:56.319
No, I mean you can and
I took two picks. Yeah, that's

986
01:22:56.720 --> 01:22:59.520
also fine. You're allowed to have
two picks, you know. I like

987
01:22:59.560 --> 01:23:01.880
original. I think it is a
great book by by Adam Grant as well.

988
01:23:01.960 --> 01:23:08.760
So okay, so that's it for
today. Thank you David Thanking for

989
01:23:08.760 --> 01:23:11.880
for coming on and sharing your wisdom
with us. It'd be really great to

990
01:23:11.920 --> 01:23:14.800
have you back on the show in
the fund. Yeah we could go,

991
01:23:14.920 --> 01:23:18.079
we go all the way down into
uh kangne of road. Yeah, definitely

992
01:23:18.119 --> 01:23:21.119
we should do it. Okay,
So thank you everyone, Thank you for

993
01:23:21.119 --> 01:23:26.239
yours uh when We'll be back next
week with well thanks for having me,

