Stop The Power Apps Lie

Mirko PetersPodcasts12 minutes ago5 Views


1
00:00:00,000 –> 00:00:02,560
Excel is not a database, stop pretending it is.

2
00:00:02,560 –> 00:00:05,240
When you wire power apps to a spreadsheet and call it production,

3
00:00:05,240 –> 00:00:08,960
you’re building a glass elevator and acting shocked when it shatters under traffic.

4
00:00:08,960 –> 00:00:10,560
Here’s what’s actually at stake.

5
00:00:10,560 –> 00:00:15,560
Data loss that nobody notices until quarter-end concurrency chaos that rewrites history

6
00:00:15,560 –> 00:00:18,640
and a governance black hole auditors can drive a truck through.

7
00:00:18,640 –> 00:00:21,640
The truth, you’re confusing a calculator with the control system.

8
00:00:21,640 –> 00:00:25,240
I’ll tear down the myth, show the correct path, and hand you a migration plan.

9
00:00:25,240 –> 00:00:29,240
And there’s one decision that prevents 80% of failures will get to that.

10
00:00:29,240 –> 00:00:32,440
First, why this matters before your next outage?

11
00:00:32,440 –> 00:00:33,560
Why this matters?

12
00:00:33,560 –> 00:00:34,880
Cost of confusion.

13
00:00:34,880 –> 00:00:39,560
OK, so basically the cost of confusion starts with pretending flexibility equals reliability.

14
00:00:39,560 –> 00:00:42,480
Excel is flexible because it lets anyone do anything.

15
00:00:42,480 –> 00:00:44,800
Data versus reliable because it refuses to.

16
00:00:44,800 –> 00:00:46,160
That refusal saves you money.

17
00:00:46,160 –> 00:00:47,000
Why this matters?

18
00:00:47,000 –> 00:00:50,680
Every time a spreadsheet stands in for a database, you import risk.

19
00:00:50,680 –> 00:00:55,280
Hidden risk, missed decimals, copied headers, rogue formulas, small errors that propagate like kuzu.

20
00:00:55,280 –> 00:00:59,560
You don’t see the cost until you reconcile reports and discover two versions of truth.

21
00:00:59,560 –> 00:01:02,000
The average user shrugs, finance does not.

22
00:01:02,000 –> 00:01:03,880
The confusion tag shows up three ways.

23
00:01:03,880 –> 00:01:06,400
Data loss, concurrency, and governance.

24
00:01:06,400 –> 00:01:07,960
Data loss isn’t always dramatic.

25
00:01:07,960 –> 00:01:09,320
It’s often boring.

26
00:01:09,320 –> 00:01:12,480
Someone pests values over formulas to speed it up.

27
00:01:12,480 –> 00:01:17,800
Truncates a column because the view is narrow, or saves a filtered subset and emails it as

28
00:01:17,800 –> 00:01:20,200
the latest silent corruption.

29
00:01:20,200 –> 00:01:22,280
The system doesn’t scream because Excel isn’t a system.

30
00:01:22,280 –> 00:01:23,560
It’s a grid with math.

31
00:01:23,560 –> 00:01:25,680
Concurrency is where the comedy turns expensive.

32
00:01:25,680 –> 00:01:30,040
Shared workbook, multiple editors, one drive, sync, jitter, last, save wins.

33
00:01:30,040 –> 00:01:31,800
Two people fix the same customer row.

34
00:01:31,800 –> 00:01:34,440
Credit terms updated here address corrected there.

35
00:01:34,440 –> 00:01:37,240
And the final file, blesses whichever save landed last.

36
00:01:37,240 –> 00:01:39,200
That’s not a transaction that’s roulette.

37
00:01:39,200 –> 00:01:43,560
And your power app connected to that file, it serves stale data, then overrides new data,

38
00:01:43,560 –> 00:01:45,000
then acts surprised.

39
00:01:45,000 –> 00:01:47,720
Acid transactions aren’t optional in multi-user apps.

40
00:01:47,720 –> 00:01:50,120
They’re the guard rails that keep reality coherent.

41
00:01:50,120 –> 00:01:51,760
Governance is the black hole.

42
00:01:51,760 –> 00:01:56,320
No schema enforcement means columns morph from text to number at the speed of a paste.

43
00:01:56,320 –> 00:01:59,640
No required fields means blanks stroll right into your pipeline.

44
00:01:59,640 –> 00:02:03,040
No relationships means you retype foreign keys and hope typos behave.

45
00:02:03,040 –> 00:02:07,160
No audit trail means you can’t answer the simplest question who changed what, when, and

46
00:02:07,160 –> 00:02:08,160
why.

47
00:02:08,160 –> 00:02:09,160
Regulators love that.

48
00:02:09,160 –> 00:02:11,400
So do internal fraudsters and well-meaning chaos agents.

49
00:02:11,400 –> 00:02:12,520
Here’s what most people miss.

50
00:02:12,520 –> 00:02:15,440
The tool you love for analysis is terrible as a backbone.

51
00:02:15,440 –> 00:02:17,040
Excel is the ancestor.

52
00:02:17,040 –> 00:02:19,160
Fast, familiar, forgiving.

53
00:02:19,160 –> 00:02:23,040
Dataverse is the spine, structured, relational, transactional.

54
00:02:23,040 –> 00:02:25,080
It’s not just a different storage option.

55
00:02:25,080 –> 00:02:26,400
It’s a different philosophy.

56
00:02:26,400 –> 00:02:28,320
Excel assumes you’re a careful human.

57
00:02:28,320 –> 00:02:31,640
Dataverse assumes you’re busy, distracted and occasionally wrong.

58
00:02:31,640 –> 00:02:33,200
And it builds fences accordingly.

59
00:02:33,200 –> 00:02:34,960
The costs scale fast.

60
00:02:34,960 –> 00:02:37,840
Reporting integrity collapses when column types drift.

61
00:02:37,840 –> 00:02:39,160
Compliance risks spikes.

62
00:02:39,160 –> 00:02:43,920
When sensitive data lives in a desktop file, then in an email, then in a shared folder with

63
00:02:43,920 –> 00:02:45,560
everyone access.

64
00:02:45,560 –> 00:02:49,280
One time isn’t just an outage.

65
00:02:49,280 –> 00:02:52,720
It’s the hours your team spends reconciling duplicated lists, patching broken formulas, and

66
00:02:52,720 –> 00:02:56,600
explaining to leadership why the dashboard changed by itself.

67
00:02:56,600 –> 00:02:57,600
It didn’t.

68
00:02:57,600 –> 00:02:58,920
You did that.

69
00:02:58,920 –> 00:03:02,720
Everything clicked when I realized Excel is a calculator with a grid, you model, you explore,

70
00:03:02,720 –> 00:03:03,720
you prototype.

71
00:03:03,720 –> 00:03:04,720
Fantastic.

72
00:03:04,720 –> 00:03:08,520
But the moment multiple users enter, edit and rely on that data operationally, you need

73
00:03:08,520 –> 00:03:11,120
a system that enforces rules even when you’re tired.

74
00:03:11,120 –> 00:03:12,560
In other words, dataverse.

75
00:03:12,560 –> 00:03:14,680
The aha moment, a database doesn’t trust you.

76
00:03:14,680 –> 00:03:16,360
It validates constraints and logs.

77
00:03:16,360 –> 00:03:18,640
It forces relationships instead of trusting lookup.

78
00:03:18,640 –> 00:03:22,120
It gives you role-based access control so finance can update credit limits but can’t

79
00:03:22,120 –> 00:03:23,400
see HR notes.

80
00:03:23,400 –> 00:03:26,880
It writes an audit trail because memory is not a control.

81
00:03:26,880 –> 00:03:28,680
Excel gives you none of that by design.

82
00:03:28,680 –> 00:03:29,680
It’s why you love it.

83
00:03:29,680 –> 00:03:30,680
It’s why it fails.

84
00:03:30,680 –> 00:03:31,880
The stakes, real money.

85
00:03:31,880 –> 00:03:33,640
Data loss forces rework.

86
00:03:33,640 –> 00:03:37,240
Concurrency creates contradictory records that erode customer trust.

87
00:03:37,240 –> 00:03:41,320
Governance gaps turn into fines, breach notifications, and board level meetings you do not want.

88
00:03:41,320 –> 00:03:45,920
The counter-intuitive part is that moving to dataverse feels slower at first.

89
00:03:45,920 –> 00:03:50,800
You define tables, relationships, choices, business rules, you set security roles in auditing,

90
00:03:50,800 –> 00:03:52,760
you think all I wanted was a simple app.

91
00:03:52,760 –> 00:03:54,080
And yes, that’s the point.

92
00:03:54,080 –> 00:03:56,680
Simple is a user experience, not a data strategy.

93
00:03:56,680 –> 00:03:59,120
So before your next outage, accept the premise.

94
00:03:59,120 –> 00:04:00,120
Excel can track.

95
00:04:00,120 –> 00:04:01,360
Dataverse must govern.

96
00:04:01,360 –> 00:04:02,360
Hold that thought.

97
00:04:02,360 –> 00:04:05,200
Now we’ll step on the three failures you keep stepping on and then replace them with

98
00:04:05,200 –> 00:04:07,960
something that actually holds under pressure.

99
00:04:07,960 –> 00:04:09,240
The three fatal failures.

100
00:04:09,240 –> 00:04:11,240
Data loss, concurrency, governance.

101
00:04:11,240 –> 00:04:12,680
This is what most people miss.

102
00:04:12,680 –> 00:04:15,760
Data loss in Excel rarely looks like a dramatic explosion.

103
00:04:15,760 –> 00:04:17,600
It looks like a polite quiet subtraction.

104
00:04:17,600 –> 00:04:20,960
The decimal that vanishes because the cell was formatted as text.

105
00:04:20,960 –> 00:04:24,960
The import that truncates are 255 characters because someone picked the wrong data type

106
00:04:24,960 –> 00:04:25,960
in a wizard.

107
00:04:25,960 –> 00:04:30,560
The column name that changes from customer ID to customer ID because someone hates underscores.

108
00:04:30,560 –> 00:04:32,720
And suddenly every formula points at air.

109
00:04:32,720 –> 00:04:34,320
Excel doesn’t validate your reality.

110
00:04:34,320 –> 00:04:35,960
It nods, smiles, and proceeds.

111
00:04:35,960 –> 00:04:37,280
The simple version is this.

112
00:04:37,280 –> 00:04:40,800
There’s no enforced schema, no constraints, no referential integrity.

113
00:04:40,800 –> 00:04:43,520
Think of a database as a bouncer checking IDs.

114
00:04:43,520 –> 00:04:46,120
Excel is the side door propped open with a chair.

115
00:04:46,120 –> 00:04:49,280
You can paste nine digits into a field that’s supposed to hold 10.

116
00:04:49,280 –> 00:04:52,840
You can delete a parent row and strand children that still reference it.

117
00:04:52,840 –> 00:04:56,760
You can import a CSV with more rows than your clever range noticed and your app stops

118
00:04:56,760 –> 00:04:58,360
seeing 12% of the world.

119
00:04:58,360 –> 00:04:59,760
No alarms, no errors.

120
00:04:59,760 –> 00:05:01,720
Just the slow, invisible drift of truth.

121
00:05:01,720 –> 00:05:03,000
Here’s the weird part.

122
00:05:03,000 –> 00:05:05,960
Even when you’re careful, Excel’s convenience is your enemy.

123
00:05:05,960 –> 00:05:08,120
Copypaste values only to speed things up.

124
00:05:08,120 –> 00:05:12,360
You just froze a living calculation, rename a sheet tab, your power query steps break three

125
00:05:12,360 –> 00:05:13,840
layers downstream.

126
00:05:13,840 –> 00:05:16,360
Use Find and Replace to fix a code pattern.

127
00:05:16,360 –> 00:05:17,360
Congratulations.

128
00:05:17,360 –> 00:05:21,080
You also change the middle of every part number containing that sequence.

129
00:05:21,080 –> 00:05:22,080
That’s not Mellis.

130
00:05:22,080 –> 00:05:25,120
That’s the absence of a contract between your intent and the data.

131
00:05:25,120 –> 00:05:26,680
Let’s make it painfully concrete.

132
00:05:26,680 –> 00:05:28,320
Two users fix the same row.

133
00:05:28,320 –> 00:05:32,960
One updates the credit limit from 10,000 to 15,000 after a phone call with sales.

134
00:05:32,960 –> 00:05:36,240
The other corrects the shipping address to include the missing suite number.

135
00:05:36,240 –> 00:05:39,320
Save, last save wins blesses whichever edit landed last.

136
00:05:39,320 –> 00:05:41,040
The other edit obliterated.

137
00:05:41,040 –> 00:05:44,920
In your app, the record now has the new address and the old credit limit or vice versa depending

138
00:05:44,920 –> 00:05:46,240
on the sync lottery.

139
00:05:46,240 –> 00:05:50,400
There’s no merge, no row level locking, no transaction that bundles both edits as a single

140
00:05:50,400 –> 00:05:51,400
truth.

141
00:05:51,400 –> 00:05:53,480
But we turned on co-authoring in one drive.

142
00:05:53,480 –> 00:05:54,480
Cute.

143
00:05:54,480 –> 00:05:58,240
That’s text level reconciliation, not acid guarantees, then yes, acid matters.

144
00:05:58,240 –> 00:06:00,920
Atomicity means both edits commit or neither does.

145
00:06:00,920 –> 00:06:03,960
Consistency means the data obeys rules before and after.

146
00:06:03,960 –> 00:06:07,200
Consistency means simultaneous edits don’t bleed into each other.

147
00:06:07,200 –> 00:06:10,640
Durability means once it’s saved, it’s day saved, Excel offers none of that, it offers

148
00:06:10,640 –> 00:06:11,640
good luck.

149
00:06:11,640 –> 00:06:14,480
Ba Saa Cene, he Sa Saa Somasasal.

150
00:06:14,480 –> 00:06:19,320
The power app connected to that file inherits the chaos, stale reads, conflicting rights,

151
00:06:19,320 –> 00:06:22,720
and override races that turn history into a choose your own adventure.

152
00:06:22,720 –> 00:06:26,040
Now governance, the black hole where accountability goes to die.

153
00:06:26,040 –> 00:06:28,120
No schema means columns can morph by accident.

154
00:06:28,120 –> 00:06:31,720
No relationships means there’s nothing forcing a valid customer on an order.

155
00:06:31,720 –> 00:06:35,360
No required fields means phone can be empty until you need to call.

156
00:06:35,360 –> 00:06:38,760
No audit means you can’t answer who changed this without walking around asking humans

157
00:06:38,760 –> 00:06:39,760
to remember.

158
00:06:39,760 –> 00:06:44,400
No role-based access means the intern can see salary notes because the file has one permission.

159
00:06:44,400 –> 00:06:45,760
Whoever got the link.

160
00:06:45,760 –> 00:06:49,360
And do not waive version history at me like it’s an audit log.

161
00:06:49,360 –> 00:06:52,680
A blob level version is not a field level change record.

162
00:06:52,680 –> 00:06:54,520
Compliance exposure is not theoretical.

163
00:06:54,520 –> 00:06:58,320
Sensitive data in a spreadsheet travels by email, gets saved to desktop, reappears

164
00:06:58,320 –> 00:06:59,560
in a personal one drive.

165
00:06:59,560 –> 00:07:01,680
DLP doesn’t see it until it’s already everywhere.

166
00:07:01,680 –> 00:07:05,520
Try convincing an auditor that your customer list with birth dates in a tab called old

167
00:07:05,520 –> 00:07:09,160
was adequately protected because the folder had a read only sign.

168
00:07:09,160 –> 00:07:12,240
Excel doesn’t implement policy, it politely ignores it.

169
00:07:12,240 –> 00:07:16,040
Nobody explains this right but the governance failure creates a culture of personal copies,

170
00:07:16,040 –> 00:07:17,120
just in case.

171
00:07:17,120 –> 00:07:21,760
So now you have the mothership file, three personal forks, a CSV used for a monthly import

172
00:07:21,760 –> 00:07:26,560
and a sharepoint copy for reporting, which one is real, all of them until something breaks,

173
00:07:26,560 –> 00:07:27,400
then none of them.

174
00:07:27,400 –> 00:07:31,480
This is how reporting integrity erodes, even if each person was careful.

175
00:07:31,480 –> 00:07:35,800
The truth treating Excel like a database is not frugality, it’s deferred pain.

176
00:07:35,800 –> 00:07:39,080
Data loss is a feature of the medium, concurrency is a coin flip.

177
00:07:39,080 –> 00:07:43,040
Governance is theater, enter, that averse, not because Microsoft like selling you new nouns,

178
00:07:43,040 –> 00:07:47,720
but because you need a spine that enforces contracts, mediates edits and remembers everything.

179
00:07:47,720 –> 00:07:49,480
We’ll build that next.

180
00:07:49,480 –> 00:07:52,160
Enter data verse what it is, why it wins.

181
00:07:52,160 –> 00:07:54,440
Enter data verse, not a nicer spreadsheet.

182
00:07:54,440 –> 00:07:58,600
A data platform that behaves like an adult is the spine your apps attached to so the body

183
00:07:58,600 –> 00:08:01,120
stands up even when users lean on it.

184
00:08:01,120 –> 00:08:04,360
This governance first because that’s where Excel politely bowed out.

185
00:08:04,360 –> 00:08:08,880
In data verse you define tables, columns, data types, relationships and validation once

186
00:08:08,880 –> 00:08:11,040
and the platform enforces them every time.

187
00:08:11,040 –> 00:08:15,320
You want an account table and a contact table with one to many relationship?

188
00:08:15,320 –> 00:08:18,720
You don’t beg users to keep IDs consistent, you create a look up.

189
00:08:18,720 –> 00:08:22,120
You want a choice field so status can only be new, active or closed?

190
00:08:22,120 –> 00:08:23,520
You define it and lock it.

191
00:08:23,520 –> 00:08:28,200
You want business rules like credit limit must be greater than zero if status is active.

192
00:08:28,200 –> 00:08:30,080
You don’t write a memo, you write a rule.

193
00:08:30,080 –> 00:08:31,520
The difference is stark.

194
00:08:31,520 –> 00:08:34,640
Data verse is a contract, not a suggestion.

195
00:08:34,640 –> 00:08:36,640
Security isn’t who has the file link.

196
00:08:36,640 –> 00:08:40,640
It’s a role-based access control that maps to actual responsibilities, build security roles,

197
00:08:40,640 –> 00:08:45,400
sales finance support with table level permissions, row ownership and field level visibility.

198
00:08:45,400 –> 00:08:50,440
Make salary notes readable by HR only while everyone else sees a neat blank column.

199
00:08:50,440 –> 00:08:55,240
Layer teams over roles so access follows organizational structure instead of improvisation.

200
00:08:55,240 –> 00:08:59,600
Add column level security for truly sensitive attributes and yes enable audit logs that

201
00:08:59,600 –> 00:09:03,160
capture who changed what when from what to what.

202
00:09:03,160 –> 00:09:05,360
That’s not a retroactive version history.

203
00:09:05,360 –> 00:09:09,080
That’s accountability baked in data quality becomes proactive.

204
00:09:09,080 –> 00:09:13,400
Use required fields, reject style constraints and calculated columns to keep data consistent

205
00:09:13,400 –> 00:09:16,600
at entry, not in a cleanup day, six months later.

206
00:09:16,600 –> 00:09:21,200
The duplication rule stop you from creating contoso LLC, contoso LLC and contoso as three

207
00:09:21,200 –> 00:09:24,240
different customers because someone was in a hurry.

208
00:09:24,240 –> 00:09:29,560
Power automate brings discipline, run validation flows, send approvals, kick off notifications,

209
00:09:29,560 –> 00:09:34,360
and apply the same rule a thousand times without relying on, remember to do it.

210
00:09:34,360 –> 00:09:37,880
Scalability excel gasps at volume and concurrency, data verse expects it.

211
00:09:37,880 –> 00:09:42,720
It’s built for multi-user high velocity rights with server side logic, indexes and query optimization.

212
00:09:42,720 –> 00:09:48,240
Your canvas apps can still paint the custom UI you crave, but the engine underneath is model-driven.

213
00:09:48,240 –> 00:09:51,760
Relationships enforced, forms generated, processes orchestrated.

214
00:09:51,760 –> 00:09:55,320
And yes, model-driven apps are responsive out of the box so you don’t spend a week

215
00:09:55,320 –> 00:09:59,160
in nudging pixel-perfect layouts that collapse on mobile.

216
00:09:59,160 –> 00:10:03,600
Facilability changes the culture, flip on auditing at the table or column level and you get a time-stamped

217
00:10:03,600 –> 00:10:04,600
ledger of changes.

218
00:10:04,600 –> 00:10:08,600
Need to know who changed credit limit from 15,000 to 5,000 at 312 pm?

219
00:10:08,600 –> 00:10:09,600
It’s there.

220
00:10:09,600 –> 00:10:11,120
Need change history for compliance?

221
00:10:11,120 –> 00:10:12,120
Also there.

222
00:10:12,120 –> 00:10:15,400
Enable change tracking to power incremental loads and integrations without repulling the

223
00:10:15,400 –> 00:10:19,440
universe and when inevitably someone asks for rollback, point to backups and point in

224
00:10:19,440 –> 00:10:20,440
time restore.

225
00:10:20,440 –> 00:10:24,040
Memory isn’t a control, data verse logs are.

226
00:10:24,040 –> 00:10:26,440
Minimizing downtime during migration is not magic.

227
00:10:26,440 –> 00:10:28,680
It’s planning supported by platform features.

228
00:10:28,680 –> 00:10:33,600
You can run faced migrations, stage the schema, load historical data, dual run for a period,

229
00:10:33,600 –> 00:10:35,920
then cut over with a timed freeze.

230
00:10:35,920 –> 00:10:40,000
If the cutover goes sideways, have rollback criteria defined and tested.

231
00:10:40,000 –> 00:10:43,560
You’re not hoping the spreadsheet is close enough.

232
00:10:43,560 –> 00:10:49,120
You’re executing a plan with guardrails, environments for dev, test and prod, solutions

233
00:10:49,120 –> 00:10:53,360
for transport and a clear promotion path that doesn’t rely on right-click copy.

234
00:10:53,360 –> 00:10:56,520
Here’s the truth, the marketing slides almost say out loud.

235
00:10:56,520 –> 00:10:59,800
Virtual driven strength plus canvas flexibility is the sweet spot.

236
00:10:59,800 –> 00:11:03,960
Use model driven for the core data interactions that demand consistency.

237
00:11:03,960 –> 00:11:06,960
Standard forms, related records, business process flows.

238
00:11:06,960 –> 00:11:10,880
Layer canvas pages for the oddball UI where speed and specificity matter.

239
00:11:10,880 –> 00:11:14,600
A barcode scanner, a dashboard, a kiosk style intake screen.

240
00:11:14,600 –> 00:11:16,760
One data brain, data verse.

241
00:11:16,760 –> 00:11:20,800
Feeding both experiences so you never play, which version is real.

242
00:11:20,800 –> 00:11:22,040
Again.

243
00:11:22,040 –> 00:11:24,520
Security and compliance certifications exist for a reason.

244
00:11:24,520 –> 00:11:28,520
You get encryption, address and in transit, data loss prevention policies across tenants

245
00:11:28,520 –> 00:11:32,640
and environments, and integration with Microsoft Entra for identity.

246
00:11:32,640 –> 00:11:34,920
That’s not just comfort, it’s audit evidence.

247
00:11:34,920 –> 00:11:38,720
Map that to your governance policy and stop pretending a shared folder with do not touch counts

248
00:11:38,720 –> 00:11:40,200
as control.

249
00:11:40,200 –> 00:11:41,440
Integration is adult too.

250
00:11:41,440 –> 00:11:45,280
Use virtual tables to surface external data without duplicating it or use data flows and

251
00:11:45,280 –> 00:11:47,920
power query to shape and import on a schedule.

252
00:11:47,920 –> 00:11:53,040
Trigger power automate flows on create, update, delete, so downstream systems stay in sync

253
00:11:53,040 –> 00:11:58,440
without a ritual of CSV exports and when analytics scale questions arrive data verse doesn’t demand

254
00:11:58,440 –> 00:11:59,760
monastic purity.

255
00:11:59,760 –> 00:12:03,520
It extends export to fabric lake house for big analytics.

256
00:12:03,520 –> 00:12:08,440
Keep operational rights in data verse and let power be I speak to both without duct tape.

257
00:12:08,440 –> 00:12:11,200
Everything here exists to fix the failures we outlined.

258
00:12:11,200 –> 00:12:15,320
Data verse enforces contracts, mediates edits with transactions and remembers changes with

259
00:12:15,320 –> 00:12:16,320
an audit trail.

260
00:12:16,320 –> 00:12:19,200
It’s not faster to set up than dragging a file into a connector.

261
00:12:19,200 –> 00:12:20,400
It’s faster to live with.

262
00:12:20,400 –> 00:12:24,240
It’s the difference between a hobby project and an operational system and because I can

263
00:12:24,240 –> 00:12:28,120
feel you about to ask yes, when your current world lives in excel, there’s a path out

264
00:12:28,120 –> 00:12:30,920
that doesn’t torture week will take it next.

265
00:12:30,920 –> 00:12:34,160
The correct migration strategy from excel to data verse.

266
00:12:34,160 –> 00:12:38,440
Here’s the path out structured predictable and blessed boring will keep your users working

267
00:12:38,440 –> 00:12:43,560
while we move the data from clever spreadsheet to actual system preparation first inventory

268
00:12:43,560 –> 00:12:49,080
the chaos list every excel file feeding your app location owner consumers refresh cadence

269
00:12:49,080 –> 00:12:54,680
and how it’s used reference entry or reporting classify sensitivity public internal confidential

270
00:12:54,680 –> 00:12:58,840
restricted note row counts and tabs that are actually separate entities masquerading as

271
00:12:58,840 –> 00:13:03,560
sheets identify calculated columns you’ll replace with data verse calculated fields or business

272
00:13:03,560 –> 00:13:04,560
rules.

273
00:13:04,560 –> 00:13:10,560
Then pick a scope you can win one business process not your entire company modeling next translate

274
00:13:10,560 –> 00:13:15,840
sheets into tables columns and relationships one entity per real world now account contact

275
00:13:15,840 –> 00:13:17,520
order product.

276
00:13:17,520 –> 00:13:21,960
Use proper data types numbers as numbers dates estates choices for controlled vocabularies

277
00:13:21,960 –> 00:13:27,520
lookups for relationships avoid over normalization two or three levels deep is fine building

278
00:13:27,520 –> 00:13:32,720
an academic ERD museum is not ad required fields where reality demands them and define alternate

279
00:13:32,720 –> 00:13:37,400
keys for natural identifiers you’ll use during imports now choose your import path if you

280
00:13:37,400 –> 00:13:42,280
need transformations splitting columns mapping codes fixing types use data flows with power

281
00:13:42,280 –> 00:13:46,800
query it’s repeatable scheduleable and keeps your logic in one place if the spreadsheet

282
00:13:46,800 –> 00:13:51,080
is already clean and flat direct import works for a first load if users insist on working

283
00:13:51,080 –> 00:13:55,480
in excel during a transition the data verse add in let’s them push changes under rules

284
00:13:55,480 –> 00:13:59,520
instead of emailing attachments the simple version pick the path that moves logic out of

285
00:13:59,520 –> 00:14:04,440
human hands and into a pipeline before you touch production validate profile the data

286
00:14:04,440 –> 00:14:10,160
blanks were required invalid formats duplicates by key often that reference nonexistent parents

287
00:14:10,160 –> 00:14:14,320
build the duplic logic standardized casing trim white space normalize punctuation then

288
00:14:14,320 –> 00:14:19,000
define match rules that won’t eat cousins for twins load into a dev environment first

289
00:14:19,000 –> 00:14:24,040
reconcile counts and check sums spot check critical records then break it on purpose try to insert

290
00:14:24,040 –> 00:14:28,600
a bad value violate a relationship or bypass a required field the system should say no

291
00:14:28,600 –> 00:14:34,040
loudly security setup is not optional homework it’s the core deliverable define roles for

292
00:14:34,040 –> 00:14:39,400
who can read create write a pen and delete by table layer teams so access follows org structure

293
00:14:39,400 –> 00:14:45,920
apply column level security to sensitive attributes salary ss and payment tokens use owner and business

294
00:14:45,920 –> 00:14:51,480
units go to corral role level visibility and yes default to least privilege the give everyone

295
00:14:51,480 –> 00:14:56,120
everything shortcut is how you re import risk turn on the memory enable auditing at the

296
00:14:56,120 –> 00:15:01,120
table and column level for the fields that matter status amounts identities dates enable

297
00:15:01,120 –> 00:15:05,880
change tracking to support downstream syncs without full reloads configure automatic backups

298
00:15:05,880 –> 00:15:10,840
and validate point in time restore if you can’t prove you can go back you didn’t finish the job

299
00:15:10,840 –> 00:15:15,200
plan your cutover like an operation with instruments counted face migration beats heroics

300
00:15:15,200 –> 00:15:19,960
step one deploy the schema to dev test and prod using solutions step two pre-load historical

301
00:15:19,960 –> 00:15:25,600
data into prod while your excel apps still runs step three schedule a freeze window communicated

302
00:15:25,600 –> 00:15:31,440
during which excel is view only step four delta load recent changes step five switch your

303
00:15:31,440 –> 00:15:36,640
apps data source to data verse and dual run for a defined period with read only access to all data

304
00:15:36,640 –> 00:15:42,480
step six declare success or rollback based on objective criteria data reconciliation thresholds

305
00:15:42,480 –> 00:15:47,320
performance in error rates user sign offs if you don’t predefined rollback triggers you’ll

306
00:15:47,320 –> 00:15:52,440
invent them mid panic communication cadence matters tell people what will change when and

307
00:15:52,440 –> 00:15:57,160
how they’ll work during the freeze provider one page what moved wear guide and a hotline

308
00:15:57,160 –> 00:16:01,680
for the first week train the few who need to adjust habits like entering a required field

309
00:16:01,680 –> 00:16:06,920
that used to be optional people can adapt surprises cannot to quick tactics to avoid pain first

310
00:16:06,920 –> 00:16:11,320
keep identifier stable introduce a durable surrogate key in data verse and map excels natural

311
00:16:11,320 –> 00:16:16,200
key to an alternate key for upsets that prevents duplicates during staged loads second retire

312
00:16:16,200 –> 00:16:21,120
the spreadsheet deliberately archive it to a secure location lock it and publish a clear

313
00:16:21,120 –> 00:16:26,720
statement data verse is the source of truth excel extracts are read only an ephemeral the

314
00:16:26,720 –> 00:16:31,120
pay off your app now writes to a platform that enforces rules mediates edits and remembers

315
00:16:31,120 –> 00:16:36,480
changes you didn’t move a file you replace the habit with a system and if you’re about to

316
00:16:36,480 –> 00:16:41,640
ask how this fits the broader data landscape operational verses analytical will expand the

317
00:16:41,640 –> 00:16:47,200
architecture next when data verse isn’t enough fabric lake house and sickle the truth data

318
00:16:47,200 –> 00:16:51,480
verse is your operational backbone not your planetary brain when the questions shift from

319
00:16:51,480 –> 00:16:55,680
update this record safely to model two years of click stream against revenue by region

320
00:16:55,680 –> 00:16:59,960
you’ve crossed into analytics land different physics stop trying to bench press a warehouse

321
00:16:59,960 –> 00:17:04,200
with an app database start with a simple decision tree if the workload is operational

322
00:17:04,200 –> 00:17:10,240
crud workflows approvals near real time views for teams data verse is home if the workload

323
00:17:10,240 –> 00:17:14,840
is analytical big joins historical snapshots large aggregates across millions or billions

324
00:17:14,840 –> 00:17:19,840
of rows enter Microsoft fabric and the lake house if the workload is specialized or LTP

325
00:17:19,840 –> 00:17:24,680
with extreme transaction rates or legacy app dependencies SQL server or Azure SQL belongs

326
00:17:24,680 –> 00:17:29,200
with data verse optionally as the app facing layer data verse plus fabric lake house is

327
00:17:29,200 –> 00:17:34,400
the clean pattern keep master data and operational truth in data verse use one lake to land curated

328
00:17:34,400 –> 00:17:39,520
governed exports for analytics at scale power be I sits natively on the lake house chewing

329
00:17:39,520 –> 00:17:43,600
through history without throttling your app compare that to overworking data verse with

330
00:17:43,600 –> 00:17:49,160
giant reports you’ll throttle API limits annoy users and still deliver sluggish dashboards

331
00:17:49,160 –> 00:17:54,480
operational data serves today analytical data serves trends integration patterns matter

332
00:17:54,480 –> 00:17:58,960
virtual tables let data verse read from external stores without duplicating data use them to

333
00:17:58,960 –> 00:18:04,280
surface reference data or legacy system records inside your app while keeping the source authoritative

334
00:18:04,280 –> 00:18:09,480
for analytics avoid round tripping push data out on a schedule via data flows synapse link

335
00:18:09,480 –> 00:18:15,640
for data verse or fabric pipelines into one lake then model semantic layers in power be I

336
00:18:15,640 –> 00:18:19,600
that’s push for analytics virtual eyes for operational context pulling massive facts back into

337
00:18:19,600 –> 00:18:24,920
data verse is how you recreate excel just Claudia SQL has a seat but not the throne use Azure

338
00:18:24,920 –> 00:18:29,600
school when you need stored procedures doing tight transactional work deterministic performance

339
00:18:29,600 –> 00:18:34,280
for line of business systems or when an existing apps schema is immovable you can front

340
00:18:34,280 –> 00:18:40,120
it with model driven apps via virtual tables or connect canvas apps directly the key is architectural

341
00:18:40,120 –> 00:18:46,240
intent data verse for unified security auditing and low code app ergonomics SQL for specialized

342
00:18:46,240 –> 00:18:51,560
transactional logic fabric for scale out analytics three tools one playbook hybrid architecture is

343
00:18:51,560 –> 00:18:56,680
adult supervision master data in data verse with relationships validation and are back facts

344
00:18:56,680 –> 00:19:01,400
streamed or batch loaded into fabric lake house for history enrichment and machine learning

345
00:19:01,400 –> 00:19:07,320
certain subsystems pricing engines MES trading run on SQL for deterministic transactional throughput

346
00:19:07,320 –> 00:19:11,880
glue it with power automate and fabric pipelines then document ownership and lineage so you

347
00:19:11,880 –> 00:19:16,760
don’t grow shadow excel empire on the side who owns customer data verse who owns 12 months

348
00:19:16,760 –> 00:19:22,360
of sales detail fabric who owns pricing algorithm state SQL write it down and force it and stop

349
00:19:22,360 –> 00:19:26,920
arguing in meetings guardrails or excel doesn’t reemerge wearing a power be I badge first

350
00:19:26,920 –> 00:19:32,320
no ad hoc cs v’s as data sources in production they can be staging at best short lived auditable

351
00:19:32,320 –> 00:19:38,600
and deleted second centralized semantic models in power be I with certified data sets outlaw

352
00:19:38,600 –> 00:19:43,960
personal data models feeding executive dashboards third lineage or it didn’t happen every data set

353
00:19:43,960 –> 00:19:49,640
maps back to data verse tables pipelines or SQL sources with documented transforms finally governance

354
00:19:49,640 –> 00:19:55,880
policies dlp for environments one lake access via security groups and c i cd for pipelines and models

355
00:19:55,880 –> 00:20:00,680
if you’re still emailing extracts just for a quick check you’ve already backslid everything here

356
00:20:00,680 –> 00:20:07,000
keeps the promise data verse governs operations fabric scales inside SQL handles specialized transactions

357
00:20:07,000 –> 00:20:11,880
use the spine were a spine belongs and the warehouse where gravity is different your 10 step migration

358
00:20:11,880 –> 00:20:17,000
plan you can draft today you’ve got the y and the what now we make it unavoidable with a plan you

359
00:20:17,000 –> 00:20:23,400
can start drafting before your next meeting ends 10 steps no heroics just adult supervision step one

360
00:20:23,400 –> 00:20:28,840
map current excel assets owners consumers prioritized by risk inventory is not glamorous it’s

361
00:20:28,840 –> 00:20:34,200
necessary list every spreadsheet that feeds or pretends to feed production where it lives who owns it

362
00:20:34,200 –> 00:20:40,040
who uses it and what decisions depend on it no row counts tabs that are really entities refresh

363
00:20:40,040 –> 00:20:46,120
cadence and whether it’s reference data entry or reporting tax sensitivity public internal

364
00:20:46,120 –> 00:20:51,000
confidential restricted then ranked by blast radius which file if wrong or unavailable hurts you

365
00:20:51,000 –> 00:20:56,280
the most that’s your starting q step two define entities keys relationships decide choices versus

366
00:20:56,280 –> 00:21:02,520
lookups translate the business nouns into tables accounts contacts orders products spare me the

367
00:21:02,520 –> 00:21:08,440
we are unique myth for each table define a primary key use guides as surrogate keys in data verse

368
00:21:08,440 –> 00:21:13,720
and identify natural keys as alternate keys for upsets like account number map relationships

369
00:21:13,720 –> 00:21:19,080
explicitly one too many from account to contact many too many were reality demands it use choices

370
00:21:19,080 –> 00:21:25,320
for control vocabularies status region category use lookups for relationships no a text field that

371
00:21:25,320 –> 00:21:31,480
usually matches is not a relationship step three security model sketch roads teams column security

372
00:21:31,480 –> 00:21:37,000
for sensitive fields design access like an adult create roles aligned to functions sales finance

373
00:21:37,000 –> 00:21:43,480
ops hr with create read write append append to and delete rights scope per table use teams to mirror

374
00:21:43,480 –> 00:21:49,080
org structure so people inherit access by membership not by hope apply column level security to fields

375
00:21:49,080 –> 00:21:55,160
like salary ssn credit card tokens or confidential notes decide ownership model user owned

376
00:21:55,160 –> 00:22:00,280
versus organization owned based on whether records should be private by default least privilege is

377
00:22:00,280 –> 00:22:05,480
not optional it’s the baseline step four data quality rules required fields patterns the

378
00:22:05,480 –> 00:22:11,000
logic referential checks move the rules out of human memory and into the platform mark must have

379
00:22:11,000 –> 00:22:16,360
fields as required at the table level at format constraints for IDs emails phone numbers if it

380
00:22:16,360 –> 00:22:21,080
should match a pattern say so define the duplication rules for accounts and contacts that consider

381
00:22:21,080 –> 00:22:26,200
normalized names emails and phone numbers trim spaces standardized casing remove punctuation

382
00:22:26,200 –> 00:22:31,240
before comparing in force referential integrity with relationship rules so you cannot create an

383
00:22:31,240 –> 00:22:36,440
order without a valid account the system should reject nonsense at entry not after a quarterly cleanse

384
00:22:36,440 –> 00:22:42,760
step five build dataverse schema in dev seed with sample data create your tables columns

385
00:22:42,760 –> 00:22:47,480
relationships choices business rules and calculated fields in a development environment don’t do

386
00:22:47,480 –> 00:22:52,680
this live seed with a small representative sample dozens or hundreds not thousands so you can

387
00:22:52,680 –> 00:22:58,520
see how forms render how look ups behave and where your rules bite this is where you find out that

388
00:22:58,520 –> 00:23:05,400
notes needs 1000 characters not 200 and that status should be a choice not free text adjust now

389
00:23:05,400 –> 00:23:12,600
not doing cut over step six choose import path configure data flows power query transformations

390
00:23:12,600 –> 00:23:17,400
pick the pipe that matches the mess if your excel needs transformation split columns fix types map

391
00:23:17,400 –> 00:23:23,480
codes use data flows with power query make the steps explicit and repeatable scheduled if needed if

392
00:23:23,480 –> 00:23:28,040
the sheet is already clean and flat use direct import for the initial load if users must keep

393
00:23:28,040 –> 00:23:33,000
entering data in excel during transition use the dataverse add in so their changes flow through

394
00:23:33,000 –> 00:23:37,960
the rules not around them the adult rule logic belongs in a pipeline not in someone’s quick tips

395
00:23:37,960 –> 00:23:44,600
posted step seven validate loads reconciliation reports spot check audit and permissions load into

396
00:23:44,600 –> 00:23:50,040
dev reconcile counts per table and per key run exception reports for duplicates or offense and invalid

397
00:23:50,040 –> 00:23:55,080
formats then fix the source or the transform promote to a test environment and validate again

398
00:23:55,080 –> 00:24:01,400
produce a reconciliation report that a non-technical stakeholder can read we expected 18,942 accounts

399
00:24:01,400 –> 00:24:07,160
we loaded 18,941 one duplicates suppressed by rule spot check audit logs to confirm changes

400
00:24:07,160 –> 00:24:13,400
attract test security by logging in as each role see only what you should and fail where you must

401
00:24:14,360 –> 00:24:20,280
step eight pilot with a model driven skeleton canvas where you ex demands it stand up a model driven

402
00:24:20,280 –> 00:24:24,680
app against your dataverse schema you’ll get forms views and related records out of the box that

403
00:24:24,680 –> 00:24:29,800
respect your relationships and rules use that for core operations add canvas pages only where you

404
00:24:29,800 –> 00:24:36,600
ex specificity matters scanning dashboards kiosk intake resist the urge to redesign everything pixel by

405
00:24:36,600 –> 00:24:41,640
pixel on day one function first fancy later the pilot proves that the data model is right because the

406
00:24:41,640 –> 00:24:48,520
app behaves even under people who don’t read instructions step nine cut over plan freeze window dual run

407
00:24:48,520 –> 00:24:53,400
rollback communication script write the playbook before you play announce a freeze window where excel

408
00:24:53,400 –> 00:24:58,120
becomes read only pre-load historical data to product ahead of time during the freeze delta load

409
00:24:58,120 –> 00:25:03,640
new changes switch the apps data source to dataverse dual run for defined period with read only

410
00:25:03,640 –> 00:25:09,160
access to the old file for comparison define objective rollback criteria data variance thresholds

411
00:25:09,160 –> 00:25:13,960
error rates performance baselines user sign offs if you hit a red line rollback no heroics no

412
00:25:13,960 –> 00:25:19,400
sunk cost pride also script the combs what’s changing when what users do differently and where to

413
00:25:19,400 –> 00:25:27,720
get help surprises are failures of planning not fate step 10 post migration monitoring backups audit

414
00:25:27,720 –> 00:25:33,240
review excel access deprecation you’re not done at cut over you’re done when operations are boring

415
00:25:33,800 –> 00:25:40,760
monitor key metrics record creation rates error logs api consumption and performance confirm automatic

416
00:25:40,760 –> 00:25:46,520
backups are running test point in time restore in a sandbox so you can sleep review audit logs weekly

417
00:25:46,520 –> 00:25:51,400
at first spot outliers confirm sensitive fields aren’t being edited by the wrong roles deprecate

418
00:25:51,400 –> 00:25:56,360
excel access intentionally archive the old files to a secure locked location publish an access

419
00:25:56,360 –> 00:26:01,880
policy that states the source of truth is that averse exports are temporary and read only remove

420
00:26:01,880 –> 00:26:06,200
old connections from apps and flows to nobody silently backslides close loop the one decision that

421
00:26:06,200 –> 00:26:11,480
prevents 80% of failures centralized the data model in dataverse first not in a canvas app not in

422
00:26:11,480 –> 00:26:16,040
power query not in a well-meaning spreadsheet the model tables relationships rules and security

423
00:26:16,040 –> 00:26:20,840
lives in dataverse everything else plugs into that reality make that decision and most of the chaos

424
00:26:20,840 –> 00:26:26,120
you’ve normalized simply can’t occur you know what to do next draft the inventory draw the model

425
00:26:26,120 –> 00:26:31,320
pick the pipeline and schedule the freeze you’re replacing a habit with a system that’s how grown-ups

426
00:26:31,320 –> 00:26:38,440
do data conclusion the spine not the spreadsheet the takeaway is simple excel tracks dataverse governs

427
00:26:38,440 –> 00:26:43,640
and governance is what keeps truth intact when humans get busy if this saved you from another quick fix

428
00:26:43,640 –> 00:26:49,160
disaster lock in your upgrade path subscribe turn on alerts and watch the dataverse modeling walk

429
00:26:49,160 –> 00:26:55,080
through next draft your migration plan today inventory model pipeline cutover and execute before

430
00:26:55,080 –> 00:26:57,080
the next outage makes the decision for you.

431
00:26:57,080 –> 00:26:59,080
Entropy wins by default. Choose Structure.





Source link

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Follow
Search
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...