In this in-depth episode, we reframe how you think about Microsoft Dataverse and the data models that underpin modern business applications. Rather than treating Dataverse as just a database, this conversation argues that your data model is your strategy — and that smart modeling is what separates business solutions that fail quietly from those that scale and adapt sustainably.

Inspired by a four-hour deep-dive workshop from Microsoft MVP Bülent Altinsoy, we go beyond low-code app features and instead explore why the underlying model matters more than screens, forms, or workflows. If your team builds solutions with Microsoft Power Platform, Power Apps, Power Automate, or automation agents — this episode will change how you think about modeling data, semantics, relationships, and governance.

🧠 Why Smart Dataverse Models Matter

Most teams approach Dataverse thinking it’s “just a nicer place to store rows” — a competent storage engine that supports forms and flows. But that mental model leads to meaning debt, where convenience replaces clarity and teams drift into architecture that breaks under scale.

In reality, Dataverse is not primarily a database — it's a business semantics engine that encodes meaning, relationships, ownership, security scopes, and lifecycle behavior. When modeled well, this enables:

  • Consistent security enforcement

  • Predictable integration and automation

  • Reliable analytics, reporting, and audit trails

  • AI and agent systems that can reason with context, not ambiguity

Weak models don’t break immediately — they break silently as usage grows.


📌 Key Concepts Covered

🔹 1. Data Modeling Is Strategy, Not Just Structure

A table in Dataverse isn’t storage — it’s a declaration about the world your solution exists to represent. Choosing nouns, relationships, and constraints early determines whether your apps scale or collapse into technical debt.

🔹 2. Low-Code Doesn’t Mean Low-Thinking

Low-code platforms like Power Apps simplify delivery, but they don’t substitute domain understanding. Without codifying meaning in the model, teams fall back to UI-driven decisions that mask ambiguity rather than resolve it.

🔹 3. Relationships Encode Policy

Relationships in Dataverse aren’t navigation aids — they codify business rules. One-to-many, many-to-many, and referential behaviors determine how data behaves in real world contexts — including security, auditing, and lifecycle transitions.

🔹 4. Environments and Solutions Are Architectural Boundaries

Solutions and environments in Dataverse are more than deployment mechanisms — they’re definitions of reality. Managed solutions enforce determinism and protect meaning across scales.

🔹 5. AI Needs Structured Meaning

When your model is weak or ambiguous, AI and agent systems will still produce output — but they’ll do so confidently and incorrectly. Dataverse provides the explicit context AI systems need to reason correctly at scale.


📊 Real-World Pitfalls of Weak Models

This episode highlights common anti-patterns that teams fall into:

  • The One-Table Trap — squeezing unrelated concepts into a single table

  • Screen-Driven Modeling — modeling for UI convenience instead of truth

  • SharePoint Lists as Databases — flat storage collapsing under complexity

  • Ad Hoc Environments — inconsistent boundaries that breed integration chaos

Each feels cheap and easy at first — until multiple apps, automations, and analytics depend on the same unstable schema.


🔧 Practical Guidance for Builders

If you build business applications with Microsoft Power Platform or Dataverse, this episode recommends:

✅ Start with business nouns — define what matters before you design screens
✅ Treat metadata as product surface, not an afterthought
✅ Use constraints and relationships as guardrails, not roadblocks
✅ Invest in environment strategy (dev/test/prod boundaries)
✅ Model for automation and AI before you automate

This approach leads to fewer schema changes, predictable audits, simpler AI prompts, and more scalable architecture.


🎙️ Episode Takeaways

By the end of this session, you’ll understand:

  • Why data modeling is leadership — it defines what the business considers real and important

  • How Dataverse structures meaning across apps, automations, and agents

  • Why low-code success requires strong models, not fast screens

  • How to think about Dataverse as strategic infrastructure, not just storage

Transcript

1
00:00:00,000 --> 00:00:05,120
This episode was inspired by Bülent Altinsoy, a Microsoft MVP, who ran a four hour technical

2
00:00:05,120 --> 00:00:08,160
dataverse deep dive workshop at M365Con.

3
00:00:08,160 --> 00:00:13,040
Net, he stayed in the mechanics, tables, relationships, security solutions, the parts teams rush

4
00:00:13,040 --> 00:00:15,320
through because they want the app on the screen.

5
00:00:15,320 --> 00:00:19,720
This episode sits above that, most teams don't fail because power apps is low code.

6
00:00:19,720 --> 00:00:22,960
They fail because they treat data like a temporary inconvenience.

7
00:00:22,960 --> 00:00:25,880
Something to clean up after the demo, dataverse isn't a magic database.

8
00:00:25,880 --> 00:00:30,360
Its Microsoft quietly offering you a way to model reality with enough discipline that automation

9
00:00:30,360 --> 00:00:32,680
and AI can survive contact with production.

10
00:00:32,680 --> 00:00:36,880
This isn't about features, it's about why the model underneath becomes strategy, whether

11
00:00:36,880 --> 00:00:38,960
you intended it or not.

12
00:00:38,960 --> 00:00:41,520
Why low code data keeps failing in production?

13
00:00:41,520 --> 00:00:45,600
The comfortable story is that low code fails because makers don't know governance.

14
00:00:45,600 --> 00:00:47,280
That's not the failure mode.

15
00:00:47,280 --> 00:00:50,840
Low code data fails in production because the first version of the model is usually a lie

16
00:00:50,840 --> 00:00:54,600
that everyone agrees to, temporarily, so they can ship something.

17
00:00:54,600 --> 00:00:58,560
At first delivery patents create a very specific kind of debt, meaning debt.

18
00:00:58,560 --> 00:01:02,240
You get columns like status, owner, nodes, type and other.

19
00:01:02,240 --> 00:01:05,920
You get a single table that quietly becomes the dumping ground for three different business

20
00:01:05,920 --> 00:01:06,920
concepts.

21
00:01:06,920 --> 00:01:10,720
You get lookups that exist because the UI needed a drop down, not because the organization

22
00:01:10,720 --> 00:01:13,120
agreed on what the relationship actually means.

23
00:01:13,120 --> 00:01:14,320
And in week one, it works.

24
00:01:14,320 --> 00:01:17,640
The form loads, the flow triggers, the canvas app feels like progress.

25
00:01:17,640 --> 00:01:19,920
The leadership slide deck has a screenshot.

26
00:01:19,920 --> 00:01:21,480
Everyone relaxes.

27
00:01:21,480 --> 00:01:22,960
Then production happens.

28
00:01:22,960 --> 00:01:24,320
Not the go live date.

29
00:01:24,320 --> 00:01:30,280
In production, time, volume, edge cases, mergers, audits, new teams, new apps, new integrations.

30
00:01:30,280 --> 00:01:34,880
That's when the model stops being a convenient container and becomes an argument, the system

31
00:01:34,880 --> 00:01:37,000
has to resolve thousands of times a day.

32
00:01:37,000 --> 00:01:38,680
Here's what most people miss.

33
00:01:38,680 --> 00:01:40,440
Scaling doesn't just multiply transactions.

34
00:01:40,440 --> 00:01:42,400
It multiplies contradictions.

35
00:01:42,400 --> 00:01:46,320
If your model doesn't encode meaning, every downstream consumer invents meaning, your power

36
00:01:46,320 --> 00:01:48,640
automate flow invents one interpretation.

37
00:01:48,640 --> 00:01:52,160
Your reporting model invents another, the model driven app form invents a third, and

38
00:01:52,160 --> 00:01:54,120
now your organization isn't automating.

39
00:01:54,120 --> 00:01:56,160
It's negotiating with itself through software.

40
00:01:56,160 --> 00:01:58,720
This is why the it works phase is dangerous.

41
00:01:58,720 --> 00:02:00,560
Early success isn't proof you modeled well.

42
00:02:00,560 --> 00:02:02,720
It's proof you haven't hit the hard questions yet.

43
00:02:02,720 --> 00:02:08,400
Belend Altenzoy, a Microsoft MVP, puts it cleanly in his Dataverse workshop at M365

44
00:02:08,400 --> 00:02:09,400
con.

45
00:02:09,400 --> 00:02:12,520
Net, architecture is a story, not a snapshot.

46
00:02:12,520 --> 00:02:15,960
That line matters because most teams treat the model like a snapshot.

47
00:02:15,960 --> 00:02:19,040
Whatever shape the data needed to be in for today's screen.

48
00:02:19,040 --> 00:02:20,840
But architecture behaves like a story.

49
00:02:20,840 --> 00:02:25,340
The plot keeps moving, new characters appear, and the decisions you locked in during the

50
00:02:25,340 --> 00:02:29,000
pilot become the rules the system enforces in year two.

51
00:02:29,000 --> 00:02:32,440
And when you try to retrofit structure later, you don't pay in one place.

52
00:02:32,440 --> 00:02:33,440
You pay everywhere.

53
00:02:33,440 --> 00:02:34,800
Schema churn becomes your tax.

54
00:02:34,800 --> 00:02:35,800
You rename a column.

55
00:02:35,800 --> 00:02:36,800
Now you break a flow.

56
00:02:36,800 --> 00:02:37,800
You update the flow.

57
00:02:37,800 --> 00:02:38,800
Now you break a report.

58
00:02:38,800 --> 00:02:39,800
You update the report.

59
00:02:39,800 --> 00:02:40,960
Now you break the integration.

60
00:02:40,960 --> 00:02:42,280
You patch the integration.

61
00:02:42,280 --> 00:02:46,080
Now your environment layering and solutions are messy, so deployments get risky.

62
00:02:46,080 --> 00:02:49,400
So teams start just making the fits directly in production.

63
00:02:49,400 --> 00:02:52,240
Which means now you're not doing ALM, you're doing archaeology.

64
00:02:52,240 --> 00:02:55,440
This is how low code turns into high maintenance.

65
00:02:55,440 --> 00:02:57,920
And the core reason is almost always the same.

66
00:02:57,920 --> 00:03:00,560
The model never stabilized around business concepts.

67
00:03:00,560 --> 00:03:02,760
It stabilized around delivery pressure.

68
00:03:02,760 --> 00:03:07,520
The foundational misunderstanding is that data modeling is optional until later.

69
00:03:07,520 --> 00:03:08,520
It isn't.

70
00:03:08,520 --> 00:03:11,760
In Dataverse and really in any platform that wants to be enterprise grade, the model is

71
00:03:11,760 --> 00:03:14,320
the control plane for everything downstream.

72
00:03:14,320 --> 00:03:19,280
Security, behavior, integration, reporting, and now AI grounding.

73
00:03:19,280 --> 00:03:21,200
State models don't just create bad data.

74
00:03:21,200 --> 00:03:25,360
They create conditional chaos because every exception becomes an entropy generator.

75
00:03:25,360 --> 00:03:28,840
You add just one extra status value because the stakeholder needed it.

76
00:03:28,840 --> 00:03:32,880
You add just one extra column because a workflow didn't fit the existing structure.

77
00:03:32,880 --> 00:03:37,960
You add just one environment because dev, test, prod is too much ceremony.

78
00:03:37,960 --> 00:03:39,280
Each one feels small.

79
00:03:39,280 --> 00:03:41,360
Over time policies drift away.

80
00:03:41,360 --> 00:03:42,600
Naming drifts.

81
00:03:42,600 --> 00:03:43,960
Relationship behavior drifts.

82
00:03:43,960 --> 00:03:47,880
And then the system still runs, but you are no longer operating a deterministic security

83
00:03:47,880 --> 00:03:48,920
and data model.

84
00:03:48,920 --> 00:03:50,840
You're operating a probabilistic one.

85
00:03:50,840 --> 00:03:52,360
That's what production feels like.

86
00:03:52,360 --> 00:03:54,120
Not broken, just unpredictable.

87
00:03:54,120 --> 00:03:57,560
And this is why SharePoint lists keep showing up as the early substrate.

88
00:03:57,560 --> 00:03:59,240
They're fast, familiar, and cheap.

89
00:03:59,240 --> 00:04:01,280
They also train teams into flat thinking.

90
00:04:01,280 --> 00:04:05,520
You can get surprisingly far with flat thinking right up until the organization tries to ask

91
00:04:05,520 --> 00:04:10,080
cross-cutting questions, enforce ownership, or introduce AI that needs context.

92
00:04:10,080 --> 00:04:14,520
At that point, your list-based database collapses into duct tape and thresholds.

93
00:04:14,520 --> 00:04:18,280
And then the migration happens under stress during audit findings.

94
00:04:18,280 --> 00:04:21,400
Or when the next strategic initiative needs a real system of truth.

95
00:04:21,400 --> 00:04:24,360
So the real problem isn't that low-code teams move too fast.

96
00:04:24,360 --> 00:04:26,520
It's that they move fast without deciding what's true.

97
00:04:26,520 --> 00:04:30,480
And dataverse, when used properly, is Microsoft trying to force that decision earlier,

98
00:04:30,480 --> 00:04:31,720
while it's still cheap.

99
00:04:31,720 --> 00:04:35,960
Because once you have three apps, ten flows, five reports, and one copilot agent depending

100
00:04:35,960 --> 00:04:38,680
on your model, changing meaning is no longer refactoring.

101
00:04:38,680 --> 00:04:40,840
It's rewriting history.

102
00:04:40,840 --> 00:04:43,040
That distinction matters.

103
00:04:43,040 --> 00:04:45,440
And it leads directly to the next point.

104
00:04:45,440 --> 00:04:48,520
Dataverse is not a database in the way most people mean it.

105
00:04:48,520 --> 00:04:50,120
It's a semantics engine.

106
00:04:50,120 --> 00:04:51,400
Dataverse is not a database.

107
00:04:51,400 --> 00:04:53,120
It's a business semantics engine.

108
00:04:53,120 --> 00:04:57,120
Most organizations approach dataverse like it's just a nicer place to store rows.

109
00:04:57,120 --> 00:04:58,520
That mental model is convenient.

110
00:04:58,520 --> 00:05:00,360
It is also wrong.

111
00:05:00,360 --> 00:05:02,800
A database stores facts.

112
00:05:02,800 --> 00:05:08,440
Dataverse stores facts plus meaning, relationships, ownership, security boundaries, metadata,

113
00:05:08,440 --> 00:05:13,440
and life cycle behavior that travel with the data across apps, automation, and increasingly

114
00:05:13,440 --> 00:05:14,440
AI.

115
00:05:14,440 --> 00:05:17,920
That distinction matters because once you treat dataverse like just storage, you start

116
00:05:17,920 --> 00:05:20,320
stripping out the exact parts that make it valuable.

117
00:05:20,320 --> 00:05:23,040
You push logic into power automate because it feels easier.

118
00:05:23,040 --> 00:05:26,240
You treat relationships like optional because the form still loads without them.

119
00:05:26,240 --> 00:05:29,520
You ignore security design because we'll add roles later.

120
00:05:29,520 --> 00:05:33,880
And then you end up with the same chaos you had before just with a different price tag.

121
00:05:33,880 --> 00:05:36,880
In architectural terms, dataverse is a business semantics engine.

122
00:05:36,880 --> 00:05:39,760
It takes the messy human version of your business.

123
00:05:39,760 --> 00:05:44,160
Things like customer, case, approval, asset, contract, exception.

124
00:05:44,160 --> 00:05:47,480
And forces you to encode those as durable primitives.

125
00:05:47,480 --> 00:05:49,000
Tables aren't UI scaffolding.

126
00:05:49,000 --> 00:05:50,640
Columns aren't random fields.

127
00:05:50,640 --> 00:05:51,920
Relationships aren't navigation links.

128
00:05:51,920 --> 00:05:55,200
Their commitments about what your organization believes is true.

129
00:05:55,200 --> 00:05:56,800
Think of dataverse like a compiler.

130
00:05:56,800 --> 00:05:58,200
You write intent and structure.

131
00:05:58,200 --> 00:06:01,480
Nouns attributes constraints in relationships.

132
00:06:01,480 --> 00:06:04,920
Dataverse compiles that into consistent behavior across the platform.

133
00:06:04,920 --> 00:06:05,920
Model driven apps.

134
00:06:05,920 --> 00:06:06,920
Canvas apps.

135
00:06:06,920 --> 00:06:07,920
Power automate.

136
00:06:07,920 --> 00:06:08,920
Power pages.

137
00:06:08,920 --> 00:06:11,720
And now agents that need grounded context.

138
00:06:11,720 --> 00:06:14,400
If you don't compile intent, every consumer interprets it.

139
00:06:14,400 --> 00:06:18,000
That's the difference between a model that scales and a model that drifts.

140
00:06:18,000 --> 00:06:21,080
This is why Blendt keeps repeating that it's not about the license.

141
00:06:21,080 --> 00:06:22,800
It's the language underneath.

142
00:06:22,800 --> 00:06:25,640
The license conversation is always louder because it's easy.

143
00:06:25,640 --> 00:06:27,160
Meaning is quieter because it's work.

144
00:06:27,160 --> 00:06:30,160
But meaning is what you're actually buying when you adopt dataverse.

145
00:06:30,160 --> 00:06:31,960
Dataverse has built in gravity.

146
00:06:31,960 --> 00:06:35,760
It nudges teams toward consistent definitions because the platform rewards it.

147
00:06:35,760 --> 00:06:37,800
If you define an ownership model,

148
00:06:37,800 --> 00:06:41,760
security can be expressed in roles rather than in tribal rules.

149
00:06:41,760 --> 00:06:46,440
If you define relationships properly, model driven apps stop being fragile screen flows and

150
00:06:46,440 --> 00:06:48,680
become different views over the same truth.

151
00:06:48,680 --> 00:06:52,720
If you name things consistently and add descriptions, you don't just help humans.

152
00:06:52,720 --> 00:06:56,760
You reduce ambiguity for every system that depends on metadata including copilot and

153
00:06:56,760 --> 00:06:58,040
agentec tooling.

154
00:06:58,040 --> 00:07:00,640
And if you don't do those things, dataverse doesn't break immediately.

155
00:07:00,640 --> 00:07:02,000
It does something worse.

156
00:07:02,000 --> 00:07:05,960
It lets you succeed just enough to scale the mistake because the platform is strong enough

157
00:07:05,960 --> 00:07:08,040
to carry a weak model for a while.

158
00:07:08,040 --> 00:07:11,520
And then when you reach the point where multiple apps converge on the same schema, the lack

159
00:07:11,520 --> 00:07:13,640
of semantics turns into friction.

160
00:07:13,640 --> 00:07:18,600
In consistent reporting, unpredictable security, integration confusion and AI that can't

161
00:07:18,600 --> 00:07:21,720
retrieve meaning because you never made it explicit.

162
00:07:21,720 --> 00:07:22,720
Here's the weird part.

163
00:07:22,720 --> 00:07:25,280
Dataverse isn't trying to make building apps harder.

164
00:07:25,280 --> 00:07:27,800
It's trying to make building reality unavoidable.

165
00:07:27,800 --> 00:07:31,800
That's why the feature set feels opinionated compared to a simple list or a generic SQL

166
00:07:31,800 --> 00:07:32,800
table.

167
00:07:32,800 --> 00:07:35,560
You get solutions and environments because deployment is part of meaning.

168
00:07:35,560 --> 00:07:39,320
You get role-based security and ownership because access is part of meaning.

169
00:07:39,320 --> 00:07:41,040
You get relationship behavior.

170
00:07:41,040 --> 00:07:44,960
Parental, referential restricted because data integrity is part of meaning.

171
00:07:44,960 --> 00:07:48,760
Those relationship behavior sound like implementation detail until your in-production

172
00:07:48,760 --> 00:07:52,920
and someone asks if we delete the parent what happens to the child records.

173
00:07:52,920 --> 00:07:57,480
If your answer is it depends, that's not flexibility, that's unbounded risk.

174
00:07:57,480 --> 00:08:02,920
And dataverse is built to make those risks explicit early when you can still decide intentionally.

175
00:08:02,920 --> 00:08:05,200
For leaders, this is the strategic shift.

176
00:08:05,200 --> 00:08:07,840
Dataability becomes a platform capability, not a heroic effort.

177
00:08:07,840 --> 00:08:11,880
A good dataverse model is how an organization scales shared language.

178
00:08:11,880 --> 00:08:15,360
It's how a new app can be built without renegotiating what customer means.

179
00:08:15,360 --> 00:08:19,840
It's how a new integration can map to stable identifiers instead of fragile strings.

180
00:08:19,840 --> 00:08:23,520
It's how an audit question can be answered by structure, not by a meeting.

181
00:08:23,520 --> 00:08:27,680
So when people say dataverse is a database, what they're really saying is, we plan to use

182
00:08:27,680 --> 00:08:31,760
it like storage and storage is never the hard part, meaning is.

183
00:08:31,760 --> 00:08:36,400
Once you accept that dataverse is a semantics engine, you also accept the consequence.

184
00:08:36,400 --> 00:08:37,400
Modeling isn't busy work.

185
00:08:37,400 --> 00:08:40,960
It's how you encode intent so the platform can enforce it at scale.

186
00:08:40,960 --> 00:08:43,360
And that leads to the next uncomfortable truth.

187
00:08:43,360 --> 00:08:49,640
If modeling encodes intent, then modeling is leadership work, whether you admit it or not.

188
00:08:49,640 --> 00:08:51,920
Why data modeling is a leadership topic?

189
00:08:51,920 --> 00:08:54,840
Most organizations pretend data modeling is a technical detail.

190
00:08:54,840 --> 00:08:59,240
That's convenient because it means leadership can focus on delivery dates, adoption numbers,

191
00:08:59,240 --> 00:09:00,800
and licensing spreadsheets.

192
00:09:00,800 --> 00:09:03,400
While someone else handles the data.

193
00:09:03,400 --> 00:09:07,400
That delegation is the original sin because the model isn't an implementation detail.

194
00:09:07,400 --> 00:09:11,560
It's a set of decisions about what the business is, what it cares about, and what it's willing

195
00:09:11,560 --> 00:09:12,560
to enforce.

196
00:09:12,560 --> 00:09:16,160
Those are leadership decisions even when they're made silently by whoever built the first

197
00:09:16,160 --> 00:09:17,760
table on a Friday afternoon.

198
00:09:17,760 --> 00:09:18,840
And here's the part people hate.

199
00:09:18,840 --> 00:09:20,240
The model will outlive the app.

200
00:09:20,240 --> 00:09:24,080
Apps get rewritten, screens get redesigned, power automate, flows get replaced, but the

201
00:09:24,080 --> 00:09:25,800
data model becomes sediment.

202
00:09:25,800 --> 00:09:27,200
It accumulates assumptions.

203
00:09:27,200 --> 00:09:31,400
It becomes the shared substrate everyone builds on even when nobody admits their building

204
00:09:31,400 --> 00:09:32,400
on it.

205
00:09:32,400 --> 00:09:36,760
So when leaders treat modeling as something the makers do, what they're really doing is outsourcing

206
00:09:36,760 --> 00:09:41,560
the definition of reality and then they act surprised when reality becomes ungovernable.

207
00:09:41,560 --> 00:09:43,400
This is the uncomfortable truth.

208
00:09:43,400 --> 00:09:47,240
Governance, compliance, and auditability aren't layers you bolt on later.

209
00:09:47,240 --> 00:09:50,760
They emerge from structure or they don't exist if you want predictable behavior under

210
00:09:50,760 --> 00:09:55,560
stress and audit, a breach, a regulatory request, a merger, then you need the system to

211
00:09:55,560 --> 00:09:59,880
answer questions deterministically, who owns this record, who can see it, who changed

212
00:09:59,880 --> 00:10:04,240
it, what does approved mean, what does closed mean, what happens when the parent is removed,

213
00:10:04,240 --> 00:10:06,640
those questions don't get answered by policy memos.

214
00:10:06,640 --> 00:10:10,560
They get answered by the authorization graph, the relationship behavior, the constraints,

215
00:10:10,560 --> 00:10:13,320
and the metadata you encoded or fail to encode.

216
00:10:13,320 --> 00:10:16,800
That distinction matters because it explains why so many governance initiatives feel like

217
00:10:16,800 --> 00:10:17,800
theatre.

218
00:10:17,800 --> 00:10:21,680
They write documents, they build slide decks, they create committees, but the platform

219
00:10:21,680 --> 00:10:24,520
keeps operating according to the model, not the memo.

220
00:10:24,520 --> 00:10:28,880
If you always win when intent is not enforced by design, so if leaders want fewer incidents

221
00:10:28,880 --> 00:10:32,860
and fewer two AM war rooms, they don't need more governance documents, they need fewer

222
00:10:32,860 --> 00:10:34,280
ambiguous models.

223
00:10:34,280 --> 00:10:39,600
And that means leadership has to take ownership of a simple but brutal responsibility, naming

224
00:10:39,600 --> 00:10:42,240
and defining the core concepts of the business.

225
00:10:42,240 --> 00:10:48,160
Not the app features, the nouns, customer, vendor, request, case, asset, policy, exception,

226
00:10:48,160 --> 00:10:51,240
approval, department, project.

227
00:10:51,240 --> 00:10:55,120
If those words mean different things to different teams, dataverse will faithfully scale that

228
00:10:55,120 --> 00:10:57,320
confusion across every app you build.

229
00:10:57,320 --> 00:11:00,160
It doesn't fix organizational ambiguity, it amplifies it.

230
00:11:00,160 --> 00:11:04,080
That's why good model scale clarity, bad model scale meetings.

231
00:11:04,080 --> 00:11:07,960
Because when the model is clear, teams stop arguing about what a thing is.

232
00:11:07,960 --> 00:11:11,120
They can argue about what to do with it, which is at least productive.

233
00:11:11,120 --> 00:11:14,880
When the model is vague, every meeting turns into a translation exercise.

234
00:11:14,880 --> 00:11:19,720
People spend time negotiating semantics instead of executing, and once AI enters the picture,

235
00:11:19,720 --> 00:11:21,880
the cost of semantic drift becomes visible.

236
00:11:21,880 --> 00:11:23,800
Humans can compensate for ambiguity.

237
00:11:23,800 --> 00:11:25,320
They remember context.

238
00:11:25,320 --> 00:11:30,360
They know that status, exo, other really means waiting on procurement because they were

239
00:11:30,360 --> 00:11:32,680
in the meeting when it was decided.

240
00:11:32,680 --> 00:11:34,000
Agents don't have that meeting memory.

241
00:11:34,000 --> 00:11:38,120
They have whatever you made explicit in the model, plus whatever your metadata implies.

242
00:11:38,120 --> 00:11:41,360
If you didn't define ownership, you can't reliably enforce access.

243
00:11:41,360 --> 00:11:44,320
If you didn't define relationships, you can't reliably retrieve context.

244
00:11:44,320 --> 00:11:48,520
If you didn't define stable identifiers, you can't reliably integrate without brittle

245
00:11:48,520 --> 00:11:49,520
string matching.

246
00:11:49,520 --> 00:11:54,000
So, leadership's job becomes less about approving apps and more about enforcing assumptions

247
00:11:54,000 --> 00:11:55,000
at scale.

248
00:11:55,000 --> 00:11:57,640
And no, that does not mean leaders should micromanage table design.

249
00:11:57,640 --> 00:12:02,560
It means leaders should demand clarity and then fund the work to encode that clarity.

250
00:12:02,560 --> 00:12:06,200
This is where most organizations fall into the delegation trap.

251
00:12:06,200 --> 00:12:11,080
They ask a team to build an app, but they don't ask anyone to define the system of truth.

252
00:12:11,080 --> 00:12:13,760
They don't appoint an accountable owner for the data model.

253
00:12:13,760 --> 00:12:16,680
They don't decide what gets standardized and what stays local.

254
00:12:16,680 --> 00:12:19,600
They don't decide which concepts are global and which are contextual.

255
00:12:19,600 --> 00:12:22,800
So the team makes those decisions implicitly under delivery pressure.

256
00:12:22,800 --> 00:12:27,480
And later, the organization pays for them explicitly under operational pressure.

257
00:12:27,480 --> 00:12:30,960
If you want a simple leadership test for Dataverse, ask who owns the model.

258
00:12:30,960 --> 00:12:32,840
Not who built the app, who owns the model.

259
00:12:32,840 --> 00:12:35,560
If the answer is IT, that usually means nobody.

260
00:12:35,560 --> 00:12:38,680
If the answer is the makers, that means chaos with good intentions.

261
00:12:38,680 --> 00:12:43,120
If the answer is the business, but nobody can name a specific role with authority, that

262
00:12:43,120 --> 00:12:44,120
means meetings.

263
00:12:44,120 --> 00:12:45,880
A real owner makes the model a product.

264
00:12:45,880 --> 00:12:47,840
They defend it, they evolve it deliberately.

265
00:12:47,840 --> 00:12:49,280
They resist entropy generators.

266
00:12:49,280 --> 00:12:53,080
They align environments, solutions and releases to protect stability.

267
00:12:53,080 --> 00:12:56,000
Because in Dataverse, the model is the strategy surface.

268
00:12:56,000 --> 00:12:59,720
And leadership either shapes it on purpose or inherits it by accident.

269
00:12:59,720 --> 00:13:03,600
From tables to business concepts, what a table really represents.

270
00:13:03,600 --> 00:13:06,800
Everything gets simpler when you stop treating a table like storage and start treating it

271
00:13:06,800 --> 00:13:08,000
like a statement.

272
00:13:08,000 --> 00:13:12,120
Every table is a business decision, not a technical one, a decision.

273
00:13:12,120 --> 00:13:16,920
When you create a table, you're declaring this thing exists in our world, it has a life cycle,

274
00:13:16,920 --> 00:13:21,000
it has owners, it has rules, and we intend to ask questions about it later.

275
00:13:21,000 --> 00:13:24,720
And when you don't create a table, when you hide the concept inside a text field, a choice

276
00:13:24,720 --> 00:13:28,320
column or worse, a spreadsheet, you're declaring the opposite.

277
00:13:28,320 --> 00:13:29,840
This concept is optional.

278
00:13:29,840 --> 00:13:33,120
We won't protect it, we won't govern it, we won't reason over it.

279
00:13:33,120 --> 00:13:35,320
That's why modeling isn't about being tidy.

280
00:13:35,320 --> 00:13:38,520
It's about choosing what reality your platform is allowed to remember.

281
00:13:38,520 --> 00:13:41,640
Most teams start from screens, because screens are visible.

282
00:13:41,640 --> 00:13:44,120
You can point to a form and say, "Look, progress."

283
00:13:44,120 --> 00:13:46,200
You can demo a button and call it value.

284
00:13:46,200 --> 00:13:51,240
So the model becomes a reflection of UI needs, one table per screen, one column per input,

285
00:13:51,240 --> 00:13:53,400
one lookup, because the drop down needed it.

286
00:13:53,400 --> 00:13:57,640
That screen driven modeling, and it always collapses under time, because the UI is the most

287
00:13:57,640 --> 00:13:59,600
volatile part of the system.

288
00:13:59,600 --> 00:14:04,280
People change forms constantly, new fields, new sections, new views, new, just one more

289
00:14:04,280 --> 00:14:05,280
requirements.

290
00:14:05,280 --> 00:14:08,040
If your model mirrors screens, you guarantee schema churn.

291
00:14:08,040 --> 00:14:11,280
And schema churn is how you create operational debt in dataverse, because every

292
00:14:11,280 --> 00:14:16,640
downstream artifact attaches to schema, flows, reports, integrations, business rules, plugins,

293
00:14:16,640 --> 00:14:19,040
agents, and yes, security assumptions.

294
00:14:19,040 --> 00:14:22,200
Everything clicked for a lot of teams when they realize the simple distinction.

295
00:14:22,200 --> 00:14:26,040
Tables are nouns, processes are verbs.

296
00:14:26,040 --> 00:14:29,440
A table should represent a business noun that exists across time.

297
00:14:29,440 --> 00:14:34,560
Customer, case, contract, asset, policy, approval, exception, invoice, claim.

298
00:14:34,560 --> 00:14:35,560
Those are durable concepts.

299
00:14:35,560 --> 00:14:39,000
A process should be expressed as behavior around those nouns.

300
00:14:39,000 --> 00:14:43,320
Validations, rooting, notifications, calculations, and state changes.

301
00:14:43,320 --> 00:14:46,560
The foundational mistake is when teams store verbs as columns.

302
00:14:46,560 --> 00:14:51,360
They create fields like step one completed, step two completed, approval number three,

303
00:14:51,360 --> 00:14:55,840
current approver, previous approver, escalation reason, escalation reason two.

304
00:14:55,840 --> 00:14:56,840
That's not modeling.

305
00:14:56,840 --> 00:14:59,800
That's an abandoned workflow engine trapped inside a table.

306
00:14:59,800 --> 00:15:05,040
It feels fast until you need to change the process, because now your schema is your workflow.

307
00:15:05,040 --> 00:15:06,280
Dataverse will let you do this.

308
00:15:06,280 --> 00:15:08,960
Dataverse will also make you regret it, because processes change more frequently.

309
00:15:08,960 --> 00:15:10,240
Then nouns.

310
00:15:10,240 --> 00:15:14,520
If you bake the process into the table schema, you force breaking changes every time the business

311
00:15:14,520 --> 00:15:16,200
learns something new.

312
00:15:16,200 --> 00:15:20,400
If you keep the noun clean and express the process through related entities, like approvals,

313
00:15:20,400 --> 00:15:25,920
assignments, decisions, exceptions, you get a model that can evolve without rewriting history.

314
00:15:25,920 --> 00:15:27,680
Columns are commitments.

315
00:15:27,680 --> 00:15:29,960
A column is not a place to put data.

316
00:15:29,960 --> 00:15:30,960
It's a promise.

317
00:15:30,960 --> 00:15:31,960
We will keep this true.

318
00:15:31,960 --> 00:15:32,960
We will validate it.

319
00:15:32,960 --> 00:15:34,960
We will secure it and we will query it.

320
00:15:34,960 --> 00:15:37,160
That means every column should earn its existence.

321
00:15:37,160 --> 00:15:40,600
If you add a column, because someone asked for it in a meeting, but nobody can say what

322
00:15:40,600 --> 00:15:43,640
decision will be made from it, that column becomes future confusion.

323
00:15:43,640 --> 00:15:47,320
It becomes a place where people put different interpretations and then AI has to guess which

324
00:15:47,320 --> 00:15:48,840
interpretation is correct.

325
00:15:48,840 --> 00:15:50,880
And relationships are reality.

326
00:15:50,880 --> 00:15:53,680
Relationships are the part that most teams treat like plumbing, because in the UI they look

327
00:15:53,680 --> 00:15:55,280
like navigation links.

328
00:15:55,280 --> 00:16:00,400
But a relationship is you, writing the business story in cardinalities and behavior.

329
00:16:00,400 --> 00:16:01,800
One too many is structure.

330
00:16:01,800 --> 00:16:03,120
One customer has many cases.

331
00:16:03,120 --> 00:16:04,600
One contract has many amendments.

332
00:16:04,600 --> 00:16:06,520
One project has many tasks.

333
00:16:06,520 --> 00:16:09,400
Many to many is policy when the association itself matters.

334
00:16:09,400 --> 00:16:12,480
People and skills, users and roles, products and categories.

335
00:16:12,480 --> 00:16:15,760
When you need to govern the relationship, not just reference it, the relationship becomes

336
00:16:15,760 --> 00:16:17,320
its own first class concept.

337
00:16:17,320 --> 00:16:21,440
The weird part is that this is where low code doesn't mean low thinking becomes brutally

338
00:16:21,440 --> 00:16:22,440
true.

339
00:16:22,440 --> 00:16:25,120
Because datavers will happily let you build apps with a weak model.

340
00:16:25,120 --> 00:16:29,480
It will also happily scale your weak model into five apps, ten flows and a co-pilot agent

341
00:16:29,480 --> 00:16:31,040
that answers with a shrug.

342
00:16:31,040 --> 00:16:33,640
So here's the mental move that changes everything.

343
00:16:33,640 --> 00:16:38,040
When you sketch a table, don't ask, what fields do we need on the form?

344
00:16:38,040 --> 00:16:39,040
Ask.

345
00:16:39,040 --> 00:16:42,480
What thing exists in our business even when no one is looking at the screen?

346
00:16:42,480 --> 00:16:44,160
If it exists, it deserves a noun.

347
00:16:44,160 --> 00:16:46,280
If it has a life cycle, it deserves a table.

348
00:16:46,280 --> 00:16:50,040
If it relates to other things, it deserves relationships that encode that truth.

349
00:16:50,040 --> 00:16:54,320
And once you model nouns instead of screens, you discover where the leverage actually is.

350
00:16:54,320 --> 00:16:56,720
Not in more columns in relationships.

351
00:16:56,720 --> 00:16:57,720
Relationships.

352
00:16:57,720 --> 00:16:58,920
How the organization actually works.

353
00:16:58,920 --> 00:17:00,720
Not how the UI looks.

354
00:17:00,720 --> 00:17:04,200
Relationships are where dataverse stops being tables and fields and starts behaving like

355
00:17:04,200 --> 00:17:05,200
an organization.

356
00:17:05,200 --> 00:17:07,880
Most teams treat relationships as a UI convenience.

357
00:17:07,880 --> 00:17:10,440
I need to drop down here, so I'll add a look up.

358
00:17:10,440 --> 00:17:11,440
That's not a relationship.

359
00:17:11,440 --> 00:17:13,400
That's a form control with a database behind it.

360
00:17:13,400 --> 00:17:16,560
A real relationship is an assertion about reality.

361
00:17:16,560 --> 00:17:17,840
What depends on what?

362
00:17:17,840 --> 00:17:19,200
What can exist alone?

363
00:17:19,200 --> 00:17:20,440
What gets deleted?

364
00:17:20,440 --> 00:17:21,680
What gets reassigned?

365
00:17:21,680 --> 00:17:22,760
What gets shared?

366
00:17:22,760 --> 00:17:24,000
And what gets inherited?

367
00:17:24,000 --> 00:17:28,560
In other words, how your organization actually works when nobody is looking at the screen.

368
00:17:28,560 --> 00:17:30,920
This is why relationships become the differentiator.

369
00:17:30,920 --> 00:17:32,120
They don't just connect data.

370
00:17:32,120 --> 00:17:33,440
They create context.

371
00:17:33,440 --> 00:17:37,960
Context is what makes reporting sane, integration stable and AI answers coherent.

372
00:17:37,960 --> 00:17:40,040
Without relationships, every query is blind.

373
00:17:40,040 --> 00:17:42,840
With relationships, the platform can navigate meaning.

374
00:17:42,840 --> 00:17:45,200
One too many relationships are the backbone of structure.

375
00:17:45,200 --> 00:17:46,400
One customer, many cases.

376
00:17:46,400 --> 00:17:47,720
One project, many tasks.

377
00:17:47,720 --> 00:17:48,720
One continent.

378
00:17:48,720 --> 00:17:49,720
Many countries.

379
00:17:49,720 --> 00:17:51,080
Boulin's simple workshop example.

380
00:17:51,080 --> 00:17:55,040
It sounds like dataverse 101, but it's the same pattern that decides whether your system

381
00:17:55,040 --> 00:17:58,360
behaves deterministically or degenerates into interpretation.

382
00:17:58,360 --> 00:18:01,600
One too many isn't just about navigation, it's about integrity.

383
00:18:01,600 --> 00:18:05,520
If a country belongs to exactly one continent, you shouldn't represent that with a text field

384
00:18:05,520 --> 00:18:09,200
called continent name and hope everyone spells Europe the same way.

385
00:18:09,200 --> 00:18:13,200
You represent it with a relationship that makes the association explicit, enforceable

386
00:18:13,200 --> 00:18:14,200
and queryable.

387
00:18:14,200 --> 00:18:17,840
Now the platform can do what platforms do, prevent contradictions, support consistent

388
00:18:17,840 --> 00:18:21,720
filtering, and reuse the same structure across multiple apps.

389
00:18:21,720 --> 00:18:24,280
And then there's the part most teams skip.

390
00:18:24,280 --> 00:18:25,280
Relationship behavior.

391
00:18:25,280 --> 00:18:27,280
And calls this out directly.

392
00:18:27,280 --> 00:18:29,080
Relationships aren't just connections.

393
00:18:29,080 --> 00:18:30,600
Behavior matters.

394
00:18:30,600 --> 00:18:34,920
Dataverse forces you to decide what happens when the parent changes or disappears.

395
00:18:34,920 --> 00:18:38,280
Referential, parental, restrict, custom.

396
00:18:38,280 --> 00:18:41,160
These aren't academic settings, they're operational consequences.

397
00:18:41,160 --> 00:18:44,480
If you delete a parent record, do child records get deleted too?

398
00:18:44,480 --> 00:18:47,360
That's parental behavior, in some domains that's correct.

399
00:18:47,360 --> 00:18:50,120
If the parent never existed, the child shouldn't exist.

400
00:18:50,120 --> 00:18:51,680
In other domains it's a disaster.

401
00:18:51,680 --> 00:18:55,000
We deleted the customer, therefore we deleted the cases.

402
00:18:55,000 --> 00:18:56,680
It's a way to lose audit evidence.

403
00:18:56,680 --> 00:19:00,160
If you restrict deletes, you're saying the system will block you until you resolve the

404
00:19:00,160 --> 00:19:01,160
dependency.

405
00:19:01,160 --> 00:19:02,640
That feels annoying in a demo.

406
00:19:02,640 --> 00:19:03,920
In production it's a safety rail.

407
00:19:03,920 --> 00:19:07,600
If you keep it referential, you're saying the link matters, but the child can survive if

408
00:19:07,600 --> 00:19:09,080
the parent is removed.

409
00:19:09,080 --> 00:19:13,760
That's often the right call when the child record is evidence, history or legal artifact.

410
00:19:13,760 --> 00:19:17,000
This is why relationship design is not just data modeling.

411
00:19:17,000 --> 00:19:18,960
It's policy encoded as behavior.

412
00:19:18,960 --> 00:19:22,920
And many too many relationships are where teams either get serious or get sloppy.

413
00:19:22,920 --> 00:19:26,320
Too many is what you use when the relationship itself matters.

414
00:19:26,320 --> 00:19:30,040
People and skills, contracts and clauses, products and categories, agents in the cases

415
00:19:30,040 --> 00:19:31,040
they touched.

416
00:19:31,040 --> 00:19:35,640
This is not a list of tags, this is a business fact that deserves its own life cycle when

417
00:19:35,640 --> 00:19:36,640
it carries meaning.

418
00:19:36,640 --> 00:19:40,640
A common mistake is trying to fake many too many with multiple look up fields.

419
00:19:40,640 --> 00:19:42,720
Vehicle one, vehicle two, vehicle three.

420
00:19:42,720 --> 00:19:44,960
Or a proven one, a proven two, a proven three.

421
00:19:44,960 --> 00:19:48,720
It works until the fourth one exists and the fourth one always exists.

422
00:19:48,720 --> 00:19:52,880
The better mental model is, if the association can have attributes, it's not a link.

423
00:19:52,880 --> 00:19:54,080
It's an entity.

424
00:19:54,080 --> 00:19:59,040
User assigned to case becomes assignment with timestamps, reasons, escalation flags and audit

425
00:19:59,040 --> 00:20:00,040
trail.

426
00:20:00,040 --> 00:20:05,560
Agent touched record becomes agent interaction with state, outcome and confidence.

427
00:20:05,560 --> 00:20:10,360
Now you can query it, secure it, report it and give AI something grounded to retrieve.

428
00:20:10,360 --> 00:20:13,000
This is also where the SharePoint pattern collapses.

429
00:20:13,000 --> 00:20:16,400
SharePoint lookups are not relational integrity, they are references.

430
00:20:16,400 --> 00:20:20,040
And references without behavior create ambiguity at scale.

431
00:20:20,040 --> 00:20:24,660
Different items, duplicated meanings and brittle reporting logic that someone will eventually

432
00:20:24,660 --> 00:20:26,720
fix in Excel.

433
00:20:26,720 --> 00:20:30,520
So the practical rule is simple, model the relationship the way the business would explain

434
00:20:30,520 --> 00:20:31,680
it out loud.

435
00:20:31,680 --> 00:20:37,280
If the explanation includes and when that happens we then the relationship has behavior.

436
00:20:37,280 --> 00:20:41,040
And if you can't explain the relationship clearly, that's your signal, the organization

437
00:20:41,040 --> 00:20:42,920
doesn't agree on reality yet.

438
00:20:42,920 --> 00:20:45,920
Don't hide that disagreement inside a lookup, resolve it.

439
00:20:45,920 --> 00:20:48,840
Because once AI shows up, it will not ask politely.

440
00:20:48,840 --> 00:20:53,480
It will traverse whatever graph you gave it and return whatever story your relationships

441
00:20:53,480 --> 00:20:54,480
imply.

442
00:20:54,480 --> 00:20:58,920
Accurate relationships don't just make apps nicer, they make the organization legible.

443
00:20:58,920 --> 00:21:00,400
Solutions and environments.

444
00:21:00,400 --> 00:21:03,120
Why delivery is an architecture decision?

445
00:21:03,120 --> 00:21:07,600
Once relationships are correct, most teams make the next predictable mistake.

446
00:21:07,600 --> 00:21:10,400
They treat delivery like an operational detail.

447
00:21:10,400 --> 00:21:14,240
They build in whatever environment is convenient, they ship by exporting whatever they remember

448
00:21:14,240 --> 00:21:15,240
to export.

449
00:21:15,240 --> 00:21:19,720
They fix issues by editing production directly because it's faster and then they look confused

450
00:21:19,720 --> 00:21:22,080
when the platform becomes undeployable.

451
00:21:22,080 --> 00:21:25,400
Dataverse doesn't separate delivery from architecture, it makes delivery part of the

452
00:21:25,400 --> 00:21:26,400
model.

453
00:21:26,400 --> 00:21:29,920
Environments are not just places to click around, they are boundaries where different versions

454
00:21:29,920 --> 00:21:32,440
of reality exist at the same time.

455
00:21:32,440 --> 00:21:36,680
Development is where you experiment, test is where you validate the behavior under stress.

456
00:21:36,680 --> 00:21:40,360
Production is where you stop experimenting because the business is paying for stability.

457
00:21:40,360 --> 00:21:44,640
If you blur those boundaries, you don't just risk bugs, you create meaning drift.

458
00:21:44,640 --> 00:21:48,560
Because the schema you're changing is not a neutral object, it is the definition every

459
00:21:48,560 --> 00:21:51,280
app flow report an agent depends on.

460
00:21:51,280 --> 00:21:55,720
When you make changes in production, you're rewriting the rules while the game is in progress.

461
00:21:55,720 --> 00:21:57,760
Boulince Warning here is blunt.

462
00:21:57,760 --> 00:22:00,480
Live development in production never ends well.

463
00:22:00,480 --> 00:22:01,480
Never.

464
00:22:01,480 --> 00:22:05,240
Not because the platform is fragile, but because humans are, people forget what they change,

465
00:22:05,240 --> 00:22:09,280
they forget why they changed it, they leave half finished artifacts in the active layer

466
00:22:09,280 --> 00:22:12,880
and then the next deployment fails because the environment is no longer what you think

467
00:22:12,880 --> 00:22:13,880
it is.

468
00:22:13,880 --> 00:22:15,000
That's where solutions matter.

469
00:22:15,000 --> 00:22:20,040
A solution is not a zip file, it is a transport mechanism for metadata, tables, columns,

470
00:22:20,040 --> 00:22:27,120
relationships, forms, views, apps, flows, security roles, environment variables and now increasingly

471
00:22:27,120 --> 00:22:29,240
copilot and agent components.

472
00:22:29,240 --> 00:22:34,000
And that metadata only detail is the one that keeps hurting people because teams assume

473
00:22:34,000 --> 00:22:36,400
a solution is how you move business data.

474
00:22:36,400 --> 00:22:39,120
It isn't, it's how you move the definition of the system.

475
00:22:39,120 --> 00:22:41,960
The schema, not the rows, the contract, not the content.

476
00:22:41,960 --> 00:22:45,560
So when someone asks, can we just export the solution and we'll have production data too?

477
00:22:45,560 --> 00:22:48,640
The answer is no and the follow up answer is the one nobody likes.

478
00:22:48,640 --> 00:22:51,960
If you build a deployment process, assuming that you didn't build deployment, you build

479
00:22:51,960 --> 00:22:52,960
copying.

480
00:22:52,960 --> 00:22:55,920
This distinction matters because ALM is not a DevOps hobby.

481
00:22:55,920 --> 00:22:57,960
It's how you prevent architectural erosion.

482
00:22:57,960 --> 00:23:00,240
If you can't deploy repeatedly, you can't govern change.

483
00:23:00,240 --> 00:23:03,360
If you can't govern change, your model becomes a moving target.

484
00:23:03,360 --> 00:23:07,160
If your model becomes a moving target, every integration becomes brittle, every report

485
00:23:07,160 --> 00:23:12,160
becomes suspect and every copilot prompt becomes a workaround for schema ambiguity.

486
00:23:12,160 --> 00:23:16,360
Now at the managed versus unmanaged tension, unmanaged solutions are freedom now.

487
00:23:16,360 --> 00:23:21,520
Managed solutions are control later and teams love freedom right up until they need rollback,

488
00:23:21,520 --> 00:23:25,280
auditability and the ability to say this is what's deployed and this is why.

489
00:23:25,280 --> 00:23:28,120
The unmanaged approach leaves you with environment pollution.

490
00:23:28,120 --> 00:23:29,120
Changes stick around.

491
00:23:29,120 --> 00:23:30,720
Active layer overrides become permanent.

492
00:23:30,720 --> 00:23:32,160
You can't cleanly uninstall.

493
00:23:32,160 --> 00:23:34,040
You can't reason about dependencies.

494
00:23:34,040 --> 00:23:38,520
And when something goes wrong, troubleshooting turns into which version of reality is this

495
00:23:38,520 --> 00:23:40,480
environment actually running?

496
00:23:40,480 --> 00:23:43,520
Managed solutions in contrast give you a control deployment surface.

497
00:23:43,520 --> 00:23:47,560
You can version, you can patch, you can uninstall, you can reduce the number of hands modifying

498
00:23:47,560 --> 00:23:49,960
production, you trade convenience for determinism.

499
00:23:49,960 --> 00:23:52,440
Yes, dependency management can become a headache.

500
00:23:52,440 --> 00:23:55,200
Yes, layering can slow you down when you're debugging.

501
00:23:55,200 --> 00:23:57,040
But the alternative is not fast.

502
00:23:57,040 --> 00:23:58,760
The alternative is conditional chaos.

503
00:23:58,760 --> 00:24:01,080
And here's the leadership angle again.

504
00:24:01,080 --> 00:24:03,080
Business and solutions are not engineering ceremony.

505
00:24:03,080 --> 00:24:07,040
They are how you defend meaning over time because every time you allow just this once,

506
00:24:07,040 --> 00:24:10,560
changes in production, you're teaching the organization that intent is optional.

507
00:24:10,560 --> 00:24:14,400
You're teaching them that the model is negotiable and negotiation always accumulates.

508
00:24:14,400 --> 00:24:19,080
So the minimum viable discipline in data verse is simple, a development environment, a test

509
00:24:19,080 --> 00:24:23,080
environment and a production environment, a solution strategy that defines what moves

510
00:24:23,080 --> 00:24:24,080
and how.

511
00:24:24,080 --> 00:24:27,240
And a bias toward managed deployments once you leave experimentation.

512
00:24:27,240 --> 00:24:29,440
If you don't do this, the platform will still run.

513
00:24:29,440 --> 00:24:33,760
It will also quietly convert your system of truth into a system of exceptions.

514
00:24:33,760 --> 00:24:36,920
And the first real wake up call is almost always the same.

515
00:24:36,920 --> 00:24:37,920
SharePoint.

516
00:24:37,920 --> 00:24:41,360
Scenario one, SharePoint to data verse, convenience versus correctness.

517
00:24:41,360 --> 00:24:44,440
Most organizations don't choose SharePoint lists as a database.

518
00:24:44,440 --> 00:24:45,440
They drift into it.

519
00:24:45,440 --> 00:24:46,440
It's already there.

520
00:24:46,440 --> 00:24:47,440
Everyone has access.

521
00:24:47,440 --> 00:24:50,480
Someone can make a list in 10 minutes at a couple columns and suddenly the business feels

522
00:24:50,480 --> 00:24:53,240
like it got an app without asking IT for permission.

523
00:24:53,240 --> 00:24:54,560
That early momentum is real.

524
00:24:54,560 --> 00:24:57,800
It's also the start of a very specific failure pattern.

525
00:24:57,800 --> 00:25:02,320
This becomes the data model and then everyone builds policy on top of convenience.

526
00:25:02,320 --> 00:25:06,240
SharePoint lists feel good enough early because they're optimized for the first week.

527
00:25:06,240 --> 00:25:11,240
Flat data, simple forms, quick views and a UI that trains people to think in columns,

528
00:25:11,240 --> 00:25:12,320
not concepts.

529
00:25:12,320 --> 00:25:17,000
And when the problem is truly a list, tasks, simple intake, lightweight tracking, SharePoint

530
00:25:17,000 --> 00:25:18,360
can be the right substrate.

531
00:25:18,360 --> 00:25:21,680
The problem is what happens when the list stops being a list.

532
00:25:21,680 --> 00:25:24,200
Because the business never keeps it as just a list.

533
00:25:24,200 --> 00:25:25,440
They add relationships.

534
00:25:25,440 --> 00:25:26,760
They add status logic.

535
00:25:26,760 --> 00:25:27,760
They add approvals.

536
00:25:27,760 --> 00:25:29,240
They add security expectations.

537
00:25:29,240 --> 00:25:30,480
They add reporting demands.

538
00:25:30,480 --> 00:25:31,640
They add automation.

539
00:25:31,640 --> 00:25:36,320
And without noticing, they've built a DIY relational database with none of the relational guarantees.

540
00:25:36,320 --> 00:25:40,320
This is where it collapses and it usually collapses in four predictable ways.

541
00:25:40,320 --> 00:25:41,840
First, relational complexity.

542
00:25:41,840 --> 00:25:45,120
The minute you need more than a couple of lookups, you're no longer managing a list.

543
00:25:45,120 --> 00:25:46,960
You're managing a graph badly.

544
00:25:46,960 --> 00:25:51,600
You're storing IDs in text fields, duplicating values to avoid look-up limits and inventing

545
00:25:51,600 --> 00:25:56,120
conventions like Title E's, customer name, project name, year because you need uniqueness

546
00:25:56,120 --> 00:25:57,920
the platform doesn't enforce.

547
00:25:57,920 --> 00:26:01,920
Second, Integrity Gaps, SharePoint will happily let you create often records.

548
00:26:01,920 --> 00:26:06,240
It will let you delete something upstream and leave downstream references pointing to nothing.

549
00:26:06,240 --> 00:26:11,200
It will let people type Europe, EU and Europe, and treat them as three different realities.

550
00:26:11,200 --> 00:26:12,560
The system doesn't know what's true.

551
00:26:12,560 --> 00:26:13,960
It knows what was entered.

552
00:26:13,960 --> 00:26:18,280
Third, scale thresholds and performance ceilings, there are hard limits and soft limits.

553
00:26:18,280 --> 00:26:21,520
And the worst part is that teams discover them mid-flight.

554
00:26:21,520 --> 00:26:22,760
Query thresholds.

555
00:26:22,760 --> 00:26:23,760
View limits.

556
00:26:23,760 --> 00:26:27,800
Indecation problems in Canvas apps, suddenly the simple list turns into a collection of

557
00:26:27,800 --> 00:26:29,080
workarounds.

558
00:26:29,080 --> 00:26:34,360
Index columns, filtered views, segmented lists, and power-automate flows that exist mostly

559
00:26:34,360 --> 00:26:35,880
to dodge the platform.

560
00:26:35,880 --> 00:26:37,840
Fourth, governance ambiguity.

561
00:26:37,840 --> 00:26:41,640
SharePoint can do security, but it's not row-level security with ownership semantics baked

562
00:26:41,640 --> 00:26:43,840
into every record as a structural primitive.

563
00:26:43,840 --> 00:26:46,440
Data versus in data versus ownership isn't an afterthought.

564
00:26:46,440 --> 00:26:47,440
Every row has an owner.

565
00:26:47,440 --> 00:26:48,880
You don't negotiate with it.

566
00:26:48,880 --> 00:26:53,320
That single design choice changes how reliably you can explain, access auditing and

567
00:26:53,320 --> 00:26:54,320
accountability.

568
00:26:54,320 --> 00:26:55,320
And that's the point.

569
00:26:55,320 --> 00:26:57,320
Data versus isn't better because it's more expensive.

570
00:26:57,320 --> 00:26:59,960
It's better because it's opinionated about correctness.

571
00:26:59,960 --> 00:27:03,080
When you move from SharePoint to Dataverse, you're not just moving data.

572
00:27:03,080 --> 00:27:06,240
You're moving from a file-in-list substrate to a business semantics substrate.

573
00:27:06,240 --> 00:27:08,480
You're choosing relationships that enforce meaning.

574
00:27:08,480 --> 00:27:13,200
You're choosing role-based security and ownership models that are native, not improvised.

575
00:27:13,200 --> 00:27:16,280
You're choosing environments and solutions, so change has a life cycle.

576
00:27:16,280 --> 00:27:18,560
Belent frames this in a way that's unusually honest.

577
00:27:18,560 --> 00:27:22,000
Dataverse isn't the answer to everything, but it's the answer when that's what you need.

578
00:27:22,000 --> 00:27:24,920
That line matters because this isn't SharePoint bashing.

579
00:27:24,920 --> 00:27:27,200
It's architectural classification.

580
00:27:27,200 --> 00:27:31,440
If the data is really documents collaboration and a lightweight index, SharePoint is doing

581
00:27:31,440 --> 00:27:32,440
its job.

582
00:27:32,440 --> 00:27:36,680
If the data is operational truth, entities with relationships, life cycle and policy,

583
00:27:36,680 --> 00:27:41,040
then SharePoint is doing cost-play as a database and you're the one maintaining the costume.

584
00:27:41,040 --> 00:27:45,000
The uncomfortable part is when leaders realize how this lesson is learned in the wild.

585
00:27:45,000 --> 00:27:46,600
It's rarely learned during design.

586
00:27:46,600 --> 00:27:49,640
It's learned during audits, incidents or integrations.

587
00:27:49,640 --> 00:27:54,080
Someone asks for a report that spans multiple lists with consistent definitions and suddenly

588
00:27:54,080 --> 00:27:57,320
the team spends weeks reconciling mismatched values.

589
00:27:57,320 --> 00:28:00,000
Someone asks who can see this record and why.

590
00:28:00,000 --> 00:28:05,040
And the answer involves site permissions, list permissions, item permissions and a spreadsheet.

591
00:28:05,040 --> 00:28:08,200
Someone asks co-pilot a simple question and gets nonsense back because the system has

592
00:28:08,200 --> 00:28:11,080
no stable relationships to retrieve context from.

593
00:28:11,080 --> 00:28:13,320
So the migration isn't just moving to dataverse.

594
00:28:13,320 --> 00:28:15,520
It's the point where the organization admits the truth.

595
00:28:15,520 --> 00:28:18,080
The system needs to be correct, not just convenient.

596
00:28:18,080 --> 00:28:21,120
And once you accept that, the next question becomes inevitable.

597
00:28:21,120 --> 00:28:25,560
If the model is the substrate for governance, then governance isn't paperwork, it's design.

598
00:28:25,560 --> 00:28:27,720
And that leads straight into the second scenario.

599
00:28:27,720 --> 00:28:33,320
Audit and compliance readiness, where dataverse stops being optional and starts being survivable.

600
00:28:33,320 --> 00:28:34,320
Scenario 2.

601
00:28:34,320 --> 00:28:36,160
Audit and compliance readiness.

602
00:28:36,160 --> 00:28:37,800
Governance by design.

603
00:28:37,800 --> 00:28:39,720
Audits don't break systems.

604
00:28:39,720 --> 00:28:42,080
They reveal what the system already is.

605
00:28:42,080 --> 00:28:46,640
Most teams treat governance like paperwork, a policy document and access review spreadsheet

606
00:28:46,640 --> 00:28:48,400
will tighten it up later, promise.

607
00:28:48,400 --> 00:28:53,200
Then in order to show up and ask a basic question, who can access this data, what can they do

608
00:28:53,200 --> 00:28:55,280
with it and how do you prove it?

609
00:28:55,280 --> 00:28:57,000
That's when the room goes quiet.

610
00:28:57,000 --> 00:29:01,800
Because the real answer is usually, it depends on whether data lives, which app you used

611
00:29:01,800 --> 00:29:04,800
and whether someone remembered to share the right thing.

612
00:29:04,800 --> 00:29:09,720
Dataverse is built to make that answer boring, predictable, defensible.

613
00:29:09,720 --> 00:29:13,120
Governance in dataverse isn't an extra layer you apply.

614
00:29:13,120 --> 00:29:19,680
It's a set of structural primitives, security roles, privileges, access levels and ownership.

615
00:29:19,680 --> 00:29:24,120
And the difference between users can't see it and users can't do it is not semantics,

616
00:29:24,120 --> 00:29:25,800
that distinction is the audit.

617
00:29:25,800 --> 00:29:29,080
Bülent's keys and rooms analogy works because it reflects the model.

618
00:29:29,080 --> 00:29:31,440
A security role is the key ring.

619
00:29:31,440 --> 00:29:36,600
Privileges are what the key can do, create, read, write, delete, append, assign, share.

620
00:29:36,600 --> 00:29:39,000
Access levels are which rooms those keys open.

621
00:29:39,000 --> 00:29:42,640
Your own records, your team's records, your business unit, parent child business units

622
00:29:42,640 --> 00:29:44,480
or the entire organization.

623
00:29:44,480 --> 00:29:48,520
That means the question, can this user view this table and the question, can this user view

624
00:29:48,520 --> 00:29:49,520
this row?

625
00:29:49,520 --> 00:29:52,000
Are different questions with different mechanisms?

626
00:29:52,000 --> 00:29:54,680
And that matters because auditors will ask both.

627
00:29:54,680 --> 00:29:58,880
The first uncomfortable reality is that dataverse security doesn't negotiate with you.

628
00:29:58,880 --> 00:29:59,880
Every row has an owner.

629
00:29:59,880 --> 00:30:00,880
That's not a suggestion.

630
00:30:00,880 --> 00:30:02,360
It's a structural rule.

631
00:30:02,360 --> 00:30:05,320
And ownership isn't a UI field you can hide and forget.

632
00:30:05,320 --> 00:30:08,280
Ownership is the foundation of row level access.

633
00:30:08,280 --> 00:30:12,160
If your model assumes this data is shared by default, you're already in conflict with

634
00:30:12,160 --> 00:30:16,720
the platform because dataverse assumes data is owned and access is granted through roles

635
00:30:16,720 --> 00:30:17,880
and scope.

636
00:30:17,880 --> 00:30:21,400
In practice, that means two things happen in mature environments.

637
00:30:21,400 --> 00:30:26,200
One, team stop treating security as who needs access to the app and start treating it as who

638
00:30:26,200 --> 00:30:29,200
needs what rights to which tables at which scope.

639
00:30:29,200 --> 00:30:34,800
Two, teams stop assigning roles at Hoc to individuals and start designing access patterns.

640
00:30:34,800 --> 00:30:37,480
Role-based access that maps to real job functions.

641
00:30:37,480 --> 00:30:42,120
And when scale shows up, team-based ownership becomes less of an option and more of a necessity.

642
00:30:42,120 --> 00:30:44,000
Because user ownership is fragile.

643
00:30:44,000 --> 00:30:45,000
People leave.

644
00:30:45,000 --> 00:30:46,000
People move departments.

645
00:30:46,000 --> 00:30:47,000
People go on leave.

646
00:30:47,000 --> 00:30:50,400
If your access model assumes individual owners, you have operational risk baked into your

647
00:30:50,400 --> 00:30:51,640
table design.

648
00:30:51,640 --> 00:30:53,840
Team ownership by contrast survives human churn.

649
00:30:53,840 --> 00:30:54,960
A team can own rows.

650
00:30:54,960 --> 00:30:57,000
A team can carry a security role.

651
00:30:57,000 --> 00:31:00,320
And membership can change without rewriting the ownership story of the data.

652
00:31:00,320 --> 00:31:04,320
This is why dataverse security is actually more of an organizational model than a technical

653
00:31:04,320 --> 00:31:05,320
setting.

654
00:31:05,320 --> 00:31:10,000
It forces you to decide, is this data personal, team-scoped, department-scoped or organization-scoped?

655
00:31:10,000 --> 00:31:12,360
And if you can't answer that, you don't have a governance problem.

656
00:31:12,360 --> 00:31:13,640
You have a definition problem.

657
00:31:13,640 --> 00:31:18,520
Then there's column-level security, which is where most will just hide it, approaches die.

658
00:31:18,520 --> 00:31:20,320
Sometimes it's not the record that sensitive.

659
00:31:20,320 --> 00:31:25,680
It's one field, salary, legal notes, health data, contract terms, disciplinary status.

660
00:31:25,680 --> 00:31:29,480
Dataverse lets you lock down specific columns so that even if someone can read the row, they

661
00:31:29,480 --> 00:31:31,720
still can't see the sensitive value.

662
00:31:31,720 --> 00:31:32,720
That's not a UX trick.

663
00:31:32,720 --> 00:31:34,160
That's enforcement at the data layer.

664
00:31:34,160 --> 00:31:37,280
Now connect this back to the earlier point about SharePoint drift.

665
00:31:37,280 --> 00:31:41,120
In SharePoint, many governance stories depend on where you put data, how you share it and

666
00:31:41,120 --> 00:31:42,640
whether people behave.

667
00:31:42,640 --> 00:31:46,000
In Dataverse, governance is model behavior.

668
00:31:46,000 --> 00:31:50,240
Roads, scopes, owners, and field-level controls.

669
00:31:50,240 --> 00:31:54,760
That's why leaders usually learn this lesson during audit preparation, not during design.

670
00:31:54,760 --> 00:31:58,680
Because governance by design sounds like overhead until the first time you have to prove it.

671
00:31:58,680 --> 00:32:02,440
And once you have to prove it, you realize the real cost isn't the work of setting roles.

672
00:32:02,440 --> 00:32:04,320
The cost is ambiguity.

673
00:32:04,320 --> 00:32:06,680
Ambiguity forces manual controls.

674
00:32:06,680 --> 00:32:09,120
Manual controls force exceptions.

675
00:32:09,120 --> 00:32:12,320
Exceptions generate entropy and entropy is what auditors call risk.

676
00:32:12,320 --> 00:32:16,600
So the strategic point of Dataverse security isn't that it gives you more knobs to turn.

677
00:32:16,600 --> 00:32:18,320
It's that it gives you fewer excuses.

678
00:32:18,320 --> 00:32:21,200
It turns access into a defined, inspecable system.

679
00:32:21,200 --> 00:32:23,280
And once that system is in place, something else happens.

680
00:32:23,280 --> 00:32:27,400
The organization starts depending on that structure, not just for audits, but for everything

681
00:32:27,400 --> 00:32:28,920
that comes next.

682
00:32:28,920 --> 00:32:31,080
Because the next wave isn't compliance, it's AI.

683
00:32:31,080 --> 00:32:33,800
And AI doesn't tolerate ambiguity with polite questions.

684
00:32:33,800 --> 00:32:35,120
It returns an answer anyway.

685
00:32:35,120 --> 00:32:38,080
The AI moment, context retrieval at scale, not magic.

686
00:32:38,080 --> 00:32:42,560
The AI moment is when weak modeling stops being an internal inconvenience and becomes externally

687
00:32:42,560 --> 00:32:43,920
visible failure.

688
00:32:43,920 --> 00:32:46,160
Because AI doesn't understand your business.

689
00:32:46,160 --> 00:32:51,160
It retrieves whatever context your system can supply, then tries to produce a coherent answer.

690
00:32:51,160 --> 00:32:52,160
That's it.

691
00:32:52,160 --> 00:32:56,320
There is no secret layer where co-pilot infers meaning you refuse to define.

692
00:32:56,320 --> 00:32:59,880
So when leaders say we'll add AI later, what they're really saying is we'll ask the most

693
00:32:59,880 --> 00:33:03,960
demanding consumer of our data to work with the least explicit version of it.

694
00:33:03,960 --> 00:33:05,280
It always ends the same way.

695
00:33:05,280 --> 00:33:08,440
The simplest way to frame this is, co-pilot doesn't invent meaning.

696
00:33:08,440 --> 00:33:10,280
It consumes meaning.

697
00:33:10,280 --> 00:33:14,320
And in Dataverse, meaning lives in the model, table names, column names, descriptions,

698
00:33:14,320 --> 00:33:16,560
relationship structure, ownership, and security boundaries.

699
00:33:16,560 --> 00:33:19,240
If those are vague, the AI doesn't get confused.

700
00:33:19,240 --> 00:33:20,320
It does something worse.

701
00:33:20,320 --> 00:33:21,320
It answers anyway.

702
00:33:21,320 --> 00:33:23,440
This is why prompt engineering is not a strategy.

703
00:33:23,440 --> 00:33:25,360
It's a tax you pay for ambiguity.

704
00:33:25,360 --> 00:33:28,400
If your data model is precise, prompts can be simple.

705
00:33:28,400 --> 00:33:31,000
Show me all open cases for this customer.

706
00:33:31,000 --> 00:33:33,880
If your model is mush, prompts turn into legal documents.

707
00:33:33,880 --> 00:33:38,360
When I say case, I mean the service request table, except when type is incident, and ignore

708
00:33:38,360 --> 00:33:44,280
rows where status is other and join on customer name, but only if it's not blank.

709
00:33:44,280 --> 00:33:46,040
That's not AI readiness.

710
00:33:46,040 --> 00:33:47,040
That's coping.

711
00:33:47,040 --> 00:33:50,080
So the new readiness test for Dataverse is brutally simple.

712
00:33:50,080 --> 00:33:54,480
Can your model explain your business to an AI without you standing there to translate?

713
00:33:54,480 --> 00:33:58,960
If the answer is no, then every agent you build will either hallucinate or require escalating

714
00:33:58,960 --> 00:34:00,520
amounts of human supervision.

715
00:34:00,520 --> 00:34:04,280
Human supervision at AI scale is just manual work with extra steps.

716
00:34:04,280 --> 00:34:06,680
This is where relationships stop being nice.

717
00:34:06,680 --> 00:34:11,280
They become retrieval infrastructure, a flat model forces AI to guess which fields belong

718
00:34:11,280 --> 00:34:12,280
together.

719
00:34:12,280 --> 00:34:14,640
A relational model gives AI a navigation graph.

720
00:34:14,640 --> 00:34:19,640
It can move from customer to cases to related approvals to exceptions to the owning team and

721
00:34:19,640 --> 00:34:22,440
retrieve context that matches how the business actually thinks.

722
00:34:22,440 --> 00:34:25,040
That's what people miss when they treat dataverse like storage.

723
00:34:25,040 --> 00:34:26,760
Storage gives you rows.

724
00:34:26,760 --> 00:34:28,440
Relationships give you reasoning pathways.

725
00:34:28,440 --> 00:34:33,560
The moment you add multiple apps, those pathways become the only thing that keeps your ecosystem

726
00:34:33,560 --> 00:34:36,120
from turning into contradictory truths.

727
00:34:36,120 --> 00:34:40,360
Model driven apps, canvas apps, power pages, power automate, co-pilot studio, they all

728
00:34:40,360 --> 00:34:41,960
converge on the same substrate.

729
00:34:41,960 --> 00:34:43,560
So AI is not one more interface.

730
00:34:43,560 --> 00:34:48,400
AI is the first interface that punishes ambiguity instantly in front of everyone.

731
00:34:48,400 --> 00:34:51,080
Now tie this back to Boulin's workshop framing.

732
00:34:51,080 --> 00:34:54,360
Dataverse 101 is quietly AI to her one groundwork.

733
00:34:54,360 --> 00:34:58,160
Not because Dataverse is an AI product, because AI demands the thing Dataverse has

734
00:34:58,160 --> 00:35:03,880
always been trying to force, explicit semantics, even the boring stuff becomes AI critical.

735
00:35:03,880 --> 00:35:07,560
If you didn't name columns consistently, retrieval becomes probabilistic.

736
00:35:07,560 --> 00:35:10,880
If you didn't use descriptions, you lose disambiguation.

737
00:35:10,880 --> 00:35:15,160
If you abuse choice fields to represent entities, you collapse structure into strings.

738
00:35:15,160 --> 00:35:19,120
If you skipped relationship behavior, you created orphaned records that still exist, still

739
00:35:19,120 --> 00:35:21,440
get retrieved and still contaminate answers.

740
00:35:21,440 --> 00:35:24,720
And when AI returns the wrong answer, your users won't blame the data model.

741
00:35:24,720 --> 00:35:25,960
They'll blame the AI.

742
00:35:25,960 --> 00:35:28,520
But the system is behaving exactly as designed.

743
00:35:28,520 --> 00:35:32,560
It's retrieving from an ambiguous substrate and producing plausible output.

744
00:35:32,560 --> 00:35:34,680
That's not a model failure in the AI layer.

745
00:35:34,680 --> 00:35:36,840
That's a modeling failure in the control plane.

746
00:35:36,840 --> 00:35:40,680
This is also where the Dataverse versus SharePoint debate changes shape.

747
00:35:40,680 --> 00:35:41,760
SharePoint can store content.

748
00:35:41,760 --> 00:35:46,120
It can even power decent retrieval in certain Microsoft 365 co-pilot scenarios because

749
00:35:46,120 --> 00:35:48,440
the Microsoft graph does heavy lifting.

750
00:35:48,440 --> 00:35:52,800
But when you build agents that need reliable structured truth ownership, row level security,

751
00:35:52,800 --> 00:35:55,320
relationships that represent business concepts.

752
00:35:55,320 --> 00:35:57,160
Data lists are not a semantics engine.

753
00:35:57,160 --> 00:35:59,600
They're a flat container with references and limits.

754
00:35:59,600 --> 00:36:03,040
So you can absolutely build an agent on top of SharePoint.

755
00:36:03,040 --> 00:36:06,760
You'll just spend the rest of its life explaining what the data really means.

756
00:36:06,760 --> 00:36:10,000
Dataverse shifts that work earlier into the model where it belongs.

757
00:36:10,000 --> 00:36:14,720
The payoff is that once the model is stable, AI retrieval becomes less about prompt gymnastics

758
00:36:14,720 --> 00:36:16,560
and more about asking normal questions.

759
00:36:16,560 --> 00:36:21,920
And that's the future shape of business apps, less UI logic, more semantic substrate with

760
00:36:21,920 --> 00:36:23,560
agents operating on top.

761
00:36:23,560 --> 00:36:26,440
And there's one more escalation that makes this non-negotiable.

762
00:36:26,440 --> 00:36:29,680
Co-pilot chat is mostly about retrieval and summarization.

763
00:36:29,680 --> 00:36:30,680
Agents are different.

764
00:36:30,680 --> 00:36:31,680
Agents create state.

765
00:36:31,680 --> 00:36:32,680
They create decisions.

766
00:36:32,680 --> 00:36:34,360
They create operational records.

767
00:36:34,360 --> 00:36:36,000
They don't just read your model.

768
00:36:36,000 --> 00:36:37,280
They write to it.

769
00:36:37,280 --> 00:36:41,560
And if the model can't hold structured truth over time, your agent doesn't become smart.

770
00:36:41,560 --> 00:36:42,880
It becomes noisy.

771
00:36:42,880 --> 00:36:44,160
That's the next section.

772
00:36:44,160 --> 00:36:45,160
Scenario three.

773
00:36:45,160 --> 00:36:47,200
Agents logging state and long term memory.

774
00:36:47,200 --> 00:36:52,240
Once you move from co-pilot answering questions to agents doing work, the data problem changes

775
00:36:52,240 --> 00:36:53,240
shape.

776
00:36:53,240 --> 00:36:57,720
And chat experience can get away with vague context because the user is still in the loop,

777
00:36:57,720 --> 00:36:59,560
correcting, clarifying and re-asking.

778
00:36:59,560 --> 00:37:01,240
An agent doesn't live in that world.

779
00:37:01,240 --> 00:37:02,760
An agent executes.

780
00:37:02,760 --> 00:37:04,040
It takes actions.

781
00:37:04,040 --> 00:37:05,040
It makes decisions.

782
00:37:05,040 --> 00:37:06,040
It retries.

783
00:37:06,040 --> 00:37:07,040
It escalates.

784
00:37:07,040 --> 00:37:08,040
It hands off.

785
00:37:08,040 --> 00:37:09,040
It keeps going.

786
00:37:09,040 --> 00:37:12,560
That means an agent produces operational data whether you plan for it or not.

787
00:37:12,560 --> 00:37:16,040
And operational data is not the same thing as business data.

788
00:37:16,040 --> 00:37:17,840
Business data is your nouns.

789
00:37:17,840 --> 00:37:18,840
Customer.

790
00:37:18,840 --> 00:37:19,840
Case.

791
00:37:19,840 --> 00:37:20,840
Contract.

792
00:37:20,840 --> 00:37:21,840
Invoice.

793
00:37:21,840 --> 00:37:22,840
Approval.

794
00:37:22,840 --> 00:37:23,840
Act.

795
00:37:23,840 --> 00:37:24,960
What the agent saw.

796
00:37:24,960 --> 00:37:26,200
What it decided.

797
00:37:26,200 --> 00:37:27,200
What it attempted.

798
00:37:27,200 --> 00:37:28,200
What failed.

799
00:37:28,200 --> 00:37:29,200
What it escalated.

800
00:37:29,200 --> 00:37:30,200
What it learned.

801
00:37:30,200 --> 00:37:31,200
What it should remember next time.

802
00:37:31,200 --> 00:37:33,520
If you don't model that explicitly, you still get it.

803
00:37:33,520 --> 00:37:35,200
You just get it in the worst places.

804
00:37:35,200 --> 00:37:36,440
Free text notes.

805
00:37:36,440 --> 00:37:37,640
Message transcripts.

806
00:37:37,640 --> 00:37:38,640
Scattered teams.

807
00:37:38,640 --> 00:37:39,640
Chats.

808
00:37:39,640 --> 00:37:40,640
Random SharePoint lists.

809
00:37:40,640 --> 00:37:44,600
And temporary logs that become permanent because nobody ever decommissions anything.

810
00:37:44,600 --> 00:37:47,920
This is where data verse becomes strategic in a way most teams don't expect.

811
00:37:47,920 --> 00:37:50,320
Data verse is not only where you store the truth.

812
00:37:50,320 --> 00:37:52,280
It becomes where you store the state.

813
00:37:52,280 --> 00:37:55,960
It is the thing agents require to behave consistently across time.

814
00:37:55,960 --> 00:37:57,400
What step is this process on.

815
00:37:57,400 --> 00:37:58,880
What was the last action taken.

816
00:37:58,880 --> 00:37:59,880
Who approved it.

817
00:37:59,880 --> 00:38:00,880
What exception was raised.

818
00:38:00,880 --> 00:38:01,880
What policy was applied.

819
00:38:01,880 --> 00:38:02,880
What input was missing.

820
00:38:02,880 --> 00:38:04,200
What confidence level did we have.

821
00:38:04,200 --> 00:38:06,040
What remediation occurred.

822
00:38:06,040 --> 00:38:09,840
If you don't give an agent structured state, you force it into probabilistic behavior.

823
00:38:09,840 --> 00:38:12,640
It guesses what happened based on what it can retrieve.

824
00:38:12,640 --> 00:38:13,840
That is not intelligence.

825
00:38:13,840 --> 00:38:16,360
That is conditional chaos with better vocabulary.

826
00:38:16,360 --> 00:38:20,080
The simple version is agents need memory and memory needs structure.

827
00:38:20,080 --> 00:38:23,040
In practical terms, the enterprise pattern looks like this.

828
00:38:23,040 --> 00:38:27,920
Agents read from data verse to get context and they write back to data verse to record outcomes.

829
00:38:27,920 --> 00:38:31,720
The model becomes the shared timeline of truth across humans and automation.

830
00:38:31,720 --> 00:38:34,480
You can see the platform pushing in this direction already.

831
00:38:34,480 --> 00:38:38,560
Microsoft's data verse team has been talking publicly about data verse as the data platform

832
00:38:38,560 --> 00:38:43,640
for agents, knowledge retrieval, functions, operational logs, and app experiences where

833
00:38:43,640 --> 00:38:45,840
humans review agent output.

834
00:38:45,840 --> 00:38:47,320
That's not marketing fluff.

835
00:38:47,320 --> 00:38:48,840
That's the inevitable architecture.

836
00:38:48,840 --> 00:38:52,240
This autonomous work without durable state is just repeated mistakes.

837
00:38:52,240 --> 00:38:54,360
Now here's the uncomfortable truth.

838
00:38:54,360 --> 00:38:57,480
Grounding reduces hallucination is a half truth.

839
00:38:57,480 --> 00:39:01,160
Grounding reduces hallucination only to the extent that the ground is stable, structured,

840
00:39:01,160 --> 00:39:02,480
and semantically navigable.

841
00:39:02,480 --> 00:39:06,280
If your model is weak, grounding just makes the agent confidently wrong faster.

842
00:39:06,280 --> 00:39:09,440
That's why agent readiness is not, do we have copilot studio?

843
00:39:09,440 --> 00:39:12,480
It's, can the system hold structured truth over time?

844
00:39:12,480 --> 00:39:15,480
This is where things like functions and reusable logic matter.

845
00:39:15,480 --> 00:39:20,480
A function is basically you extracting a repeatable business decision into a carlable unit.

846
00:39:20,480 --> 00:39:25,320
But a function still needs clean inputs, predictable identifiers, and meaningful relationships,

847
00:39:25,320 --> 00:39:27,320
otherwise you're automating confusion.

848
00:39:27,320 --> 00:39:30,680
And the logging side matters even more than most teams realize.

849
00:39:30,680 --> 00:39:33,000
When an agent fails, you need to know why.

850
00:39:33,000 --> 00:39:35,440
Not emotionally mechanically, what record did it operate on?

851
00:39:35,440 --> 00:39:36,680
What permissions did it have?

852
00:39:36,680 --> 00:39:38,480
What relationship path did it traverse?

853
00:39:38,480 --> 00:39:39,480
What rule blocked it?

854
00:39:39,480 --> 00:39:40,800
What environment was it in?

855
00:39:40,800 --> 00:39:42,440
What version of the solution was deployed?

856
00:39:42,440 --> 00:39:43,560
What data was missing?

857
00:39:43,560 --> 00:39:45,240
What exception pattern is repeating?

858
00:39:45,240 --> 00:39:48,160
If those answers are scattered, you don't have observability.

859
00:39:48,160 --> 00:39:50,920
You have storytelling.

860
00:39:50,920 --> 00:39:54,120
So the agentic future forces a new requirement.

861
00:39:54,120 --> 00:39:58,440
The model must be able to represent process history as data, not as narrative.

862
00:39:58,440 --> 00:40:03,440
That usually means new tables, agent runs, agent decisions, exceptions, approvals, escalations,

863
00:40:03,440 --> 00:40:04,760
human corrections, and outcomes.

864
00:40:04,760 --> 00:40:06,160
It means timestamps and owners.

865
00:40:06,160 --> 00:40:07,640
It means correlation IDs.

866
00:40:07,640 --> 00:40:11,480
It means explicit relationships between an agent's actions and the business record it acted

867
00:40:11,480 --> 00:40:12,480
on.

868
00:40:12,480 --> 00:40:15,640
This can feel like overhead until you operate at scale.

869
00:40:15,640 --> 00:40:18,960
Because the moment you have 10 agents touching the same business process, you'll discover

870
00:40:18,960 --> 00:40:22,720
the same law we've been circling all episodes scale multiplies everything, especially

871
00:40:22,720 --> 00:40:23,720
in consistency.

872
00:40:23,720 --> 00:40:24,920
So what changes for leaders?

873
00:40:24,920 --> 00:40:26,320
The app is no longer the product.

874
00:40:26,320 --> 00:40:28,440
The system of truth is agents will come and go.

875
00:40:28,440 --> 00:40:30,160
UI experiences will evolve.

876
00:40:30,160 --> 00:40:34,440
But the durable competitive advantage will be, can your organization model reality well

877
00:40:34,440 --> 00:40:35,440
enough?

878
00:40:35,440 --> 00:40:37,720
That autonomous work stays aligned with intent?

879
00:40:37,720 --> 00:40:41,760
That's the line between agents that help an agent that create noise.

880
00:40:41,760 --> 00:40:45,600
And once you accept that data versus where both business truth and operational memory live,

881
00:40:45,600 --> 00:40:48,520
the next scenario becomes obvious.

882
00:40:48,520 --> 00:40:51,280
Power platform at scale is not many apps.

883
00:40:51,280 --> 00:40:56,000
It's one model serving many experiences without rewriting itself every quarter.

884
00:40:56,000 --> 00:40:59,880
Scenario four, power platform at scale, one model, many apps.

885
00:40:59,880 --> 00:41:04,800
Power platform at scale is where every comfortable shortcut turns into a recurring incident.

886
00:41:04,800 --> 00:41:09,920
Because the promise stops being we built an app, the promise becomes we built a capability,

887
00:41:09,920 --> 00:41:12,000
capabilities don't live in a canvas screen.

888
00:41:12,000 --> 00:41:14,120
They live in the model at small scale.

889
00:41:14,120 --> 00:41:16,760
Teams can pretend each app is its own universe.

890
00:41:16,760 --> 00:41:21,120
A canvas app over here, a flow over there, a list somewhere, maybe a model driven app later,

891
00:41:21,120 --> 00:41:23,880
people hand wave integration as we'll connect it.

892
00:41:23,880 --> 00:41:25,760
Security as we lock it down.

893
00:41:25,760 --> 00:41:27,640
Reporting as power BI can figure it out.

894
00:41:27,640 --> 00:41:30,640
It feels manageable because the blast radius is small.

895
00:41:30,640 --> 00:41:33,240
Then the organization does what organizations always do.

896
00:41:33,240 --> 00:41:34,440
It repeats the pattern.

897
00:41:34,440 --> 00:41:36,520
A second app needs the same customer concept.

898
00:41:36,520 --> 00:41:38,880
A third app needs the same approval concept.

899
00:41:38,880 --> 00:41:40,800
A fourth app needs the same status concept.

900
00:41:40,800 --> 00:41:42,840
And suddenly you aren't building apps anymore.

901
00:41:42,840 --> 00:41:45,360
You're building a platform whether you admit it or not.

902
00:41:45,360 --> 00:41:47,800
This is where data verse reveals what it really is.

903
00:41:47,800 --> 00:41:50,800
A shared schema that multiple experiences converge on.

904
00:41:50,800 --> 00:41:55,920
Model driven apps canvas apps, power pages, power automate, co-pilot studio, power BI, none

905
00:41:55,920 --> 00:41:57,080
of them are the center.

906
00:41:57,080 --> 00:41:58,080
The model is.

907
00:41:58,080 --> 00:42:01,720
And once you have multiple consumers, the model stops being a background choice and becomes

908
00:42:01,720 --> 00:42:02,800
a scaling interface.

909
00:42:02,800 --> 00:42:06,320
The foundational mistake at scale is building for launch.

910
00:42:06,320 --> 00:42:09,800
Launch driven models optimize for the first UI and the first workflow.

911
00:42:09,800 --> 00:42:14,440
They don't optimize for the fifth app, the tenth flow, the first integration rewrite,

912
00:42:14,440 --> 00:42:17,240
or the first agent that needs context across entities.

913
00:42:17,240 --> 00:42:20,480
So when the next app shows up, the model gets tweaked.

914
00:42:20,480 --> 00:42:22,120
Columns get repurposed.

915
00:42:22,120 --> 00:42:23,680
Relationships get added late.

916
00:42:23,680 --> 00:42:24,960
Naming drifts.

917
00:42:24,960 --> 00:42:26,120
Choices get overloaded.

918
00:42:26,120 --> 00:42:29,080
And because the platform is flexible, it lets you ship.

919
00:42:29,080 --> 00:42:31,400
But the cost shows up as schema churn.

920
00:42:31,400 --> 00:42:34,200
Constant small changes that break things you forgot were dependent.

921
00:42:34,200 --> 00:42:38,240
That's why smart teams treat the data model as the platform, not as an artifact of a single

922
00:42:38,240 --> 00:42:39,240
app.

923
00:42:39,240 --> 00:42:40,240
One model, many apps is the point.

924
00:42:40,240 --> 00:42:44,720
It means you can build a model driven app for internal operations and a power pages portal

925
00:42:44,720 --> 00:42:47,480
for external users, both reading the same truth.

926
00:42:47,480 --> 00:42:52,280
It means you can build a canvas app for mobile scenarios without inventing a parallel schema.

927
00:42:52,280 --> 00:42:56,340
It means power automate flows don't have to translate between different versions of customer

928
00:42:56,340 --> 00:42:57,540
case or contract.

929
00:42:57,540 --> 00:43:01,240
It means reporting is an expression of the model, not a reconciliation project.

930
00:43:01,240 --> 00:43:06,080
And it means you can introduce AI without creating a new abstraction layer to compensate

931
00:43:06,080 --> 00:43:07,840
for a fragmented data story.

932
00:43:07,840 --> 00:43:10,480
That's the leverage, reuse and consistency.

933
00:43:10,480 --> 00:43:13,280
Not as a best practice as a survival mechanism.

934
00:43:13,280 --> 00:43:15,360
Because at scale, the enemy is not missing features.

935
00:43:15,360 --> 00:43:16,680
The enemy is in consistency.

936
00:43:16,680 --> 00:43:18,840
In consistency creates integration rewrites.

937
00:43:18,840 --> 00:43:20,360
It creates security exceptions.

938
00:43:20,360 --> 00:43:21,840
It creates reporting disputes.

939
00:43:21,840 --> 00:43:23,640
It creates AI prompt attacks.

940
00:43:23,640 --> 00:43:25,880
And then teams call it governance overhead.

941
00:43:25,880 --> 00:43:29,520
When the real overhead is relearning the same concept in four different apps.

942
00:43:29,520 --> 00:43:33,000
This is also where standards stop being bureaucracy and start being speed.

943
00:43:33,000 --> 00:43:35,640
A stable naming scheme becomes a multiplier.

944
00:43:35,640 --> 00:43:36,800
Descriptions become a multiplier.

945
00:43:36,800 --> 00:43:39,080
A clear ownership pattern becomes a multiplier.

946
00:43:39,080 --> 00:43:42,120
A relationship first approach becomes a multiplier.

947
00:43:42,120 --> 00:43:44,040
Solutions and environments become a multiplier.

948
00:43:44,040 --> 00:43:49,080
Because the organization can add new apps without forcing a remodel of reality every time.

949
00:43:49,080 --> 00:43:52,400
Blendsline, data verse gives meaning to the data you keep.

950
00:43:52,400 --> 00:43:53,600
Lands differently here.

951
00:43:53,600 --> 00:43:55,560
At scale, meaning is not philosophical.

952
00:43:55,560 --> 00:43:56,560
It's operational.

953
00:43:56,560 --> 00:43:59,440
Meaning is what prevents the fifth app from breaking the first app.

954
00:43:59,440 --> 00:44:03,800
Meaning is what lets the sixth flow reuse the same relationships without inventing new

955
00:44:03,800 --> 00:44:04,800
joins.

956
00:44:04,800 --> 00:44:08,520
Meaning is what makes an agent retrieve the right context without you hand holding it.

957
00:44:08,520 --> 00:44:10,280
And this is where the paradox shows up.

958
00:44:10,280 --> 00:44:13,680
Teams that obsess over delivery speed at the start move slower later.

959
00:44:13,680 --> 00:44:17,160
Teams that invest in modeling intent early move faster forever.

960
00:44:17,160 --> 00:44:20,360
Not because they're more mature, because they reduce their degrees of freedom.

961
00:44:20,360 --> 00:44:23,160
They constrain the system into predictable shapes.

962
00:44:23,160 --> 00:44:25,280
They made the platform boring in the right places.

963
00:44:25,280 --> 00:44:28,680
So when an executive asks why are we spending time on the model?

964
00:44:28,680 --> 00:44:31,880
The correct answer is because this is the only part that can scale.

965
00:44:31,880 --> 00:44:32,880
Screens don't scale.

966
00:44:32,880 --> 00:44:33,880
People don't scale.

967
00:44:33,880 --> 00:44:34,880
Meetings don't scale.

968
00:44:34,880 --> 00:44:35,880
A coherent model scales.

969
00:44:35,880 --> 00:44:39,560
And once you're operating one model across many apps, you start seeing the failure modes

970
00:44:39,560 --> 00:44:40,560
early.

971
00:44:40,560 --> 00:44:41,560
You can spot them.

972
00:44:41,560 --> 00:44:42,560
You can name them.

973
00:44:42,560 --> 00:44:44,400
You can stop them before they become architectural erosion.

974
00:44:44,400 --> 00:44:45,560
That's the next step.

975
00:44:45,560 --> 00:44:49,360
Call out the anti-patterns that leaders must recognize before low-code innovation turns

976
00:44:49,360 --> 00:44:51,600
into high-code cleanup.

977
00:44:51,600 --> 00:44:53,920
Anti-patterns leaders must recognize early.

978
00:44:53,920 --> 00:44:55,920
Every platform has failure modes.

979
00:44:55,920 --> 00:44:58,920
Dataverse just makes them more expensive because it can scale them.

980
00:44:58,920 --> 00:45:03,000
So if leadership wants a real advantage, it isn't more makers or more apps.

981
00:45:03,000 --> 00:45:07,080
It's learning to spot the patterns that quietly turn a semantics engine into a storage

982
00:45:07,080 --> 00:45:09,040
bin with delusions of governance.

983
00:45:09,040 --> 00:45:10,640
These are the anti-patterns.

984
00:45:10,640 --> 00:45:13,920
Name them early, because once they ship, they become political.

985
00:45:13,920 --> 00:45:17,120
First, the one table trap.

986
00:45:17,120 --> 00:45:19,880
We'll start with one table and add columns as we go.

987
00:45:19,880 --> 00:45:22,200
It feels fast because it is fast.

988
00:45:22,200 --> 00:45:26,880
While the table becomes a junk draw for three different nouns, then reporting becomes conditional

989
00:45:26,880 --> 00:45:31,160
logic, security becomes unexplainable and integrations can't tell what a row even is.

990
00:45:31,160 --> 00:45:32,160
That's not an MVP.

991
00:45:32,160 --> 00:45:33,560
That's semantic collapse.

992
00:45:33,560 --> 00:45:36,360
Second, SharePoint as a database.

993
00:45:36,360 --> 00:45:37,920
SharePoint can store lists and files.

994
00:45:37,920 --> 00:45:39,440
It can't enforce reality at scale.

995
00:45:39,440 --> 00:45:44,600
So teams simulate relationships with lookups, repeated values, and compensating flows.

996
00:45:44,600 --> 00:45:48,680
Until thresholds, delegation limits, and audit ambiguity show up, then they don't

997
00:45:48,680 --> 00:45:49,680
migrate.

998
00:45:49,680 --> 00:45:50,680
They optimize the workaround.

999
00:45:50,680 --> 00:45:52,600
Third, Screen-driven modeling.

1000
00:45:52,600 --> 00:45:53,960
The UI becomes the schema.

1001
00:45:53,960 --> 00:45:57,640
You build tables to match the form and the model becomes a screenshot.

1002
00:45:57,640 --> 00:45:59,320
The tell is step-shaped columns.

1003
00:45:59,320 --> 00:46:01,600
Approval two, step three complete.

1004
00:46:01,600 --> 00:46:05,680
Because you embedded a workflow engine inside a table, every process change becomes a schema

1005
00:46:05,680 --> 00:46:06,680
change.

1006
00:46:06,680 --> 00:46:09,240
Fourth, Copy-Paste Environment Syndrome.

1007
00:46:09,240 --> 00:46:14,200
Teams clone broken assumptions across dev, test, prod, and call it ALM.

1008
00:46:14,200 --> 00:46:18,920
Then prod drifts, unmanaged overrides, pile up, and nobody trusts what version means.

1009
00:46:18,920 --> 00:46:21,000
Everything becomes theater.

1010
00:46:21,000 --> 00:46:22,640
You don't refute these with KPIs.

1011
00:46:22,640 --> 00:46:24,640
You refute them with consequences.

1012
00:46:24,640 --> 00:46:29,880
Fewer breaking schema changes after go live, simpler audit answers, less prompt gymnastics

1013
00:46:29,880 --> 00:46:34,000
and new apps, launched without renegotiating what words mean.

1014
00:46:34,000 --> 00:46:36,360
If meaning isn't in the model, it isn't in the system.

1015
00:46:36,360 --> 00:46:38,920
It's in people's heads, and people's heads don't scale.

1016
00:46:38,920 --> 00:46:42,560
And what smart teams do differently, modeling for change?

1017
00:46:42,560 --> 00:46:44,240
Smart teams don't model better.

1018
00:46:44,240 --> 00:46:45,840
They model with a different purpose.

1019
00:46:45,840 --> 00:46:47,400
Most teams model to ship.

1020
00:46:47,400 --> 00:46:49,080
And then the team's model to survive change.

1021
00:46:49,080 --> 00:46:52,280
That distinction matters because dataverse doesn't punish you for launching.

1022
00:46:52,280 --> 00:46:53,760
It punishes you for drifting.

1023
00:46:53,760 --> 00:46:57,720
Over time, your model either stays coherent or it becomes a pile of exceptions that only

1024
00:46:57,720 --> 00:46:59,520
the original builders can interpret.

1025
00:46:59,520 --> 00:47:01,200
So what do smart teams do differently?

1026
00:47:01,200 --> 00:47:02,480
They start with intent, not UI.

1027
00:47:02,480 --> 00:47:05,640
They don't begin with what fields should be on the form.

1028
00:47:05,640 --> 00:47:09,760
They begin with what concepts exist, what do they mean, and what is the smallest set

1029
00:47:09,760 --> 00:47:13,120
of nouns we can standardize without lying to ourselves.

1030
00:47:13,120 --> 00:47:17,240
Then they design relationships to encode those nouns and only then do they build screens

1031
00:47:17,240 --> 00:47:19,960
because screens are consumption, the model is definition.

1032
00:47:19,960 --> 00:47:21,800
Second, they design for additive change.

1033
00:47:21,800 --> 00:47:24,040
Most organizations treat change like a rewrite.

1034
00:47:24,040 --> 00:47:26,840
They refactor schemas because they didn't leave space for evolution.

1035
00:47:26,840 --> 00:47:31,320
Smart teams assume change is constant, so they bias toward patterns that can expand

1036
00:47:31,320 --> 00:47:33,240
without breaking existing meaning.

1037
00:47:33,240 --> 00:47:37,920
That usually means stable identifiers, clear primary names, and columns that don't change

1038
00:47:37,920 --> 00:47:39,560
semantics every quarter.

1039
00:47:39,560 --> 00:47:45,440
If a field starts as department and later becomes cost center, they don't reuse the field.

1040
00:47:45,440 --> 00:47:50,760
They add a new one, deprecate the old, and preserve meaning because reusing fields is

1041
00:47:50,760 --> 00:47:52,640
how you corrupt history.

1042
00:47:52,640 --> 00:47:54,400
Dataverse will store your data forever.

1043
00:47:54,400 --> 00:47:55,680
The model should respect that.

1044
00:47:55,680 --> 00:47:58,600
Third, they treat metadata like a product surface.

1045
00:47:58,600 --> 00:48:00,400
Names are not decoration.

1046
00:48:00,400 --> 00:48:01,440
Descriptions are not optional.

1047
00:48:01,440 --> 00:48:03,320
Choice labels are not good enough.

1048
00:48:03,320 --> 00:48:07,240
If an agent is going to query your model, your metadata is part of the interface contract.

1049
00:48:07,240 --> 00:48:09,400
So smart teams document intent inside the model.

1050
00:48:09,400 --> 00:48:14,160
Table descriptions, column descriptions, meaningful relationship names, and consistent vocabulary.

1051
00:48:14,160 --> 00:48:18,600
They also treat synonyms deliberately where AI will depend on them because customer in one

1052
00:48:18,600 --> 00:48:21,480
team and client in another is not a language problem.

1053
00:48:21,480 --> 00:48:23,040
It's a model problem.

1054
00:48:23,040 --> 00:48:27,600
Fourth, they use constraints as guardrails, not as friction.

1055
00:48:27,600 --> 00:48:31,680
They embrace what dataverse enforces, ownership, security roles, relationship behaviors, and

1056
00:48:31,680 --> 00:48:32,680
environment boundaries.

1057
00:48:32,680 --> 00:48:35,960
They don't try to bypass those because it slows us down.

1058
00:48:35,960 --> 00:48:37,960
They know the bypass becomes permanent.

1059
00:48:37,960 --> 00:48:41,240
So they choose referential versus parental behavior deliberately.

1060
00:48:41,240 --> 00:48:43,960
They restrict deletes where evidence matters.

1061
00:48:43,960 --> 00:48:47,440
They model many to many as an entity when the association has attributes.

1062
00:48:47,440 --> 00:48:50,080
They refuse to hide core concepts inside text.

1063
00:48:50,080 --> 00:48:53,600
This is what enforcing assumptions at scale actually looks like.

1064
00:48:53,600 --> 00:48:56,680
The platform does the enforcement so humans don't have to remember.

1065
00:48:56,680 --> 00:48:59,480
Fifth, they make ILM part of the model strategy.

1066
00:48:59,480 --> 00:49:02,400
They don't treat environments and solutions as release mechanics.

1067
00:49:02,400 --> 00:49:04,360
They treat them as meaning protection.

1068
00:49:04,360 --> 00:49:06,520
Development is where ideas are allowed to be wrong.

1069
00:49:06,520 --> 00:49:08,480
Test is where behavior is validated.

1070
00:49:08,480 --> 00:49:10,520
Production is where meaning becomes contract.

1071
00:49:10,520 --> 00:49:15,480
And solutions are how they transport that contract without letting random changes accumulate in

1072
00:49:15,480 --> 00:49:16,480
the active layer.

1073
00:49:16,480 --> 00:49:20,160
They choose managed deployments once they leave experimentation because the goal is not

1074
00:49:20,160 --> 00:49:21,160
freedom.

1075
00:49:21,160 --> 00:49:22,160
The goal is determinism.

1076
00:49:22,160 --> 00:49:25,480
Six, they build a shared ownership model, not a hero culture.

1077
00:49:25,480 --> 00:49:28,760
They name a model owner, not as a committee, as a role with authority.

1078
00:49:28,760 --> 00:49:30,080
That owner doesn't gatekeep.

1079
00:49:30,080 --> 00:49:31,080
They curate.

1080
00:49:31,080 --> 00:49:32,080
They reduce duplication.

1081
00:49:32,080 --> 00:49:33,400
They kill junk tables.

1082
00:49:33,400 --> 00:49:35,960
They protect core concepts from becoming junk draws.

1083
00:49:35,960 --> 00:49:40,320
They say no to entropy generators and they say yes to changes that preserve meaning.

1084
00:49:40,320 --> 00:49:44,280
This is where leadership actually shows up, not by approving app ideas, by funding the discipline

1085
00:49:44,280 --> 00:49:48,200
that keeps the platform coherent when the org inevitably scales.

1086
00:49:48,200 --> 00:49:51,760
And the final difference is the one most teams don't want to hear.

1087
00:49:51,760 --> 00:49:54,920
Smart teams measure success by how boring the model becomes.

1088
00:49:54,920 --> 00:49:57,640
If the model stops changing every week, that's not stagnation.

1089
00:49:57,640 --> 00:49:58,640
That's stability.

1090
00:49:58,640 --> 00:50:01,360
If new apps can ship without schema churn, that's not luck.

1091
00:50:01,360 --> 00:50:02,360
That's architecture.

1092
00:50:02,360 --> 00:50:05,920
If audits stop being drama and start being routine, that's not because you wrote better

1093
00:50:05,920 --> 00:50:06,920
documents.

1094
00:50:06,920 --> 00:50:09,560
It's because the system behaves predictably under stress.

1095
00:50:09,560 --> 00:50:14,200
But if AI agents can retrieve context without prompt novels, that's not because the agent

1096
00:50:14,200 --> 00:50:15,200
is smarter.

1097
00:50:15,200 --> 00:50:17,600
It's because your model stopped forcing it to guess.

1098
00:50:17,600 --> 00:50:21,120
So if you want the simplest practical move you can make tomorrow, it's this.

1099
00:50:21,120 --> 00:50:24,800
Before you build your next app, write down the nouns, define them.

1100
00:50:24,800 --> 00:50:28,840
Decide ownership, decide relationships, decide what status means, decide which concepts are

1101
00:50:28,840 --> 00:50:31,640
global and which are local, then build screens.

1102
00:50:31,640 --> 00:50:35,560
Because local doesn't reduce thinking, it just accelerates the consequences of not doing

1103
00:50:35,560 --> 00:50:36,560
it.

1104
00:50:36,560 --> 00:50:37,560
Conclusion.

1105
00:50:37,560 --> 00:50:39,880
Build, smarter today or pay later.

1106
00:50:39,880 --> 00:50:42,200
The future isn't built by better apps.

1107
00:50:42,200 --> 00:50:46,520
It's built by better models of reality that can survive audits, scale and AI.

1108
00:50:46,520 --> 00:50:51,760
If you want a grounded reset on the fundamentals, go watch BooLand AltinSoy's Dataverse 101

1109
00:50:51,760 --> 00:50:55,360
session next, then challenge your next app idea.

1110
00:50:55,360 --> 00:51:00,160
Name the business concepts, define the relationships and decide ownership before you design a single

1111
00:51:00,160 --> 00:51:01,160
screen.

1112
00:51:01,160 --> 00:51:05,120
Subscribe for more strategy first breakdowns across Dataverse, Power Platform and

1113
00:51:05,120 --> 00:51:07,680
co-pilot and watch that workshop right after this.