1
00:00:00,000 --> 00:00:03,840
So Randy has three things to
do by the end of the quarter.

2
00:00:04,040 --> 00:00:08,160
Every change going into a release window
has to be in front of the people who

3
00:00:08,400 --> 00:00:14,293
approve it, before that window opens.
He has to track what actually shipped.

4
00:00:14,347 --> 00:00:18,360
And the release notes go out
Friday. That's the assignment.

5
00:00:18,400 --> 00:00:22,800
That's all of it. And look, he's
done work like this before.

6
00:00:22,880 --> 00:00:28,480
None of these tools, same job. He knows what
good looks like, he knows Friday is the

7
00:00:28,560 --> 00:00:32,880
part that slips first, and he could tell
you right now which of those three is the

8
00:00:33,000 --> 00:00:36,413
hard one, before he writes
a single thing down.

9
00:00:36,453 --> 00:00:40,680
He's not guessing. Here's why
it landed on him, by the way.

10
00:00:40,720 --> 00:00:45,320
Last quarter, two changes went into
the same window and they collided.

11
00:00:45,360 --> 00:00:49,840
Three people had approved them, separately,
different threads, and not one of the

12
00:00:50,040 --> 00:00:54,680
three saw the other two. Randy is the
one who pieced it together afterwards.

13
00:00:54,720 --> 00:00:59,680
Which is how it became his. And the thing
he took from that wasn't that somebody was

14
00:00:59,760 --> 00:01:04,040
careless. It's that nothing
actually went wrong on the Friday.

15
00:01:04,080 --> 00:01:09,360
Friday is just where it surfaced. He knows
the ugly number too, because people who

16
00:01:09,440 --> 00:01:12,280
do this for a living have
gone and measured it.

17
00:01:12,320 --> 00:01:17,440
Eighty-six percent of all incidents caused
by change come from a change that closed

18
00:01:17,520 --> 00:01:21,560
successfully. It got
approved. It got deployed.

19
00:01:21,600 --> 00:01:26,760
Somebody ticked it off as done … and
then weeks later it took something down.

20
00:01:26,800 --> 00:01:31,600
So he isn't building an approval form. He's
building something that stays interested

21
00:01:31,760 --> 00:01:36,520
after the deploy. Which is a different
piece of software, and a harder one.

22
00:01:36,560 --> 00:01:40,960
What you're going to watch is somebody
competent take an assignment all the way to

23
00:01:41,040 --> 00:01:47,040
something running. Concept, options,
design, a prototype, a pilot,

24
00:01:47,120 --> 00:01:51,560
and then the unglamorous part,
which is making it survive him.

25
00:01:51,600 --> 00:01:55,133
And the reason it's worth your time
isn't that he gets things wrong.

26
00:01:55,173 --> 00:01:59,920
It's that he's holding a toolbox nobody
handed him before, and the limits are not

27
00:02:00,000 --> 00:02:04,000
where his instincts say they
are. So he goes and finds them.

28
00:02:04,080 --> 00:02:08,680
That's the part you can take. Which is the
whole method, so let me just say it now.

29
00:02:08,720 --> 00:02:13,773
This isn't a session about prompting, and
the thing you need isn't a better prompt.

30
00:02:13,813 --> 00:02:18,400
It's being able to look at a building block
and see what it can't do … because what

31
00:02:18,480 --> 00:02:21,800
it can't do is the spec for
the next thing you build.

32
00:02:21,840 --> 00:02:27,040
The limitation is the specification. And
notice what somebody good actually does

33
00:02:27,120 --> 00:02:31,320
with that. He doesn't sit around
waiting to be surprised by a limitation.

34
00:02:31,360 --> 00:02:33,631
He goes looking for it
while it's still cheap.

35
00:02:33,671 --> 00:02:38,391
Concept is three questions, and
most people only ask the first one.

36
00:02:38,711 --> 00:02:42,711
What problem are you
solving, exactly. Who for.

37
00:02:42,951 --> 00:02:45,911
And who else runs this
when you're not here.

38
00:02:45,991 --> 00:02:48,951
That third one is the
one that gets left out.

39
00:02:49,031 --> 00:02:53,591
It's also the one that decides whether
you built a workflow or a hobby.

40
00:02:53,671 --> 00:02:56,951
So Randy starts by refusing his own brief.

41
00:02:57,151 --> 00:03:02,951
Because "a release go, no-go workflow" isn't
a problem statement, it's a department.

42
00:03:03,071 --> 00:03:06,951
He pulls it apart until
every piece names one job.

43
00:03:07,111 --> 00:03:10,231
Intake, where a proposed
change becomes a record.

44
00:03:10,471 --> 00:03:14,551
Window assembly, where those
records group into a release window.

45
00:03:14,991 --> 00:03:20,071
Authorization, where a person says yes or
no with the whole window in front of them.

46
00:03:20,351 --> 00:03:25,111
Outcome, where you find out if it worked.
And publication, where it goes out on

47
00:03:25,191 --> 00:03:30,951
Friday. Five jobs. And exactly one of
them needs a person to decide anything.

48
00:03:31,351 --> 00:03:35,991
That split is most of the design, and it's
the first thing you should do to your own

49
00:03:36,071 --> 00:03:40,991
brief. The four that need no judgment
are the four you can build yourself.

50
00:03:41,191 --> 00:03:46,311
The one that does need judgment stays a
human decision, and your job there isn't to

51
00:03:46,391 --> 00:03:50,951
replace that person. It's to give them
a better view than three separate email

52
00:03:51,031 --> 00:03:55,191
threads gave them. Now, here's
the bit people in a hurry skip.

53
00:03:55,231 --> 00:03:58,951
Randy is not the first person
who has ever needed this.

54
00:03:59,151 --> 00:04:03,031
Release governance is a worked
discipline with decades behind it.

55
00:04:03,111 --> 00:04:07,351
So before he designs anything, he
goes and takes its vocabulary.

56
00:04:07,431 --> 00:04:12,391
A change authority is the person or group
responsible for authorizing a change,

57
00:04:12,471 --> 00:04:14,791
which is not the same
thing as a committee.

58
00:04:14,871 --> 00:04:19,191
And the same literature will happily tell
you that review boards often turn into

59
00:04:19,271 --> 00:04:24,551
bottlenecks. A standard change is one
that's low risk, pre-authorized, well

60
00:04:24,711 --> 00:04:29,511
understood and fully documented. He
isn't inventing release management.

61
00:04:29,591 --> 00:04:33,751
He's implementing something that was
written down long before any of these tools

62
00:04:33,831 --> 00:04:39,271
existed. And that hands him two things.
The hard thinking about what should happen

63
00:04:39,391 --> 00:04:45,191
is already done, by somebody else. And the
only genuinely new part of his problem is

64
00:04:45,271 --> 00:04:49,831
the toolbox. Which is a much smaller
problem than the one he was handed.

65
00:04:50,031 --> 00:04:53,631
Whatever you're automating, go
check whether that's true of yours.

66
00:04:53,671 --> 00:04:57,991
It usually is. Then he writes down
the ways he could approach it.

67
00:04:58,151 --> 00:05:03,831
Not one plan. Ten. Because your first
idea is rarely the one that survives, and

68
00:05:04,071 --> 00:05:07,191
paper is the cheapest place
you'll ever find that out.

69
00:05:07,271 --> 00:05:12,391
And then he rules four of them out. This
one runs four times a year, so frequency

70
00:05:12,471 --> 00:05:17,791
kills it. A workflow you touch quarterly
never gets learned and never gets improved.

71
00:05:17,831 --> 00:05:21,831
You rebuild it from memory
every single time you come back.

72
00:05:22,151 --> 00:05:26,951
This one hands the model the decision
about whether a change is risky, which is

73
00:05:27,031 --> 00:05:31,911
judgment he can't check. And if you can't
tell whether an answer was right, you

74
00:05:31,991 --> 00:05:34,391
can't tell whether the thing is working.

75
00:05:34,431 --> 00:05:39,431
You'll end up defending it on faith, in a
room full of people who don't share your

76
00:05:39,631 --> 00:05:44,951
faith. This one rolls back automatically
the second something looks wrong, and the

77
00:05:45,071 --> 00:05:48,151
consequence outruns his
ability to verify it.

78
00:05:48,231 --> 00:05:52,151
He's not saying never.
He's saying not first.

79
00:05:52,231 --> 00:05:55,511
And not while he's still learning
what these tools get wrong.

80
00:05:55,591 --> 00:06:00,711
And this last one needs evidence that lives
in a vendor portal he can't reach, and

81
00:06:00,791 --> 00:06:04,871
in two people's heads. So the
workflow would be guessing.

82
00:06:04,911 --> 00:06:10,551
Worse, it'd be guessing confidently, which
is the failure nobody catches in a demo.

83
00:06:10,631 --> 00:06:14,951
Frequency. Checkable
judgment. Reversibility.

84
00:06:15,071 --> 00:06:19,671
Reachable evidence. Four questions you
can ask in a meeting without opening a

85
00:06:19,711 --> 00:06:25,591
laptop. They cost you nothing except
being willing to say no to your own ideas.

86
00:06:25,671 --> 00:06:30,044
And then he writes down the thing
he already knows is going to bite.

87
00:06:30,178 --> 00:06:34,511
Whatever he builds is going to
run as him. His connections.

88
00:06:34,551 --> 00:06:38,751
His name on every message it
sends. He's not ignoring that.

89
00:06:38,791 --> 00:06:44,311
He's logging it, on day one, because it's
what decides when this stops being his and

90
00:06:44,391 --> 00:06:49,362
becomes the platform team's. He'd rather
know that now than find out in a handover.

91
00:06:49,402 --> 00:06:52,562
Design is the afternoon
that saves you the quarter.

92
00:06:52,842 --> 00:06:55,242
And almost nobody gives it an afternoon.

93
00:06:55,962 --> 00:06:58,762
What he does here isn't
architecture diagrams.

94
00:06:59,162 --> 00:07:04,522
He reads what each tool promises, in the
vendor's own documentation, and he writes

95
00:07:04,602 --> 00:07:09,322
down what it refuses to do. Because the
refusals are what you build the design

96
00:07:09,402 --> 00:07:14,322
around. First real decision:
where does the truth live.

97
00:07:14,602 --> 00:07:19,402
He's got three candidates. A spreadsheet,
which everybody already has.

98
00:07:19,442 --> 00:07:24,362
A list, which comes with the licence. And
a proper relational table, which is what

99
00:07:24,442 --> 00:07:28,842
he'd pick if money weren't a
question. The spreadsheet goes first.

100
00:07:28,882 --> 00:07:31,402
And it goes without a single line of work.

101
00:07:31,522 --> 00:07:35,882
Because the connector locks that file
for up to six minutes after it's used.

102
00:07:35,962 --> 00:07:39,322
It returns two hundred
fifty six rows by default.

103
00:07:39,402 --> 00:07:44,442
When a key matches more than one row,
it quietly updates the first one only.

104
00:07:44,562 --> 00:07:49,802
And then the sentence that settles it,
in the vendor's own words: simultaneous

105
00:07:49,882 --> 00:07:55,722
modifications are not supported. A Friday
job and a human being are going to reach

106
00:07:55,802 --> 00:08:00,282
for that file on the same afternoon. He
didn't need an experiment to know how that

107
00:08:00,442 --> 00:08:03,322
ends. Somebody wrote it
down, and he read it.

108
00:08:03,802 --> 00:08:08,802
So the list it is. And he reads its
limits too, instead of celebrating.

109
00:08:09,002 --> 00:08:13,402
It's free with the licence he already
holds, the connector reads and writes, it

110
00:08:13,562 --> 00:08:18,522
holds thirty million items, and nothing
he builds on it costs anything per run.

111
00:08:19,002 --> 00:08:24,762
The catch is one number. The view threshold
is five thousand items, and a change log

112
00:08:24,842 --> 00:08:27,882
passes five thousand way
sooner than you'd expect.

113
00:08:28,122 --> 00:08:31,962
So he indexes the columns and
filters the views on day one.

114
00:08:32,362 --> 00:08:35,562
Costs ten minutes now.
Costs a weekend later.

115
00:08:36,282 --> 00:08:39,362
The relational table he prices, and parks.

116
00:08:39,562 --> 00:08:44,282
Deliberately. The connector is
premium, so it costs money per user.

117
00:08:44,322 --> 00:08:49,162
And the environment that holds it cannot
be created on a Microsoft 365 licence at

118
00:08:49,242 --> 00:08:54,122
all. The documentation is blunt about that,
so somebody with Power Platform rights

119
00:08:54,242 --> 00:08:58,282
has to stand it up for him. So
it simply isn't his to create.

120
00:08:58,362 --> 00:09:02,842
And that goes in the plan as a known
future step, with a known price.

121
00:09:02,882 --> 00:09:05,322
Which is a very different
thing from a surprise.

122
00:09:06,202 --> 00:09:11,242
Then the question that looks like paperwork
and turns out to be the entire design.

123
00:09:11,562 --> 00:09:15,322
What is a change? He has
to answer that in columns.

124
00:09:15,562 --> 00:09:18,682
And columns are unforgiving
in a way sentences aren't.

125
00:09:19,082 --> 00:09:24,922
What is it, who asked, which window, which
systems it touches, who approves it, and

126
00:09:25,082 --> 00:09:29,162
what state is it in. And that last
column makes him list the states.

127
00:09:29,562 --> 00:09:33,322
Proposed. Scheduled. Approved. Rejected.

128
00:09:33,642 --> 00:09:39,802
Released. Verified. Failed. And the second
those are written down, the design asks

129
00:09:39,882 --> 00:09:42,362
him a question nobody in the room asked.

130
00:09:43,082 --> 00:09:46,682
Can a change go from proposed
straight to released?

131
00:09:47,002 --> 00:09:51,922
He says no. Which means
he's just specified a gate.

132
00:09:52,202 --> 00:09:57,562
And notice he didn't decide to build
one. The table told him he needed it.

133
00:09:58,202 --> 00:10:03,402
That's what people mean when they say design
surfaces requirements, and it's a lot

134
00:10:03,522 --> 00:10:07,082
less mystical than it sounds when
it happens on your own whiteboard.

135
00:10:07,402 --> 00:10:12,682
Then the agent. Which is the part everybody
wants to start with, and he gets to on

136
00:10:12,842 --> 00:10:17,762
purpose instead of out of enthusiasm. The
distinction he needs is sitting in the

137
00:10:17,802 --> 00:10:21,882
documentation. A knowledge
source grounds an answer.

138
00:10:22,122 --> 00:10:26,842
A tool takes an action. Those are
not two words for the same thing.

139
00:10:27,082 --> 00:10:31,882
And the agent builder he's got accepts
knowledge sources, and does not accept

140
00:10:32,042 --> 00:10:37,642
actions. It does not support authoring
actions that integrate external services.

141
00:10:37,882 --> 00:10:43,562
Vendor's own words. So this agent can tell
anybody what's in Thursday's window … and

142
00:10:43,642 --> 00:10:46,682
it can't put anything
into Thursday's window.

143
00:10:46,922 --> 00:10:49,842
Can't record a change.
Can't collect an approval.

144
00:10:50,042 --> 00:10:53,362
Can't publish the notes.
Which isn't an obstacle.

145
00:10:53,562 --> 00:10:58,282
It's the division of labour, handed to
him for free, before he wrote any of it.

146
00:10:58,682 --> 00:11:03,722
The write path lives in the flows, and the
agent is the window people look through.

147
00:11:04,282 --> 00:11:10,362
Knowledge grounds. Tools act. If you
remember two words out of today, remember

148
00:11:10,442 --> 00:11:15,802
those. He finds the next one the same
way. In a sentence he'd never have gone

149
00:11:15,882 --> 00:11:18,722
looking for, if he hadn't
been looking for limits.

150
00:11:18,922 --> 00:11:22,842
A run of one of these flows can't
last longer than thirty days.

151
00:11:23,082 --> 00:11:27,882
Now, the obvious build is: start
an approval, wait for the answer.

152
00:11:27,922 --> 00:11:32,309
But a change window can sit open for five
weeks when somebody's on leave, or a

153
00:11:32,362 --> 00:11:37,162
vendor slips. And on day thirty-one,
that run doesn't fail loudly.

154
00:11:37,242 --> 00:11:41,055
It just ends. And the
answer arrives to nobody.

155
00:11:41,109 --> 00:11:45,802
So he splits it before he builds
it. One flow creates the approval.

156
00:11:45,922 --> 00:11:49,002
A different flow waits for
the answer and acts on it.

157
00:11:49,122 --> 00:11:54,922
That's a design-time decision, invisible
at concept time, expensive to retrofit.

158
00:11:55,002 --> 00:11:58,202
And there's one of those in
every build you'll ever do.

159
00:11:58,362 --> 00:12:00,962
Finding it on paper costs twenty minutes.

160
00:12:01,002 --> 00:12:03,962
Finding it in production
costs the quarter.

161
00:12:04,042 --> 00:12:07,215
And then he gets to the place
where the manual runs out.

162
00:12:07,269 --> 00:12:10,375
Which is the most interesting
moment in this whole thing.

163
00:12:10,415 --> 00:12:13,122
The approval records live
in the vendor's store.

164
00:12:13,162 --> 00:12:17,562
Not in his table. And he needs to know
whether one of them can be edited after the

165
00:12:17,642 --> 00:12:21,282
fact, because somebody in an
audit is going to ask him that.

166
00:12:21,322 --> 00:12:25,202
So he reads everything. The
documentation doesn't say.

167
00:12:25,242 --> 00:12:30,202
Not yes. Not no. So he does what you
do when the documentation runs out.

168
00:12:30,282 --> 00:12:35,402
He tests it. As cheaply as he can possibly
make the test, somewhere being wrong

169
00:12:35,482 --> 00:12:39,922
costs him nothing. And that right
there is the engineering hat.

170
00:12:39,962 --> 00:12:43,042
That's the one part of this
the tools can't hand you.

171
00:12:43,082 --> 00:12:45,442
They'll answer any question you ask them.

172
00:12:45,482 --> 00:12:50,162
Knowing which question is load-bearing,
and how to answer it for almost nothing …

173
00:12:50,202 --> 00:12:53,842
that's yours. What he builds
from the answer is small.

174
00:12:53,882 --> 00:12:59,002
At the moment a decision gets made, his
own flow writes his own row, into his own

175
00:12:59,242 --> 00:13:03,042
list, with versioning on.
Who decided. What they said.

176
00:13:03,082 --> 00:13:07,402
Their comment. The timestamp. He
doesn't replace the vendor's record.

177
00:13:07,482 --> 00:13:12,122
He stops depending on it. And he's careful
about why, because the reason people

178
00:13:12,202 --> 00:13:17,002
usually give is the wrong one. Records
that can't be overwritten are a real legal

179
00:13:17,242 --> 00:13:21,802
requirement in life sciences, where the
regulation says record changes shall not

180
00:13:21,882 --> 00:13:24,815
obscure previously recorded information.

181
00:13:24,949 --> 00:13:28,242
Outside regimes like that?
Nobody's making him do this.

182
00:13:28,282 --> 00:13:31,042
He does it anyway. For one reason.

183
00:13:31,082 --> 00:13:36,522
Attribution. Because if that row can be
changed afterwards, then who said yes is a

184
00:13:36,762 --> 00:13:41,242
claim. And if it can't be changed,
then who said yes is evidence.

185
00:13:41,322 --> 00:13:45,722
That's a design judgment, not a compliance
one, and he can tell you which one he's

186
00:13:46,042 --> 00:13:48,928
making. Which is what an
audit actually tests you on.

187
00:13:48,968 --> 00:13:54,168
Now he builds something. And the first
thing he builds is deliberately not the

188
00:13:54,448 --> 00:13:58,728
design. A saved prompt and
a spreadsheet. One week.

189
00:13:59,688 --> 00:14:05,048
Somebody proposes a change in chat, he
pastes it in, the model turns it into a tidy

190
00:14:05,168 --> 00:14:10,168
row, and on Friday it writes the notes.
And yes, that's the store he just

191
00:14:10,288 --> 00:14:14,008
disqualified. That's fine.
He's not depending on it.

192
00:14:14,088 --> 00:14:19,448
He's interrogating it. Because a prototype
isn't a small version of the product.

193
00:14:19,488 --> 00:14:22,568
It's an instrument for
answering one question.

194
00:14:22,648 --> 00:14:27,208
And his question is whether approvers will
actually look at a window view when you

195
00:14:27,288 --> 00:14:30,568
put it in front of them.
Answer comes back in a week.

196
00:14:30,648 --> 00:14:35,608
It's yes, with a condition. They look
if it arrives where they already are.

197
00:14:35,928 --> 00:14:40,848
One finding. It reshapes the real
build, and it cost him an afternoon.

198
00:14:41,128 --> 00:14:44,328
And he's clear-eyed about what
that week could not tell him.

199
00:14:44,568 --> 00:14:48,488
Not whether two writers collide,
because he was the only writer.

200
00:14:48,728 --> 00:14:52,448
Not whether it survives a month,
because it ran for seven days.

201
00:14:52,648 --> 00:14:56,728
Not whether it works without him, because
he was standing in the middle of it the

202
00:14:56,888 --> 00:15:02,568
entire time. A prototype tests the
idea. It does not test the mechanism.

203
00:15:02,888 --> 00:15:07,288
And knowing the difference is what stops
you shipping an afternoon's work to forty

204
00:15:07,368 --> 00:15:11,128
people. So he builds the
design, and runs it as a pilot.

205
00:15:11,608 --> 00:15:16,968
Real flows, the real list, real approvals
landing in mail and in chat cards.

206
00:15:17,448 --> 00:15:20,768
Three weeks. One team
who agreed to go first.

207
00:15:20,968 --> 00:15:25,528
And the pilot teaches him three things
design couldn't, because all three of them

208
00:15:25,688 --> 00:15:29,368
are about people. Approvers
answer from their phones.

209
00:15:29,528 --> 00:15:34,248
In the evening. Which means the view has to
be legible on a phone, and he'd designed

210
00:15:34,328 --> 00:15:39,368
it for a monitor. Nobody read the Friday
notes until he moved them out of email and

211
00:15:39,448 --> 00:15:44,088
into the channel the team already lived
in. At which point they got read by more

212
00:15:44,168 --> 00:15:48,688
people than had ever read them before.
And that gate he was so pleased with?

213
00:15:48,888 --> 00:15:54,008
Resented within nine days. Because he was
gating certificate renewals with the same

214
00:15:54,168 --> 00:15:59,528
ceremony as database migrations. Now that
third one is the interesting one, because

215
00:15:59,608 --> 00:16:04,168
he doesn't have to invent the fix. The
discipline he borrowed from back in act two

216
00:16:04,328 --> 00:16:07,368
already named it for
him. A standard change.

217
00:16:07,768 --> 00:16:12,168
Low risk, pre-authorized, well
understood, fully documented.

218
00:16:12,648 --> 00:16:17,208
So he writes a bypass, and a rule about
who's allowed to call something standard.

219
00:16:17,368 --> 00:16:20,568
And the gate stops being
a tax everybody pays.

220
00:16:20,728 --> 00:16:25,368
Because a workflow that gates everything
equally hasn't finished being designed.

221
00:16:25,448 --> 00:16:28,968
It's just said no to everything
and called that governance.

222
00:16:29,048 --> 00:16:32,448
And what happens next is
people route around you.

223
00:16:32,648 --> 00:16:35,808
Which leaves you with a
bottleneck and no record.

224
00:16:36,088 --> 00:16:40,688
Then he does the one thing that
separates a pilot from a demonstration.

225
00:16:40,968 --> 00:16:45,128
He changes the design. Not
the goal, not the scope.

226
00:16:45,608 --> 00:16:49,128
The phone layout, the publication
channel, and the gate.

227
00:16:49,688 --> 00:16:54,688
Three changes, every one of them from
evidence, none of them from opinion.

228
00:16:54,888 --> 00:16:58,035
Which is the whole reason you
run a pilot in the first place.

229
00:16:58,075 --> 00:17:03,115
Production is where it stops being his,
and starts being something a team depends

230
00:17:03,195 --> 00:17:07,195
on. And the work that gets
it there is not glamorous.

231
00:17:07,235 --> 00:17:12,715
The Friday job runs on a timer. And that
timer is the first thing in this build that

232
00:17:12,795 --> 00:17:17,995
runs when nobody's watching. So he asks
the question that separates a script from a

233
00:17:18,235 --> 00:17:22,635
system. What happens if it
runs twice? Because it will.

234
00:17:22,715 --> 00:17:27,515
A run gets retried. Somebody
tests it. The platform hiccups.

235
00:17:27,635 --> 00:17:31,835
And two sets of release notes go out,
which is worse than none going out.

236
00:17:31,995 --> 00:17:35,355
Because now nobody trusts
the set that was right.

237
00:17:35,395 --> 00:17:39,995
So the job asks what it already
published, before it publishes anything.

238
00:17:40,155 --> 00:17:46,315
Same input, run ten times, one result.
The word for that is idempotent, and it's

239
00:17:46,435 --> 00:17:50,635
worth learning the word, because every
scheduled thing you ever build is going to

240
00:17:50,715 --> 00:17:55,835
need it. Then the collision check. Which
is where this whole assignment started.

241
00:17:55,915 --> 00:18:00,315
Mechanically it's almost nothing. Query
the list for windows that overlap, and

242
00:18:00,395 --> 00:18:04,915
branch when they do. And he can say why
it matters without raising his voice.

243
00:18:04,955 --> 00:18:09,435
Published guidance from people who run
very large systems puts roughly seventy

244
00:18:09,595 --> 00:18:13,008
percent of outages down to
changes in a live system.

245
00:18:13,062 --> 00:18:17,915
And on doing two at once, it says they
strongly advise running only one canary

246
00:18:18,195 --> 00:18:22,475
deployment at a time. The reason
underneath that is attribution.

247
00:18:22,555 --> 00:18:26,955
Put two changes in one window, and when
something breaks, you can't tell which one

248
00:18:27,035 --> 00:18:31,835
did it. So you didn't just lose a release.
You lost the ability to learn anything

249
00:18:31,915 --> 00:18:36,755
from having lost it. And here he's
careful, in a way worth copying.

250
00:18:36,795 --> 00:18:41,115
There's no published figure for how
often two changes in one window actually

251
00:18:41,195 --> 00:18:45,715
collide. He looked. It doesn't
exist. So he doesn't quote one.

252
00:18:45,755 --> 00:18:49,128
The argument stands on
attribution without a statistic.

253
00:18:49,168 --> 00:18:53,075
And if somebody hands you a percentage
for this, ask them where they got it.

254
00:18:53,115 --> 00:18:57,235
That habit is most of your credibility
in a room with engineers in it.

255
00:18:57,275 --> 00:19:01,275
Then the job the opening number demands.
The one he'd have been forgiven for

256
00:19:01,355 --> 00:19:06,768
skipping. Approved isn't an outcome.
Released isn't an outcome either.

257
00:19:06,902 --> 00:19:11,275
Because eighty-six percent of change-caused
incidents come from changes that closed

258
00:19:11,875 --> 00:19:16,955
successfully. So he adds a verified state,
a date, and one line of evidence, written

259
00:19:17,075 --> 00:19:19,875
by whoever would've been
paged if it had gone wrong.

260
00:19:19,915 --> 00:19:24,875
And the moment that column exists, the
workflow answers a question he has never once

261
00:19:24,955 --> 00:19:30,235
been able to answer in his career. Of the
changes we approved … how many actually

262
00:19:30,315 --> 00:19:34,075
worked? He won't like the
first number. Nobody does.

263
00:19:34,155 --> 00:19:38,315
The current industry survey has roughly
thirty-eight percent of respondents

264
00:19:38,515 --> 00:19:43,595
reporting a change failure rate above
sixteen percent, so he's in company.

265
00:19:44,155 --> 00:19:47,235
But it's a number now,
instead of a feeling.

266
00:19:47,515 --> 00:19:52,155
And a number is something
you can move. Now, cost.

267
00:19:52,555 --> 00:19:57,115
Because he priced this at design time,
and the answer surprises most people.

268
00:19:57,355 --> 00:20:00,395
Everything you've watched
carries no per-run charge.

269
00:20:00,875 --> 00:20:05,515
None. It draws on an allowance of six
thousand actions a day that came with the

270
00:20:05,595 --> 00:20:10,635
licence he already had. And the read-only
agent is zero-rated for people who already

271
00:20:10,715 --> 00:20:15,635
hold a Copilot licence. So the running
cost of the whole thing is nothing.

272
00:20:15,835 --> 00:20:18,635
Which is why he never needed
a business case to start.

273
00:20:19,115 --> 00:20:24,635
He needed an afternoon. Where it stops
being free is specific, and he knows the

274
00:20:24,715 --> 00:20:29,755
figures because he went and looked. A
premium connector is fifteen dollars per user

275
00:20:29,915 --> 00:20:34,955
per month. A capacity licence attached
to a single flow is a hundred and fifty.

276
00:20:35,075 --> 00:20:39,675
Relational storage past the first gigabyte
is forty-eight dollars a gigabyte.

277
00:20:39,755 --> 00:20:43,515
Those are published list prices,
checked on the sixth of October.

278
00:20:43,555 --> 00:20:48,475
And the vendor's own page says prices shown
are for marketing purposes and may not

279
00:20:48,555 --> 00:20:53,115
reflect actual list price. Which is
why that date stays on the screen.

280
00:20:53,195 --> 00:20:57,344
And why you check it yourself before
quoting it to anybody who controls a budget.

281
00:20:57,384 --> 00:21:03,464
And now the two walls. And the thing to
notice is that neither one is a surprise.

282
00:21:03,784 --> 00:21:09,144
Both have been on his plan since design.
First one is that relational table he

283
00:21:09,224 --> 00:21:14,424
parked back in act three. Premium connector,
and an environment his own licence

284
00:21:14,504 --> 00:21:19,304
cannot create, which means somebody with
Power Platform rights has to stand it up

285
00:21:19,384 --> 00:21:25,384
for him. He isn't blocked by that wall. He's
standing at it on purpose, with a price

286
00:21:25,424 --> 00:21:29,784
and a reason written down.
Second one is identity.

287
00:21:29,904 --> 00:21:32,504
And that's the one he logged on day one.

288
00:21:32,784 --> 00:21:37,784
Everything Randy built runs as Randy.
It breaks when he changes teams.

289
00:21:37,904 --> 00:21:42,424
It breaks when his licence moves. It breaks
when a connection needs consent again

290
00:21:42,504 --> 00:21:47,704
while he's on holiday. And it breaks
completely, every part of it, the day he

291
00:21:47,784 --> 00:21:51,944
leaves. The fix is real,
and it isn't exotic.

292
00:21:52,024 --> 00:21:55,357
A service identity can
own and run these flows.

293
00:21:55,411 --> 00:21:59,237
But creating that identity happens
in an administration console.

294
00:21:59,277 --> 00:22:02,584
The registration upstream of
it happens in a different one.

295
00:22:02,664 --> 00:22:06,904
And decoupling a flow from the person who
built it needs the relational store from

296
00:22:06,984 --> 00:22:10,904
the first wall. Every step
is on the other side.

297
00:22:10,984 --> 00:22:15,944
He planned for this. There's one thing he
can do with nobody's permission, and he

298
00:22:16,024 --> 00:22:19,704
does it the week the pilot starts
instead of the week he leaves.

299
00:22:19,784 --> 00:22:25,064
He adds a trusted colleague as a co-owner.
So somebody else can edit it, see the run

300
00:22:25,144 --> 00:22:29,637
history, keep it alive while
he's away. That's continuity.

301
00:22:29,677 --> 00:22:33,504
And he doesn't oversell it as
identity, because it isn't.

302
00:22:33,544 --> 00:22:38,784
Then he goes and has the conversation.
And look at what he carries into the room.

303
00:22:38,824 --> 00:22:44,157
Not a request. A working system.
Three weeks of pilot evidence.

304
00:22:44,211 --> 00:22:48,464
A verified column that says what
his change failure rate actually is.

305
00:22:48,504 --> 00:22:53,264
A list of exactly what he needs from
them, and the reason for each item on it.

306
00:22:53,304 --> 00:22:57,864
That conversation goes differently. Anybody
who's sat on the other side of it will

307
00:22:57,944 --> 00:23:02,944
tell you the same. And the sentence he uses
is the one for you to carry out of here.

308
00:23:02,984 --> 00:23:06,304
The workflow doesn't graduate
because it got too big.

309
00:23:06,344 --> 00:23:10,894
It graduates because it got too important
to depend on one person's token.

310
00:23:10,934 --> 00:23:15,494
Three things we didn't do today,
and each one is its own session.

311
00:23:15,814 --> 00:23:21,574
Durable data. A real schema, real relationships,
and the difference between a list

312
00:23:21,654 --> 00:23:25,014
that holds records and a
table that protects them.

313
00:23:25,094 --> 00:23:30,134
Outcome tracking as a discipline of its
own, because verified turns out to be a lot

314
00:23:30,254 --> 00:23:33,814
harder than approved.
And a lot more valuable.

315
00:23:33,894 --> 00:23:39,094
And the door. Which is what you reach for
when the system you need has no connector

316
00:23:39,174 --> 00:23:43,974
at all. There's a way to give a model its
own door into a system, and that one's

317
00:23:44,174 --> 00:23:48,694
coming, because somebody asked for it.
So look at what Randy ended up with.

318
00:23:48,734 --> 00:23:53,174
A list. Four flows. One
agent that only reads.

319
00:23:53,214 --> 00:23:57,534
It's almost nothing. But look at
what he had to do to get there.

320
00:23:57,574 --> 00:24:01,654
He refused his own brief
and broke it into five jobs.

321
00:24:01,734 --> 00:24:05,894
He went and took the vocabulary from
people who'd solved this before him.

322
00:24:05,974 --> 00:24:09,974
He wrote down ten approaches
and ruled out four on paper.

323
00:24:10,054 --> 00:24:13,294
He chose a store by reading
what it refused to do.

324
00:24:13,334 --> 00:24:18,614
He let a table tell him he needed a gate.
He found out a window can outlive a run,

325
00:24:18,694 --> 00:24:23,334
and split the flow before building it. He
got to the end of the documentation and

326
00:24:23,414 --> 00:24:28,934
tested the rest for almost nothing. He built
a prototype to answer one question, and

327
00:24:29,014 --> 00:24:33,574
didn't mistake it for a product. He ran
a pilot, and then actually changed the

328
00:24:34,054 --> 00:24:37,227
design. He asked what
happens if it runs twice.

329
00:24:37,281 --> 00:24:42,214
And he left a deliberate hole in his own
gate, so people wouldn't route around him.

330
00:24:42,294 --> 00:24:47,334
That's systems design. He's been managing
people who do it for most of his career.

331
00:24:47,414 --> 00:24:52,134
And this quarter, he did it himself. Now
here's what that costs you, because it's

332
00:24:52,214 --> 00:24:57,014
worth being honest about it. Every one of
these little workflows is a small piece of

333
00:24:57,254 --> 00:25:02,574
software with a lifecycle. Somebody decides
what it's for, designs it, builds it,

334
00:25:02,614 --> 00:25:07,054
tests it, watches it, fixes
it, and eventually retires it.

335
00:25:07,094 --> 00:25:10,894
In a kiosk that size,
that somebody is you.

336
00:25:10,934 --> 00:25:16,294
Wearing every hat. That used to be a team.
And the only reason it can be one person

337
00:25:16,374 --> 00:25:20,494
now is that you've got an engineer
available who doesn't say no.

338
00:25:20,534 --> 00:25:22,961
Which is the trade worth understanding.

339
00:25:23,067 --> 00:25:26,614
Because when you used to ask a busy
engineer for something and they told you it

340
00:25:26,694 --> 00:25:30,814
wouldn't work … what you actually
got was a free design review.

341
00:25:30,854 --> 00:25:35,254
They were handing you the limitation. And
the limitation, as we said right at the

342
00:25:35,414 --> 00:25:39,867
start, is the specification.
Nothing says no to you now.

343
00:25:39,921 --> 00:25:42,094
It just builds whatever you asked for.

344
00:25:42,134 --> 00:25:45,774
Confidently, and quickly,
including the wrong thing.

345
00:25:45,814 --> 00:25:48,934
So the no has to come
from inside the work.

346
00:25:49,014 --> 00:25:53,174
Which means it's part of the hat you're
wearing, instead of something that arrives

347
00:25:53,254 --> 00:25:58,454
from somebody else's calendar. That's the
hat Randy put on back in act three, and

348
00:25:58,534 --> 00:26:02,534
it's the whole skill.
Not prompting. Not tools.

349
00:26:03,014 --> 00:26:07,894
Just the habit of asking what a thing
can't do before you depend on it, going and

350
00:26:08,054 --> 00:26:13,174
finding out when nobody's written it
down, and then designing around the answer

351
00:26:13,334 --> 00:26:18,494
instead of around the hope. So pick
one question that belongs to you.

352
00:26:18,774 --> 00:26:24,214
Not the department's question. Yours. The
one you answer by hand every week and have

353
00:26:24,294 --> 00:26:29,174
stopped noticing you answer. Give it an
afternoon of concept and an afternoon of

354
00:26:29,254 --> 00:26:35,094
design before you build anything. Then
build the smallest thing that answers one

355
00:26:35,254 --> 00:26:37,974
question. You already know how to do this.

356
00:26:38,374 --> 00:26:41,294
You've been doing it with
other people's hands for years.

357
00:26:41,574 --> 00:26:47,174
The only new part is the toolbox … and the
toolbox will tell you what it can't do,

358
00:26:47,254 --> 00:26:53,040
if you ask it first. That's the method.
The limitation is the specification.
