1
00:00:00,000 --> 00:00:05,940
Hello there. This week I've got a discussion that we had as part of what we kind of confusingly

2
00:00:05,940 --> 00:00:11,500
call our pivotal conversation part of the SpringOne Tour events, where in the afternoon we have

3
00:00:11,500 --> 00:00:16,840
kind of open sessions with people instead of the prepared talks. Anyhow, this one is with Paul and

4
00:00:16,840 --> 00:00:22,920
Nate and myself, and we talk about some of the, I don't know, theoretic meandering thinking I've

5
00:00:22,920 --> 00:00:28,240
been having recently about how DevOps is kind of turning into OpsOps, if you will, as platform

6
00:00:28,240 --> 00:00:34,000
engineering and SRE comes into play. There's also some discussion of how enterprise architecture

7
00:00:34,000 --> 00:00:39,060
is done or should be done in kind of like this decoupled microservice-y event-driven world.

8
00:00:39,360 --> 00:00:45,280
And there's a few other topics on the areas of culture change and remote work and things like

9
00:00:45,280 --> 00:00:51,000
that. We recorded this in a big open room, so the audio is not as ideal as it should be, but hopefully

10
00:00:51,000 --> 00:00:57,080
you enjoy the slight tinkling of silverware and things being picked up at the end. With that,

11
00:00:57,080 --> 00:00:58,020
enjoy the episode.

12
00:00:58,020 --> 00:01:02,360
Well, Paul, how do you notice people doing what DevOps is?

13
00:01:02,840 --> 00:01:08,600
No, I mean, definitely what I just heard described are very common patterns. Everyone kind

14
00:01:08,600 --> 00:01:14,360
has interpreted DevOps to mean their own things. Everyone does do it slightly differently. So you

15
00:01:14,360 --> 00:01:20,600
get everything from like a DevOps team that for all intents and purposes is just like a traditional

16
00:01:20,600 --> 00:01:26,680
ops team that maybe writes a bit of Ansible to where you have, it's a bit more embedded where you might

17
00:01:26,680 --> 00:01:33,720
have like a DevOps group, but then you also have like an ops person in each dev team or you have everyone

18
00:01:33,720 --> 00:01:43,000
someone who's kind of an ops person. And then you sometimes have it where like, and then sometimes

19
00:01:43,000 --> 00:01:48,680
you have like every single team is there a completely separate entity and goes off and does their own

20
00:01:48,680 --> 00:01:56,120
thing. Which I think that used to be pretty common in like startups. And then they hit a size point where

21
00:01:56,120 --> 00:02:01,960
they realize that there's just like this massive amount of sprawl and then they tend to move back to

22
00:02:01,960 --> 00:02:08,040
some sort of centralized ops like mentality, which I think the really centralized ops is actually where

23
00:02:08,040 --> 00:02:13,720
you want to be in a way. Um, but you want to be, have that centralized ops team, like building a platform

24
00:02:14,440 --> 00:02:20,680
and treating that platform as a product with contracts and APIs that the dev teams work with.

25
00:02:20,680 --> 00:02:26,760
So in a way it's sort of, you're taking that like cloud native, like microservices way of

26
00:02:26,760 --> 00:02:31,960
writing software and deploying software. And you're saying, okay, let's align the ops team around that

27
00:02:31,960 --> 00:02:37,640
same, like I had to use the word, but around the same paradigm. Um, and you know, that way you're kind

28
00:02:37,640 --> 00:02:45,720
of, uh, hacking Conway's law to do like what you want. Right. You, you, you, you know, Conway's law,

29
00:02:45,720 --> 00:02:50,520
right? Give us the Conway's law. The architecture of your application matches the communication patterns

30
00:02:50,520 --> 00:02:55,960
of your organization. Right. Which generally is better said as like your architecture will look like the

31
00:02:55,960 --> 00:03:00,440
structure of your organization. Right. That's technically it'll mimic your orchard. Right.

32
00:03:01,560 --> 00:03:05,720
Yeah. Yeah. Yeah. And so if you, if you have, if you know that and you keep that in mind,

33
00:03:05,720 --> 00:03:11,000
you structure, you restructure your organization to match how you want your software to look. So if

34
00:03:11,000 --> 00:03:16,920
you want to go into a, a super deep microservice architecture, you need to build your organization

35
00:03:16,920 --> 00:03:22,200
to be like that all the way down to like your operations folks. Yeah. It's like the reverse Conway

36
00:03:22,200 --> 00:03:25,880
maneuver, I think. Right. Yeah. But you know, to your point, it sounds like something you don't

37
00:03:25,880 --> 00:03:29,480
want to look up on open dictionary. Probably shouldn't just in fairness, you know,

38
00:03:29,480 --> 00:03:33,320
you and I've talked about this. I think what you're really arguing for, and certainly the way I look at

39
00:03:33,320 --> 00:03:38,920
it from an architecture perspective is we want to pave these well-worn paths so that we've done this

40
00:03:38,920 --> 00:03:43,080
before. We know how to do it. We know how to support it and we can get you to production in a reliable,

41
00:03:43,080 --> 00:03:46,840
repeatable fashion. You know, the problem you're running into and everybody's doing their own thing

42
00:03:46,840 --> 00:03:52,920
is all of a sudden there are a thousand ways to do the same thing. There's no consistency. There's no

43
00:03:52,920 --> 00:03:57,640
reliability. That's a really bad place to be with software. You know, we've known this forever. You know,

44
00:03:57,640 --> 00:04:01,640
that whole notion of, well, it worked in dev, but not here. It worked in test, but not here.

45
00:04:02,280 --> 00:04:05,160
That's misery. We don't want to be there. Our customers don't want us to be there.

46
00:04:05,800 --> 00:04:10,120
And the only way we get there is by having more consistency. And now where that gets challenging

47
00:04:10,120 --> 00:04:14,840
is sometimes people are like, but I don't want the restrictions that are applied to me when I have

48
00:04:14,840 --> 00:04:19,800
that. But you have to look at those things as guardrails and they're there to protect you,

49
00:04:20,360 --> 00:04:22,360
not to hinder you.

50
00:04:22,360 --> 00:04:27,320
Yeah. And, and more, more, you, you need to look at it not as restrictions, but as,

51
00:04:28,280 --> 00:04:33,000
um, like part of the contract that gets you something. It like, because you get like,

52
00:04:33,000 --> 00:04:39,000
if you follow my, my guardrails, you're going to get monitoring, you're going to get logging,

53
00:04:39,000 --> 00:04:43,080
you're going to get observability, you're going to get dashboards, you're going to get a common way to

54
00:04:43,080 --> 00:04:48,600
like operate your software. So you're not really being restricted. You're actually being given a lot more

55
00:04:48,600 --> 00:04:53,960
freedoms because you're just focused solely on writing your application and letting like the,

56
00:04:53,960 --> 00:04:59,000
the, the people running the platform manage all this extra stuff. And I think that's kind of

57
00:04:59,000 --> 00:05:04,200
important is, um, I, there's, there's a quote somewhere. I don't know the exact quote, but basically

58
00:05:04,200 --> 00:05:10,440
it was like all, all the good DevOps work happens before the software is deployed, right? It's not

59
00:05:10,440 --> 00:05:18,120
like DevOps isn't devs carrying a pager. DevOps is like all the stuff that happens from CICD

60
00:05:18,120 --> 00:05:21,720
through to running and production. That includes like hooking it up to monitoring,

61
00:05:21,720 --> 00:05:25,480
making sure the right alerting is in place, getting the right dashboards in place. That's,

62
00:05:25,480 --> 00:05:30,040
that's where all the DevOps work is. I, and yes, like there's, you know, infracode,

63
00:05:30,040 --> 00:05:34,120
config management, writing kube manifests and stuff is part of that, but that's still all

64
00:05:34,120 --> 00:05:37,880
happening before the code is being deployed. And hopefully that pager doesn't have to go

65
00:05:37,880 --> 00:05:40,520
off very often. And hopefully that pager doesn't have to go off very often.

66
00:05:40,520 --> 00:05:43,560
Now, the interesting thing though, is I completely agree with you that the platform

67
00:05:43,560 --> 00:05:46,680
should free you up to focus on what you really care about. And frankly,

68
00:05:46,680 --> 00:05:51,000
what your customers are paying for, you know, you've never had a customer come to you and say,

69
00:05:51,000 --> 00:05:55,720
you know, Hey, great job upgrading your servers from version X to X plus one. That's dial talent for

70
00:05:55,720 --> 00:06:02,280
that. Right. And they want features, they want bugs fixed. And so if we're wasting time reinventing

71
00:06:02,280 --> 00:06:06,600
reinventing the wheel, reinventing all these things that should just be there, that's time we,

72
00:06:06,600 --> 00:06:12,760
by definition, can't spend fixing things, adding new features. Now, what I find fascinating though,

73
00:06:12,760 --> 00:06:18,280
is there's lots of people that still reinvent that wheel. And I think the rationale there goes back to

74
00:06:18,280 --> 00:06:23,320
a quote from a friend of mine, Neil Ford, who said, meta work is more interesting than work.

75
00:06:23,320 --> 00:06:27,640
And this is why in so many projects, like the first thing people do is like, all right, we have to

76
00:06:27,640 --> 00:06:32,600
sit down and build a framework for building frameworks, because that's interesting work,

77
00:06:32,600 --> 00:06:36,840
you know, putting a web front end on a relational database. Well, that's all plaza, who cares?

78
00:06:37,480 --> 00:06:41,480
I want to be the framework builder. And it's like, well, yeah, I mean, that may be what you want to

79
00:06:41,480 --> 00:06:45,640
put on your resume. That is not what really any of our companies have ever asked us to do.

80
00:06:46,520 --> 00:06:51,960
So what, one, one thing, and I'd be interested in y'all's reaction to this is, is, uh, so it sounds

81
00:06:51,960 --> 00:06:57,000
like what, what y'all to some extent have just described is not, is, is basically let's take DevOps

82
00:06:57,000 --> 00:07:03,680
and take the dev out of it and just have like better ops in, in the sense of like, you do all this

83
00:07:03,680 --> 00:07:07,760
work beforehand. And like, you're going to build out a platform, but you're not really like, I feel

84
00:07:07,760 --> 00:07:13,920
like you don't even have all the like blameless stuff and all the cultural stuff of DevOps as,

85
00:07:13,920 --> 00:07:18,480
as we sort of understand it. It's almost like, well, we had all that application stuff and all that,

86
00:07:18,480 --> 00:07:23,680
like how to actually focus on, on, uh, all the usual agile things that we have combined together

87
00:07:23,680 --> 00:07:29,120
into DevOps. But sort of what we mean now is like, you should do things, you should do things well.

88
00:07:29,120 --> 00:07:34,240
But really what we mean by DevOps is focusing on like building out this platform and being

89
00:07:34,240 --> 00:07:38,960
a centralized team. That's not part of the application development team that really automates

90
00:07:38,960 --> 00:07:45,840
and does all of this stuff, which, which is sort of, uh, maybe like three or four years ago in the

91
00:07:45,840 --> 00:07:51,280
DevOps world that was like explicitly said, not what it is that, that you would have a separate DevOps

92
00:07:51,280 --> 00:07:56,000
team. So like, I mean, that's, that's like a, uh, I don't know if it's a contradiction,

93
00:07:56,000 --> 00:07:59,600
but it's a little like intellectual thing I always think about is it seems like nowadays

94
00:07:59,600 --> 00:08:06,240
DevOps is basically just like tops. Yeah. I mean, like you look at the, the purest view of it and

95
00:08:06,240 --> 00:08:13,040
DevOps is like a set of practices and it's a type of like organizational culture. Well,

96
00:08:13,040 --> 00:08:18,000
that's all great, but you're not going to be able to do that if you don't have tools in place to

97
00:08:18,000 --> 00:08:23,840
actually work. Right. Right. You went to use that to follow along your paradigm word. You need an

98
00:08:23,840 --> 00:08:30,160
enabler. Yeah, exactly. Yeah. So, you know, it's, it's great to talk about the cultural aspects of it,

99
00:08:30,880 --> 00:08:36,240
but you don't get a lot of actionable takeaways. Right. Right. Like I can't like as a,

100
00:08:37,120 --> 00:08:41,600
as a practitioner, I can't action culture. Right. That's something that needs to happen

101
00:08:41,600 --> 00:08:47,200
like at the executive level, because they're the ones that set the, um, uh, incentives and all that

102
00:08:47,200 --> 00:08:52,480
sort of stuff. Right. Um, but I can certainly like, you know, figure out how to automate some

103
00:08:52,480 --> 00:08:58,400
shit. Right. You know, use some tools to automate stuff and I can kind of tackle things from the,

104
00:08:58,400 --> 00:09:03,840
the, from the ground, but it's definitely not like culture focused. It's more like,

105
00:09:04,720 --> 00:09:09,040
in a lot of ways it's almost selfish. It's like, I just, I just want to stop being so miserable. So

106
00:09:09,040 --> 00:09:15,200
I'm going to like have the robots do the work that I don't enjoy doing. Yeah. So, so in y'all's

107
00:09:15,200 --> 00:09:22,320
experience, like when it comes to the DevOps you were describing, is it more just like the tools

108
00:09:22,320 --> 00:09:27,280
and techniques you use? Or do you have a lot of like, uh, cultural things where you learn to work

109
00:09:27,280 --> 00:09:34,080
together better and get along and focus on, I think basically what, what's the calm stuff? It's,

110
00:09:34,080 --> 00:09:39,040
you basically culture automation, learning measurement sharing. Yeah. Yeah. So basically,

111
00:09:39,040 --> 00:09:44,160
I guess what I'm proposing is it's all just the A and the M there's, there's, there's a lot less

112
00:09:44,160 --> 00:09:50,400
culture learning sharing. Did I get that right? Culture's hard though. I mean that, that's the

113
00:09:50,400 --> 00:09:55,360
hardest part of this whole game. And, and so, so, I mean, anyway, like does, do y'all when you're

114
00:09:55,360 --> 00:10:00,480
doing DevOps, is it just more about the, uh, the automation and that the monitoring and not that you

115
00:10:00,480 --> 00:10:03,920
don't do those other things. And you can make an argument that that's where this stuff has to

116
00:10:03,920 --> 00:10:09,600
start because, you know, to Paul's point, we rarely have the ability, especially in an existing

117
00:10:09,600 --> 00:10:13,680
company to say, I want to change culture. You know, we're usually not empowered to do that.

118
00:10:14,080 --> 00:10:19,520
So as we start to nudge the ball on the direction, the culture starts to evolve along with that. Now,

119
00:10:19,520 --> 00:10:23,440
it takes a really long time and that's where this gets frustrating. You know, I think one of the,

120
00:10:23,440 --> 00:10:27,840
I think I made this comment earlier, but a lot of what, what I've done when I work with clients

121
00:10:27,840 --> 00:10:33,280
really boils down to essentially technology marriage counselor. You know what I mean? These things are

122
00:10:33,760 --> 00:10:39,280
actually a technology issue. It usually is, Hey, these two groups aren't talking to one another.

123
00:10:39,280 --> 00:10:44,160
You guys need to hug it out and start working together to solve these problems, you know,

124
00:10:44,160 --> 00:10:47,760
but the challenge it's, that's, you know, and you had a great way of phrasing this this morning is,

125
00:10:47,760 --> 00:10:54,720
you know, in an organization that culture gets cemented in so early and the people that rise up through

126
00:10:54,720 --> 00:10:59,520
that have essentially learned how to gain that culture. And so they have very little incentive to

127
00:10:59,520 --> 00:11:05,040
change it because they're by definition successful inside that culture. You know,

128
00:11:05,040 --> 00:11:09,280
so the challenge then becomes, well, how do you start moving that needle? And, and I've seen this,

129
00:11:09,280 --> 00:11:15,280
I was in an organization that went from very traditional waterfall, four releases a year,

130
00:11:15,280 --> 00:11:19,520
big bang integration, you know, and it's taken more than a decade to get them to the point where

131
00:11:19,920 --> 00:11:24,400
agile is like the default. You know, when we first tried to build project rooms, it was like pulling

132
00:11:24,400 --> 00:11:27,520
teeth. Nobody's like, what's a project room? We don't know how to do that. You're not supposed to have

133
00:11:27,520 --> 00:11:32,960
that. And then before I left, like the last big thing that it was like renovate, like all the IT

134
00:11:32,960 --> 00:11:39,760
floors to be all project rooms, you know, but that took years. And I took in many cases to phrase it,

135
00:11:39,760 --> 00:11:44,720
I guess, politely, a certain level of management had to kind of age out or move on and realize,

136
00:11:44,720 --> 00:11:46,560
Hey, it's time for me to go do something different.

137
00:11:46,560 --> 00:11:48,640
Who made the decision? Who changed it?

138
00:11:48,640 --> 00:11:54,880
Well, I believe it's, it's, it's, it's usually a bit of both though. You, you know,

139
00:11:54,880 --> 00:11:59,520
you need to have that, that ground level buy-in, but you also need to have some champion at the top

140
00:11:59,520 --> 00:12:01,040
who's able to kind of navigate some of that.

141
00:12:01,040 --> 00:12:08,480
Yeah. And, and, and what's interesting is to see like you need to find that person who's willing to

142
00:12:08,480 --> 00:12:12,560
basically keep pushing, keep pushing, keep pushing. And that's what happened for us. I mean, we, we had

143
00:12:12,560 --> 00:12:16,880
one, one manager in particular, who's just like, yeah, no, we want a project room. Yeah, we want a

144
00:12:16,880 --> 00:12:21,920
project room. Okay. We're going to book this room for a year and dare you to stop us, you know? And,

145
00:12:21,920 --> 00:12:26,960
and so he just wouldn't take no for an answer, you know? And, and that's, that's what you need in a lot

146
00:12:26,960 --> 00:12:30,640
of these organizations is to find somebody who's willing to essentially ram their head against the

147
00:12:30,640 --> 00:12:35,840
wall for a while until cracks start to appear. I'll, I'll, I'll go a little bit even stronger is

148
00:12:35,840 --> 00:12:42,160
like the, uh, pretty much all the organizations I've looked at, they have to have, as we would say,

149
00:12:42,160 --> 00:12:47,760
executive sponsorship to change beyond like two or three teams, right? Which I guess sounds obvious

150
00:12:47,760 --> 00:12:51,200
if you're going to change a lot of teams, it's important. But I think, I think the reason to point

151
00:12:51,200 --> 00:12:59,360
that out is, uh, you need to find one of those people, right? Like I'm sure maybe y'all's work

152
00:12:59,360 --> 00:13:03,040
isn't like this, but we definitely talk with a lot of people who, uh, they want to change. And then

153
00:13:03,040 --> 00:13:08,800
you kind of go up two or three levels in the management chain and it's usually a vice president

154
00:13:08,800 --> 00:13:14,080
or a senior vice president. And what you hear is that like, they don't want to change. And so this,

155
00:13:14,080 --> 00:13:19,520
thanks for coming in and showing us how like, uh, events work and, uh, we'll see you later. Uh,

156
00:13:20,080 --> 00:13:25,920
but it is very much so, I mean, most of the, the organizations I talk with, they really have,

157
00:13:25,920 --> 00:13:31,680
you could call it a champion or whatever, but at a high level, there are executives that sponsor that.

158
00:13:31,680 --> 00:13:35,840
And there's a few tactics like in that book I was referencing that I kind of document where,

159
00:13:35,840 --> 00:13:41,920
uh, if you have one of those executives, they can start to build up a track record and slowly build

160
00:13:41,920 --> 00:13:46,480
up. Like I've done two projects. Well, now I've done five, now I've done 10, but again,

161
00:13:46,480 --> 00:13:52,640
you need that managerial executive thing to plan all that out and book a conference room for a year.

162
00:13:53,200 --> 00:13:56,960
So it's almost like the strangler patent for microservices, but for your culture.

163
00:13:56,960 --> 00:14:01,200
Right. That's right. Right. Yeah. Yeah. Yeah. And, and as, as another thing, you know,

164
00:14:01,200 --> 00:14:05,040
another thing I noticed a lot of organizations do is they set up a brand new organization.

165
00:14:05,040 --> 00:14:10,160
Yes. So there's, there's the old organization that does everything the old way and slowly. And again,

166
00:14:10,160 --> 00:14:14,720
this is why you need to have high level buy-in is they move one team over to doing things in a

167
00:14:14,720 --> 00:14:19,040
new way, working on a new stack. And then they move two teams. And you can kind of see how the,

168
00:14:19,040 --> 00:14:24,720
the things start to equalize or not equalize, but they start to shift around. And that's oftentimes

169
00:14:24,720 --> 00:14:30,160
people call that a labs or whatever, but that happens very frequently. Uh, and it's one way of,

170
00:14:30,160 --> 00:14:36,480
um, not having to change the old organization, which you could spend a lot of time doing that.

171
00:14:36,480 --> 00:14:41,120
It's like, I guess if you had a, uh, a refrigerator and it keeps breaking down at some point,

172
00:14:41,120 --> 00:14:46,480
it's better just to buy a new refrigerator, right? But at some point you do need to change the rest of

173
00:14:46,480 --> 00:14:51,360
the organization. Otherwise you're like innovation lab or whatever you call it becomes like its own

174
00:14:51,360 --> 00:14:56,080
silo that everyone else hates. Cause you get to play with the cool shit and you don't share your

175
00:14:56,080 --> 00:15:00,400
toys. Right. Yeah. Yeah. Because you're not allowed to share your toys. Right. And so you have all these

176
00:15:00,400 --> 00:15:04,800
other problems. So, you know, you have to like, at some point you still need the organ,

177
00:15:04,800 --> 00:15:10,560
like the, the larger executive group to decide that we need to change, which usually requires some

178
00:15:10,560 --> 00:15:14,480
sort of external force. Yeah. Well, and, and I think the other challenge there and something you

179
00:15:14,480 --> 00:15:18,960
and I were talking about earlier today is that takes time, you know, and in a lot of organizations,

180
00:15:18,960 --> 00:15:22,960
you know, I mean, I've seen various statistics about like how long a vice president,

181
00:15:22,960 --> 00:15:27,360
a senior vice president usually lasts in an organization and it's generally not measured in decades,

182
00:15:27,360 --> 00:15:32,640
you know, it's measured in like months, you know? And so you need to find somebody who has enough

183
00:15:32,640 --> 00:15:39,440
political capital, knows how to spend it wisely and is empowered to stay in that position long enough

184
00:15:39,440 --> 00:15:43,680
to see the change happen. Because there's a Machiavelli quote about that, that, you know,

185
00:15:43,680 --> 00:15:47,680
when you try to make change, there's people are often just going to sit on the sidelines because

186
00:15:47,680 --> 00:15:51,520
you've got a group of people who are going to actively resist you because they're doing well

187
00:15:51,520 --> 00:15:55,600
in the old system. So they have zero incentive to change. But then most other people are like,

188
00:15:55,600 --> 00:15:59,120
well, I'm just going to hang back and see which way things fall because I don't want to be on the

189
00:15:59,120 --> 00:16:03,600
losing side. You know, it's sort of like game of thrones, you know, you, you either win or you die.

190
00:16:03,600 --> 00:16:08,560
Right. And so that's part of it, I think in a lot of organizations. So how do you find that where

191
00:16:08,560 --> 00:16:14,880
it's like, I have enough time to let the organization evolve and, and move along with it. And again,

192
00:16:14,880 --> 00:16:19,760
in a lot of situations, at least from my perspective, it does take a change in that management.

193
00:16:19,760 --> 00:16:25,440
You know, the, the old guard is typically not going to be welcoming open arms for a brand new way of

194
00:16:25,440 --> 00:16:29,840
doing things. As companies look around and go, wow, we're having a really hard time attracting talent

195
00:16:30,480 --> 00:16:35,440
or people are coming in and leaving six months later. You know, you start to realize, hey, we might need

196
00:16:35,440 --> 00:16:40,240
to start changing things or we're not going to have, we have to, we don't have a choice, you know? And in

197
00:16:40,240 --> 00:16:44,560
fairness, sometimes that's what it takes is sort of that, that burning ship moment to say, all right,

198
00:16:44,560 --> 00:16:48,560
well, we, we don't have a choice. We can't go backwards. We have to go forwards, you know,

199
00:16:48,560 --> 00:16:52,640
and that's usually the impetus in some cases to, to cause that change to happen.

200
00:16:52,640 --> 00:16:58,240
So on a, on a slightly related, but also related, uh, topic since, since, uh, following up on some

201
00:16:58,240 --> 00:17:02,720
architectural stuff. So that's on the other end of the scale. So a lot of the stuff we've seen today

202
00:17:02,720 --> 00:17:06,880
and people talk about is like, you know, we should have these, uh, independent microservices talking

203
00:17:06,880 --> 00:17:11,120
with each other. And, uh, we're going to have these events that hook together and, uh,

204
00:17:11,120 --> 00:17:15,440
everyone's going to be like coordinating and awesome. So we can get rid of all the enterprise

205
00:17:15,440 --> 00:17:19,920
architects because they don't need to like mandate things anymore. And we're probably going to have,

206
00:17:19,920 --> 00:17:23,200
I don't know what any of this means, but it's what I always hear. We're going to have like

207
00:17:23,200 --> 00:17:28,720
contracts that specify how these things coordinate together. Um, and I don't know, that sounds like

208
00:17:28,720 --> 00:17:34,000
that wouldn't work. So like how, how, if you're going to have all these independent autonomous

209
00:17:34,000 --> 00:17:39,440
people working together on their little part of the functionality, how are people making sure that all

210
00:17:39,440 --> 00:17:44,800
fits together at some point? Cause you know, it's cool sometimes that I have to like reload

211
00:17:44,800 --> 00:17:50,480
Twitter or Instagram, but I assume like the bills, the cash needs to move from one account to another.

212
00:17:50,480 --> 00:17:52,160
Maybe I don't want to reload my bank.

213
00:17:52,160 --> 00:17:56,240
Yeah. Yeah. And I mean, it's always, sometimes the answer is like, well, yeah,

214
00:17:56,240 --> 00:18:00,560
you don't apply all this nonsense to that. However, like there must be some kind of

215
00:18:01,440 --> 00:18:06,880
coordination that needs to go on between all these independent things. And usually an EA would do that,

216
00:18:06,880 --> 00:18:10,480
but they don't, or they do. So how does that sort of pan out? How do you do

217
00:18:11,120 --> 00:18:13,600
enterprise governance without doing enterprise governance?

218
00:18:13,600 --> 00:18:18,880
So one of the ways that you're starting to see that be applied is with fitness functions.

219
00:18:19,680 --> 00:18:24,000
And so this is a concept. I mean, I think the easiest way for me to describe it is it's essentially

220
00:18:24,000 --> 00:18:27,760
a unit test for your architecture. And so we've done this traditionally where,

221
00:18:27,760 --> 00:18:32,640
you know, you write your tests for your code, but we've really never tested our architecture.

222
00:18:32,640 --> 00:18:36,240
You know, we, we come up with these principles. We think, okay, like performance is a big thing.

223
00:18:36,240 --> 00:18:40,320
So we want to make sure our app performs well. But usually what that means in most orgs is,

224
00:18:40,320 --> 00:18:44,320
well, we did a performance test before we went to production, you know, and maybe we found some

225
00:18:44,320 --> 00:18:47,360
problems and maybe we fixed it, but that's like a one-off kind of thing. And then we never talk

226
00:18:47,360 --> 00:18:50,560
about it again until, oh, hey, we're starting to see some performance issues in production.

227
00:18:51,680 --> 00:18:55,360
The concept of fitness functions, which, which comes out of this evolutionary architecture

228
00:18:55,360 --> 00:19:00,400
book basically says, well, you should identify those core features of your architecture and

229
00:19:00,400 --> 00:19:05,280
then endeavor to come up with a set of tests that make sure you're still following those principles.

230
00:19:05,680 --> 00:19:08,960
You know, because one of the things that became really clear to me after I got into the architecture

231
00:19:08,960 --> 00:19:14,080
world is I can't be involved in every decision. It's just not possible. There's, we're spread so

232
00:19:14,080 --> 00:19:18,880
thinly that teams have to be, and they have to be empowered to make decisions quickly as well.

233
00:19:19,600 --> 00:19:22,080
But how do we make sure we're all making good ones?

234
00:19:22,560 --> 00:19:23,680
How could you test that?

235
00:19:23,920 --> 00:19:29,520
Yeah. Well, there's ways, right? And so like, we might decide, uh, what's a good one? Cyclomatic

236
00:19:29,520 --> 00:19:34,240
complexity. We might decide we don't want our cyclomatic complexity to be above a single digit

237
00:19:34,240 --> 00:19:37,760
number. You can easily write a test for that. You might say, we don't want to have any circular

238
00:19:37,760 --> 00:19:41,920
dependencies. You can write a test for that. You know, so there's things like that that we can do.

239
00:19:41,920 --> 00:19:45,920
And there's actually a project called, I think it's arc unit that, that exposes some of that

240
00:19:45,920 --> 00:19:49,520
kind of stuff. There's a dot net variant as well. You know, and so I think that's

241
00:19:49,520 --> 00:19:54,320
the way I would argue. We try to shift governance more towards these, these automated things. And

242
00:19:54,320 --> 00:19:59,600
that might be like a spring cloud contract kind of a thing where it's like, Hey, this is my contract.

243
00:20:00,160 --> 00:20:04,640
You know, if we need to change it, then we need to communicate. And I think that's the important

244
00:20:04,640 --> 00:20:11,360
part of a lot of these things is they're not, they're not a replacement for the conversation.

245
00:20:11,360 --> 00:20:15,120
They're like a placeholder for it. You know? So if we come up with a spring cloud contract,

246
00:20:15,120 --> 00:20:18,640
it says, this is what you expect. This is what I'm going to give you. If something needs to

247
00:20:18,640 --> 00:20:24,320
change and that test breaks, then we need to talk about that and actually work it out. You know,

248
00:20:24,320 --> 00:20:29,520
I've seen too many technologies that like try to replace the people part of this business. And I

249
00:20:29,520 --> 00:20:34,480
just don't think that's going to happen anytime soon. Because a lot of times the most effective

250
00:20:34,480 --> 00:20:38,480
thing is, Hey, how about you and I just like chat about this? What do you need it to do?

251
00:20:39,360 --> 00:20:43,520
What do you have? You know, that's way more effective than, well, I created a service catalog.

252
00:20:43,520 --> 00:20:49,200
And, you know, it's like, that just is nonsense to me, but so, so how did, how does like a contract

253
00:20:49,200 --> 00:20:58,720
do that? Like, like, like, let's say, let's say I, uh, I have like a login service and I've got a

254
00:20:58,720 --> 00:21:04,480
contract for it and there's like 10 different people who use the login service. And I want to say like,

255
00:21:04,480 --> 00:21:08,000
here's, there's five ways you can log in. Stop doing this one way.

256
00:21:08,000 --> 00:21:13,440
Like, well, so again, this is where, you know, as Paul brought up, as we get to these microservices,

257
00:21:14,240 --> 00:21:18,160
there's a lot more complexity that comes along with it. And so we need the alerting and the

258
00:21:18,160 --> 00:21:21,600
observability and the monitoring. And so one of the things that we inevitably have to do is,

259
00:21:21,600 --> 00:21:27,520
Hey, this microservice is deprecated. You shouldn't be using it anymore. And there's various ways we can

260
00:21:27,520 --> 00:21:33,680
communicate that could be some tests could be, Hey, everybody don't use this anymore. And we have to

261
00:21:33,680 --> 00:21:36,720
talk to one another about that. We send out an email, we put something on the wiki,

262
00:21:36,720 --> 00:21:41,360
but then we have monitoring in place that says, Hey, wait, you're still using that deprecated

263
00:21:41,360 --> 00:21:45,520
microservice. Why are you still using it? What do you need from us to get you transitioned over?

264
00:21:46,160 --> 00:21:49,040
You know, and do we have to put kind of a proxy in place for a little bit? I mean,

265
00:21:49,040 --> 00:21:53,120
what do we need to do to get you there? You know, and then work through that, you know,

266
00:21:53,120 --> 00:21:57,860
so, so that's where it does get more complicated. And that's why, you know, I did that thing last year

267
00:21:57,860 --> 00:22:02,160
on like, should this even be a microservice, right? Because too many teams are going in that direction

268
00:22:02,160 --> 00:22:08,080
because we'll shiny new thing, but there's a lot of situations where you don't actually need

269
00:22:08,080 --> 00:22:12,160
microservices. That's not actually buying you anything. You've made your life much harder than

270
00:22:12,160 --> 00:22:17,840
it needed to be. You're paying this, this tax for this initial complexity and you're not getting any

271
00:22:17,840 --> 00:22:22,320
benefit for it. You know, and again, not that that's new for microservices. We've done that throughout the

272
00:22:22,320 --> 00:22:26,800
history of technology, but it's important that if we go down that path, we understand the consequences

273
00:22:26,800 --> 00:22:31,680
of it. You know, there's positive consequences. I can scale them independently, deploy them independently,

274
00:22:31,680 --> 00:22:35,920
use different technologies, but there's negative consequences as well that now I have to get these

275
00:22:35,920 --> 00:22:39,760
things to communicate together in a large enough organization. You're going to have hundreds,

276
00:22:39,760 --> 00:22:44,400
if not thousands of these things floating around. And, and the reasoning about your system becomes

277
00:22:44,400 --> 00:22:49,280
much more difficult as well, that you might be willing to pay that price if you're getting

278
00:22:49,280 --> 00:22:53,680
the benefit along with it. And if you're not, well, reconsider that architectural choice.

279
00:22:53,680 --> 00:23:01,040
As you explained in seminars. Exactly. Yeah. So, you know, it also seems like the first half,

280
00:23:01,040 --> 00:23:06,480
maybe all of it's obvious, but like, it seems like the enterprise architecture governance

281
00:23:07,600 --> 00:23:12,880
one needs to use, like basically matches the infrastructure that you have. Yeah. And then,

282
00:23:12,880 --> 00:23:17,600
and then, so, I mean, I, and I guess this was basically what a leaky abstraction is, right? That

283
00:23:17,600 --> 00:23:23,440
lower levels of your stack cause you to behave in a certain way as you go up. But then the more

284
00:23:23,440 --> 00:23:28,560
positive, not positive, the, what to do about that thing is that if your infrastructure changes,

285
00:23:29,200 --> 00:23:33,920
it's probably highly likely that the way you do governance should change as well. Right? So

286
00:23:34,480 --> 00:23:38,640
that's almost like you can sort of predict that the more we change infrastructure around the,

287
00:23:38,640 --> 00:23:43,520
the enterprise architects need to figure out something new, right? Instead of kind of getting

288
00:23:43,520 --> 00:23:47,440
stuck on doing things in the old way. Well, I think a lot of the enterprise architecture should be

289
00:23:47,440 --> 00:23:52,720
done like at the platform layer. So like the decisions you're making from an architectural

290
00:23:52,720 --> 00:23:59,600
perspective, a good percentage of it can be implemented at the, at the platform level.

291
00:23:59,600 --> 00:24:05,360
Like if you decide that, you know, your primary means of communication is via Kafka streams,

292
00:24:06,000 --> 00:24:12,800
or you'd make damn well sure that your platform enables easy use of Kafka streams. Right. And

293
00:24:12,800 --> 00:24:17,040
then it becomes that like no brainer for developers. Like I don't need to run Kafka. I just need to

294
00:24:18,320 --> 00:24:22,880
connect this stream to here and my messages go to wherever they need to go by some crazy magic that

295
00:24:22,880 --> 00:24:25,840
I don't need to care about. And it just works. I mean, I think that's a great point,

296
00:24:25,840 --> 00:24:31,760
Paul, that, that we should be striving to make the right thing to do the easy thing to do, you know?

297
00:24:31,760 --> 00:24:36,000
And what's been fascinating to me is to see how over, you know, the last probably, I don't know,

298
00:24:36,000 --> 00:24:39,840
eight or 10 years as, as these sort of shadow ops groups have floated up in companies,

299
00:24:40,480 --> 00:24:44,320
you look at the way we've traditionally tried to do this with the heavyweight governance and the

300
00:24:45,040 --> 00:24:50,800
whatever change review board type things you've got. And then we're shocked, shocked when our

301
00:24:50,800 --> 00:24:55,280
customers go out and spin up an instance on AWS, because they can get it done like that.

302
00:24:55,840 --> 00:25:00,080
You know, and, and that's part of what, what we're finally starting to respond to. I would argue

303
00:25:00,080 --> 00:25:06,800
in it that our business partners are tired of waiting for us. We can't be that anchor anymore.

304
00:25:07,440 --> 00:25:12,480
And if that's what we continue to do, they'll just find someone who can do it more quickly

305
00:25:12,480 --> 00:25:18,560
because we don't need to do it the way we used to. I mean, you think about the way we built servers

306
00:25:18,560 --> 00:25:24,640
20 years ago, it was someone like us literally putting together a server, literally sliding it into a

307
00:25:24,640 --> 00:25:31,280
rack. We can't do it at that pace. Now that just doesn't work. You know, things are moving too

308
00:25:31,280 --> 00:25:36,560
quickly. Innovation is too rapid. I mean, we're all getting compressed by all these new entrants

309
00:25:36,560 --> 00:25:40,560
into these markets. And so if we continue to respond with, well, that'll take nine months,

310
00:25:41,520 --> 00:25:46,000
why would we be surprised that our business partners are saying, okay, well, forget you guys.

311
00:25:46,720 --> 00:25:49,520
I'm just going to spin up my own little it group over here and get it done now,

312
00:25:49,520 --> 00:26:01,120
I'm just going to spin up my own little bit. But I'm just going to spin up my own little bit.

313
00:26:01,120 --> 00:26:05,600
Well, I was reading a thing recently, I forget the name of the person, but I think it was a he,

314
00:26:05,600 --> 00:26:12,000
he was a physicist who somehow got involved in like doing organizational stuff for software.

315
00:26:12,000 --> 00:26:17,680
And, uh, of course he came up with the formula, which, you know, I don't understand how formulas

316
00:26:17,680 --> 00:26:21,520
work. You multiply a bunch of things together and then divide it by something. And that gives you a

317
00:26:21,520 --> 00:26:27,920
number, carry the two. Yeah. And you're like, the innovation potential is 0.7, whatever that means.

318
00:26:27,920 --> 00:26:32,560
Uh, anyways, but there was, it was an interesting, right. One of the things he was going over is,

319
00:26:32,560 --> 00:26:37,760
so you have two types of organizations. You have an innovation based organization that values doing new

320
00:26:37,760 --> 00:26:43,840
things. And then you have, and I like the neutral scientific way he was putting things like the

321
00:26:43,840 --> 00:26:48,000
following. And then you have an organization that values career advancement, right? And you know,

322
00:26:48,000 --> 00:26:52,960
we can all agree that's great. Like we all would like, I think there's very few people who are like,

323
00:26:52,960 --> 00:26:57,920
no, no, I don't need more money. I totally feel like the balance of input that I give and the

324
00:26:57,920 --> 00:27:04,480
compensation I have is, is fine. Here's some more back. Uh, but so anyways, there was these two modes

325
00:27:04,480 --> 00:27:08,320
of operating and obviously, maybe not obviously, if you're focused on career advancement, you want to

326
00:27:08,320 --> 00:27:14,080
minimize risk, uh, and kind of show off as much as not show off, but basically you want to minimize

327
00:27:14,080 --> 00:27:19,760
risk. Cause I think that's, that's like a Nassim Talebian thing is like actually success is based on not

328
00:27:19,760 --> 00:27:24,560
screwing up, right? Like, and in those orgs, it's like people would rather fail conventionally.

329
00:27:24,560 --> 00:27:29,680
Yes, exactly. Yeah. And so one of the things he pointed out, and then I'll finally, I was trying to break

330
00:27:29,680 --> 00:27:33,280
this habit I have of asking a question and then talking by talking and then asking a question,

331
00:27:33,280 --> 00:27:39,520
which is going just as well. Uh, but like on the topic of how you incent people, like he had a,

332
00:27:39,520 --> 00:27:45,600
the, an interesting other tactic from career advancement was, so instead of rewarding individuals

333
00:27:45,600 --> 00:27:53,760
monetarily, like for, for being good and putting that in quotes, instead you should, uh, not even

334
00:27:53,760 --> 00:27:59,120
really like reward them, but just like sort of like talk about how this was a good innovation and,

335
00:27:59,120 --> 00:28:03,840
and also, and base it also on a different team of people. Like one interesting aspect was that

336
00:28:04,480 --> 00:28:09,680
your manager will reward your behavior, which kind of drives towards this career advancement versus if

337
00:28:09,680 --> 00:28:13,920
you have some external board who's saying this was a good innovation or this was a good thing,

338
00:28:13,920 --> 00:28:18,800
it kind of removes that whole career advancement angle, which when I read this, it made a lot more

339
00:28:18,800 --> 00:28:24,240
sense. But anyways, so that's one little interesting way of shifting people to be more innovation

340
00:28:24,240 --> 00:28:28,640
focused. And I wonder in y'all's experience, like if there's other things that you use to shift people

341
00:28:28,640 --> 00:28:33,760
to change and do things in a new way, like what are some tactics you've seen? I guess another good

342
00:28:33,760 --> 00:28:40,800
one is like find a new job. Yeah. Like, although, you know, that there's kind of that, that saying that

343
00:28:40,800 --> 00:28:45,200
you, you know, change your company or change your company. Right, right. And like, you can't change your

344
00:28:45,200 --> 00:28:50,240
company, unless you change your company. So like, it should be like, be cool with the company you're

345
00:28:50,240 --> 00:28:56,880
at or leave the company you're at. Right. So like, if you know the culture of your, your, your company,

346
00:28:56,880 --> 00:29:01,280
you can figure out how to survive in that culture in a way that hopefully you can get some level of

347
00:29:01,280 --> 00:29:07,680
satisfaction from, even if it's not the innovative DevOps culture you want. Right. If you can find that,

348
00:29:07,680 --> 00:29:11,600
then you're cool. If you can't find that, then you fight, you fight, you end up burning out or whatever.

349
00:29:11,600 --> 00:29:16,560
Um, so I'm not quite answering the question you asked. No, no, no. I'm not quite asking the

350
00:29:16,560 --> 00:29:22,640
question I asked. Right. I feel like it's like, as, as a practitioner, like don't get hung up on the

351
00:29:22,640 --> 00:29:28,880
culture of the place you're working at, get hung up in figuring out how you can like thrive in that

352
00:29:28,880 --> 00:29:33,920
culture, both from, you know, people around you like you, but also from like, I go home not wanting

353
00:29:33,920 --> 00:29:38,880
to like slip my own wrists. Right. Kind of, you know, and so a lot, and a lot of that you can get

354
00:29:38,880 --> 00:29:44,240
from like, you know, DevOps is, you know, one of the primary drivers for DevOps is like reducing

355
00:29:44,240 --> 00:29:50,400
toil, reducing the, the, like the day-to-day like repetitive work that everyone hates doing. Well,

356
00:29:50,400 --> 00:29:54,880
you start like just doing that for yourself, even if you can't do it for your whole team, your whole

357
00:29:54,880 --> 00:29:58,640
company, at least you'll start feeling better yourself. Right. And then maybe you can start like,

358
00:29:59,200 --> 00:30:03,760
you know, sharing a little bit with the people around you and getting more people interested in doing that. Right. And I

359
00:30:03,760 --> 00:30:09,840
suppose from a managerial level, you could, to use the word again, enable your, your staff to do that as

360
00:30:09,840 --> 00:30:15,360
well. Right. Like you could sort of start, start to prioritize not doing like annoying toil type of

361
00:30:15,360 --> 00:30:22,880
work. Right. Yeah. So just, just giving people some trust. Right. It's probably an incentive to

362
00:30:23,520 --> 00:30:28,320
actually start working in a better, smarter way. Right. Right. And, and do you, what are some ways to like

363
00:30:28,320 --> 00:30:33,600
demonstrate you're giving them trust? Well, other than saying, I trust you. Well, but

364
00:30:33,600 --> 00:30:39,840
one of the, one of the things that, that I know I've seen pop up multiple times is what tools do you want

365
00:30:39,840 --> 00:30:49,680
to use? Well, that one's, that one's dangerous in a lot of ways, but I mean, I had a good friend of

366
00:30:49,680 --> 00:30:55,120
mine once who his theory on this was if you really want to do attract better talent, one of the easiest

367
00:30:55,120 --> 00:31:00,640
ways to do it is you tell us what kind of laptop you want. We're not, we're not going to dictate to you,

368
00:31:00,640 --> 00:31:04,320
here's the laptop you're going to order. You know, what do you want? What do you need? You know,

369
00:31:04,320 --> 00:31:09,600
and I look at it in terms of tools. You know, so if, if you were a professional chef and you were in

370
00:31:09,600 --> 00:31:14,960
a kitchen somewhere, there isn't a block of knives and you're forced to use whatever block of knives

371
00:31:14,960 --> 00:31:20,320
the restaurant manager got on sale or, you know, got comped by the rep, you bring your own knives to the

372
00:31:20,320 --> 00:31:25,680
party. And if you like Wustaf, you bring Wustaf and it's your responsibility to keep those,

373
00:31:25,680 --> 00:31:30,560
those things sharp and clean, you know, but it's your choice. And I would argue that that,

374
00:31:30,560 --> 00:31:35,200
frankly, it should be no different for us when it comes to how we do our jobs. If you're super

375
00:31:35,200 --> 00:31:40,160
productive in, in IntelliJ, we should buy you an IntelliJ license. If you're super productive with

376
00:31:40,160 --> 00:31:45,040
Sublime and a bunch of plugins, knock yourself out. It isn't my job to dictate tooling to you

377
00:31:45,040 --> 00:31:49,200
necessarily. You know, again, that, that, that should be a developer level thing. And then now the

378
00:31:49,200 --> 00:31:52,960
platform is a different story, but you know, we should give you as much choice as possible. I,

379
00:31:52,960 --> 00:31:57,520
I think in a lot of ways that is a great first step to say, we trust you to do the right thing. We

380
00:31:57,520 --> 00:32:02,000
trust you to use the tools that you are most productive with, you know, go forth and prosper.

381
00:32:02,000 --> 00:32:07,280
I guess maybe, maybe to use the contract metaphor again, like for a long time, there's always been

382
00:32:07,280 --> 00:32:11,840
this, uh, it's probably a developer who came up with this where the developer would say like,

383
00:32:11,840 --> 00:32:14,800
give me a requirement and don't tell me how to implement it.

384
00:32:14,800 --> 00:32:18,480
Don't solution me is the business analyst wife refers to that.

385
00:32:18,480 --> 00:32:22,720
And it, and it seems like, so that's sort of like a, uh, working relationship between,

386
00:32:22,720 --> 00:32:28,640
let's call them a product manager or a business analyst and, and the development team. Uh, and it

387
00:32:28,640 --> 00:32:34,320
seems like that kind of thinking basically the contract is, and therefore the requirement giver,

388
00:32:34,320 --> 00:32:40,640
uh, their responsibility is to say like, here's what I want to happen, right? Like as a result of your,

389
00:32:40,640 --> 00:32:46,000
whatever software you write executing, this thing should happen this. And, and so that's

390
00:32:46,000 --> 00:32:50,480
sort of a way of doing a contract. And, and it's a little bit of what you're saying is you take that,

391
00:32:50,480 --> 00:32:53,920
or at least what I'm hearing you say, you take that same approach and spread it to the rest of

392
00:32:53,920 --> 00:32:58,880
the system, right? Like I don't care how, what tool you use to write your software, but it needs to

393
00:32:58,880 --> 00:33:05,280
like be packaged this way and be this code and result in this. And like, I don't care how you do

394
00:33:06,160 --> 00:33:12,080
this reservation lookup, whatever is behind this, this contract, like API microservice thing,

395
00:33:12,080 --> 00:33:16,960
you can do whatever you want, but you have to satisfy this, this contract. And I don't know,

396
00:33:16,960 --> 00:33:21,600
I mean, it seems like a pushing out of this, like, don't tell me what to do or don't tell me how to

397
00:33:21,600 --> 00:33:26,400
do it methodology. Well, I think the other way you're starting to see more companies kind of extend

398
00:33:26,400 --> 00:33:33,040
this trust metaphor is to get beyond like the really strict confines of this is what our day is,

399
00:33:33,040 --> 00:33:35,920
you know, and we, you know, and I think more companies are finally starting to realize,

400
00:33:35,920 --> 00:33:41,680
hey, if you're more productive in the afternoon or in the evening or in the early morning, like,

401
00:33:42,080 --> 00:33:46,160
knock yourself out, you know, and you're seeing more and more companies finally figuring out that,

402
00:33:46,160 --> 00:33:51,840
hey, I might not have all the best talent within, you know, 60 clicks of my headquarters. I might

403
00:33:51,840 --> 00:33:56,560
actually have to enable remote work. I mean, that's the one that kills me is how many companies are

404
00:33:56,560 --> 00:34:01,600
like, oh, no, we can't, can't be remote, got to be on site. Really? Why? You know, I mean,

405
00:34:01,600 --> 00:34:06,560
now maybe I'm jaded on this because we're a completely remote team, but the notion that I

406
00:34:06,560 --> 00:34:10,160
need to physically be in the exact same places you are for us to be able to communicate effectively

407
00:34:10,160 --> 00:34:14,560
just doesn't hold anymore. We've got lots of great tools that allow us to communicate. And

408
00:34:14,560 --> 00:34:18,880
I can even see you. I mean, we've got pretty good screen sharing technology, pretty good. Every laptop

409
00:34:18,880 --> 00:34:22,480
sold in the last however many years has a pretty good camera on it. I mean, you can even do a lot of

410
00:34:22,480 --> 00:34:27,760
this on your phone. It's like, if you don't trust me to get my job done, maybe you should just get rid of

411
00:34:27,760 --> 00:34:33,280
me. Yeah, that's the expense policy we should have. Well, as some companies do.

412
00:34:33,280 --> 00:34:38,800
Yeah. Well, well, before, before we end up, before we run out of time, are there any questions that

413
00:34:38,800 --> 00:34:45,280
y'all have or comments? For example, how often do you meet with each of you generally in your team?

414
00:34:45,280 --> 00:34:45,760
Oh, us?

415
00:34:45,760 --> 00:34:46,960
You said you work remotely?

416
00:34:47,920 --> 00:34:52,560
We do these events together. We usually overlap for at least six or eight hours.

417
00:34:53,360 --> 00:34:55,760
But also, to be clear, we don't actually write software together.

418
00:34:55,760 --> 00:34:59,360
No, no, we're pretty unique that way. We just talk about writing software. We don't actually do it.

419
00:35:00,400 --> 00:35:04,160
We're just a bunch of talking monkeys at this point. No, it's mostly at conferences,

420
00:35:04,160 --> 00:35:08,320
mostly at events like this. You know, we do, I guess we've got an offset coming up in October,

421
00:35:08,320 --> 00:35:10,160
something like that. Oh, yeah, yeah, yeah.

422
00:35:10,160 --> 00:35:12,320
You know, we do occasionally get together and meet space, but...

423
00:35:12,320 --> 00:35:16,240
But like, we're all in Slack, so you know, we're constantly talking about stuff.

424
00:35:16,240 --> 00:35:21,840
I guess sometimes seeing is also important. Yeah, absolutely.

425
00:35:21,840 --> 00:35:22,800
Face-to-face.

426
00:35:22,800 --> 00:35:29,920
Yeah, and I can add two things to that. So one, I guess this is what ironic means. Ironically,

427
00:35:29,920 --> 00:35:35,200
like, there's a part of Pivotal called labs, and they're very into a disciplined way that you do

428
00:35:35,200 --> 00:35:38,080
everything. Seemingly the opposite of what we were saying. Yes.

429
00:35:38,640 --> 00:35:43,120
But when it comes, they often like to co-locate, but they also have figured out how to do remote work

430
00:35:43,120 --> 00:35:48,400
a lot. And it's like all these things. It's just like, I don't know, I've used video conferencing.

431
00:35:48,400 --> 00:35:55,280
It works. So that's what they use. And then I think another thing that's more pulling,

432
00:35:55,280 --> 00:35:59,440
that's a generalized thing that definitely our team does, and you know, this is one of those things

433
00:35:59,440 --> 00:36:03,440
you hear about all the time, and it sounds like that was a great 20-minute talk with a bunch of

434
00:36:03,440 --> 00:36:10,160
pictures on a slide. But it really is effectively if you figure out what the principles are and the,

435
00:36:11,040 --> 00:36:15,680
I forget like the militaristic term for it, but like, what are we doing here that you're going

436
00:36:15,680 --> 00:36:23,200
with? And so on our team, we don't really report back to Central very much. And I'll speak for

437
00:36:23,200 --> 00:36:27,920
myself, but it's probably them too. We don't really ever watch the all-hands meetings or like those

438
00:36:27,920 --> 00:36:34,000
things. So what that means is that we do have to find out like what this quarter's or this year's sort

439
00:36:34,000 --> 00:36:40,240
of like deal is for the company. So we have to somehow proactively like sync up on the official

440
00:36:40,240 --> 00:36:45,440
propaganda of the company so that we don't embarrass the company, right? As an example,

441
00:36:45,440 --> 00:36:49,760
you saw all of us emphasizing you need to build a platform, right? Which is a very pivotal principle

442
00:36:49,760 --> 00:36:54,240
thing. So I think that is a very real sort of, if you're doing distributed development,

443
00:36:55,120 --> 00:37:00,800
either the team has to take it on on their own, or the management, to use that term loosely,

444
00:37:00,800 --> 00:37:05,360
has to be very clear about like, here's the principles we're operating under, right? Here's

445
00:37:05,360 --> 00:37:10,080
the things that we need to accomplish. And then again, I'll trust you all to figure it out.

446
00:37:10,080 --> 00:37:15,600
But you got to, if you have dispersed teams, you really have to tell them like what you want

447
00:37:15,600 --> 00:37:19,520
them because they're not going to go to those. And you have to enable it, right? You have to make

448
00:37:19,520 --> 00:37:25,120
sure you have like Slack and Zoom and like whatever your equivalent tools are. Right. If you're not

449
00:37:25,120 --> 00:37:29,360
like, if you have all these crazy corporate policies against those things, then remote work's never

450
00:37:29,360 --> 00:37:33,680
going to be effective. Like you can probably get by, but you're not going to be as effective as in

451
00:37:33,680 --> 00:37:40,320
person. If you enable the right tools and the right people, I mean, you could be just as,

452
00:37:40,320 --> 00:37:44,160
or if not more in remote as you are in person.

453
00:37:44,160 --> 00:37:50,320
I do think even in these remote scenarios though, you should get together face to face periodically,

454
00:37:50,880 --> 00:37:55,600
whether that's once a year, three times a year, but you should try to get people together. If you've

455
00:37:55,600 --> 00:38:00,720
got multiple sites, you know, first quarter, three or four people go to that site. Second quarter,

456
00:38:00,720 --> 00:38:05,840
three or four people come to this site. There's something that does get missed from sitting down

457
00:38:05,840 --> 00:38:09,840
and having dinner together, going to grab a cup of coffee together, you know, and a lot of that sort

458
00:38:09,840 --> 00:38:16,160
of adjacent possible stuff doesn't happen as easily when you're remote. And it's a much different

459
00:38:16,160 --> 00:38:22,000
experience to be face to face than it is even on a screen, you know, which is still much better than

460
00:38:22,000 --> 00:38:27,040
just disembodied voice on a call. You know, I remember being on one remote project where, you know,

461
00:38:27,040 --> 00:38:30,160
we had one project room in one city, there's another project room in another city,

462
00:38:30,160 --> 00:38:34,480
and it was a bit of a cluster until we got video conferencing that was live all the time.

463
00:38:34,480 --> 00:38:38,240
And so each room had a TV and a camera, and we kind of referred to it as like the window,

464
00:38:38,240 --> 00:38:42,240
because like you'd be, you know, communicating to somebody over some proverbial slack type thing,

465
00:38:42,240 --> 00:38:45,520
you know, like, hey, wait, we're not being very effective here. Can we just chat and we'd go to

466
00:38:45,520 --> 00:38:49,520
each other and then essentially face to face across the screen and a whole bunch of problems just

467
00:38:49,520 --> 00:38:54,320
disappear. But having that togetherness is where you start to develop some of that trust and you have

468
00:38:54,320 --> 00:38:59,600
some of those inside joke things and a little bit of ribbing, and that really congeals the team. If you don't have

469
00:38:59,600 --> 00:39:03,040
that at all, it's really hard to work together effectively, I would argue.

470
00:39:03,040 --> 00:39:07,520
And then, and then you can share the pain of who's going to have to work with the expense

471
00:39:07,520 --> 00:39:13,360
auditors on the $3,000 meal, which not that I've ever had to go through that. But like I said,

472
00:39:13,360 --> 00:39:18,000
that's a fun process. Well, well, great. Well, thanks for thanks. This, this turned out well,

473
00:39:18,000 --> 00:39:22,800
from my perspective, well, that's it for this episode. If you enjoyed that conversation and

474
00:39:22,800 --> 00:39:27,200
you're interested in things like that, or learning all about spring and other types of programming and a

475
00:39:27,200 --> 00:39:31,680
little bit of operational and devopsy stuff, you should try to come to one of our SpringOne tour

476
00:39:31,680 --> 00:39:36,640
events. They're in various cities globally. We've got a lot going on to the rest of the year and we

477
00:39:36,640 --> 00:39:41,520
should be having some next year as well. But if you go to SpringOne tour.io, you can find the dates

478
00:39:41,520 --> 00:39:46,160
for them and see how you can get to one. Maybe it's even right around the corner from you. And of course,

479
00:39:46,160 --> 00:39:52,080
in October, we've got our big conference coming up SpringOne platform at SpringOne platform.io.

480
00:39:52,080 --> 00:39:56,160
I've been picking through some of the talks and arranging some of the other parts are relevant

481
00:39:56,160 --> 00:40:00,160
to the tracks I'm helping with. It's going to be a really great conference in my hometown of Austin,

482
00:40:00,160 --> 00:40:06,160
Texas, which has all sorts of great stuff going on. So again, if you're interested in either of those,

483
00:40:06,160 --> 00:40:11,360
you can either go to SpringOne tour.io or SpringOne platform.io to check that out.

484
00:40:11,360 --> 00:40:15,040
And with that, we'll see everyone next time. Bye bye.
