Skill 122 · D365 Solution Blueprint
Subchapter 122.1
references/section-guide.mdMarkdown16 KBView on GitHub
Load only the sections in play. Each entry gives what the section decides, the questions to ask, option sets where a real architectural choice exists, and the trap to watch for.
⚑ marks a load-bearing decision. Do not let the session move past it without either a decision or a named owner and blocking date.
Track A - Foundation: 1 Programme context | 2 Scope ⚑ | 3 Target operating model
Track B - Solution: 4 Application architecture ⚑ | 5 Data architecture ⚑ | 6 Integration architecture
Track C - Data and control: 7 Data migration ⚑ | 8 Security and licensing
Track D - Platform: 9 Environment and ALM | 10 Reporting and analytics | 11 Performance and volumetrics
Track E - Delivery: 12 Test strategy | 13 Deployment and cutover ⚑ | 14 Support and operating model
Decides: why this programme exists, what success looks like, and what is genuinely non-negotiable. Everything downstream gets prioritised against this.
Ask:
Trap: an efficiency business case that depends on process change nobody has agreed to make.
Produces: drivers, measurable objectives, sponsor and governance, fixed constraints, and programme history.
Decides: which applications, modules, legal entities, countries, and deployment waves are in scope.
Ask:
Options to propose - phasing:
| Approach | Works when | Costs you |
|---|---|---|
| Big bang | Scope is compact or highly interdependent | Highest single-point cutover risk; no learning between waves |
| By geography / legal entity | Units can operate semi-independently | Longer dual-running and interim integration complexity |
| By module | A clear functional sequence is justified | Temporary integration between D365 and legacy processes |
| Pilot then rollout | Many similar entities support a template approach | First wave absorbs template learning and needs strong governance |
Always ask what the interim-state integrations and controls will cost.
Trap: legal-entity structure copied from the legacy system without testing whether the reasons still apply.
Produces: application/module scope, legal-entity register, country/localisation scope, explicit out-of-scope statement, and wave plan.
Decides: how the business will run after go-live and which processes D365 supports.
Ask:
Options to propose - standard-first posture:
| Posture | Statement | Suits |
|---|---|---|
| Strict standard | Business adapts unless a statutory constraint requires otherwise | Cost-led programmes with strong change appetite |
| Standard with justified exception | Extensions require a documented business/regulatory reason and named approval authority | Most enterprise implementations |
| Fit to process | System adapts heavily to existing business process | Rarely defensible without clear value and lifecycle-cost acceptance |
Trap: “use standard wherever possible” without a threshold, approval forum, or authority to reject gaps.
Produces: operating model summary, process architecture, process ownership, and gap-governance posture.
Decides: the application landscape, instance strategy, ISVs, Power Platform role, and extension posture.
Ask:
Options to propose - logic placement:
| Layer | Use for | Avoid when |
|---|---|---|
| D365 configuration | Parameters, workflow, policies, standard behaviour | The requirement genuinely needs new business logic |
| Electronic Reporting | Documents, regulatory formats, file-generation scenarios | Complex transactional logic |
| Power Platform | Task apps, approvals, lightweight orchestration | High-volume transaction processing requiring ERP consistency |
| X++ extension | ERP business logic requiring transactional consistency | Standard configuration or lower-code options can meet the need |
| External service | Specialist domains and decoupled capabilities | It creates a platform the organisation cannot operate |
Trap: an ISV selected before architecture without testing update compatibility, support model, and exit strategy.
Produces: application landscape, instance decision, ISV register, Power Platform scope, and extension governance.
Decides: chart of accounts, financial dimensions, product model, master-data ownership, and Dataverse/dual-write scope.
Ask:
Options to propose - dimension design:
| Approach | Consequence |
|---|---|
| Few, governed dimensions | Cleaner posting, easier adoption, simpler reporting |
| Many optional dimensions | Flexible analysis but higher complexity, weaker data quality, and larger cardinality |
For each proposed dimension ask: which report or decision does it serve, and who consumes it?
Trap: product/inventory dimension decisions made in isolation from costing, warehouse, quality, and reporting teams.
Produces: COA/dimension design, product model, master-data ownership matrix, dual-write scope, and failure behaviour.
Decides: the interface landscape, pattern principles, middleware direction, and failure-design standards.
Ask:
Pattern options:
| Pattern | Suits | Watch |
|---|---|---|
| OData / custom service | Low-volume synchronous access | Throttling and synchronous coupling |
| Data management / recurring integration | Batch and bulk movement | Latency, staging, and error handling |
| Business events | Event-driven notifications | Duplicate delivery and idempotency |
| Dual-write | Near-real-time F&O/Dataverse synchronization | Coupling and failure behaviour |
| Service Bus / Logic Apps | Decoupling, retry, orchestration | Additional platform ownership and operations |
| Analytics export/Fabric path | Reporting and analytics consumption | Not an operational write pattern |
For critical interfaces, require retry, poison-message handling, idempotency, alerting, ownership, and reconciliation at blueprint level.
Trap: interface inventory sized on average volume and designed only for the happy path.
Produces: inventory, pattern principles, middleware decision, failure principles, and ownership model.
Decides: what data moves, how history is handled, how opening balances are treated, and how correctness is proved.
Ask:
Options to propose - history:
| Approach | Cost | Consequence |
|---|---|---|
| Migrate detailed history | Highest reconciliation and database cost | Full in-system history |
| Keep legacy read-only | Ongoing legacy access cost | Fastest migration, weaker user experience |
| Extract to archive / analytics store | Moderate implementation cost | Often a strong reporting compromise |
Trap: historical migration requested by habit rather than a legal, audit, or operational need.
Produces: migration scope, history decision, opening-balance strategy, cleansing ownership, reconciliation, sign-off model, and tooling direction.
Decides: security principles, segregation-of-duties requirements, data-access boundaries, licensing shape, and access administration.
Ask:
Trap: licence entitlement agreed before role design and never revalidated against actual access.
Produces: role-family model, SoD expectations, compliance constraints, XDS need, indicative licence shape, and access-admin model.
Decides: environment topology and how code/configuration move through the landscape.
Ask:
Trap: environment planning sized for build but not for migration rehearsals, UAT, training, and cutover concurrently.
Produces: environment topology, refresh strategy, golden configuration approach, branching/pipeline design, and update governance.
Decides: which information products are required and which technologies serve them.
Ask:
Tool-selection examples:
| Need | Candidate approach |
|---|---|
| Financial statements | Financial reporting capabilities |
| Operational documents and statutory formats | SSRS / Electronic Reporting where applicable |
| Operational enquiry | Standard D365 views and workspace capabilities |
| Cross-functional dashboards | Power BI |
| Enterprise analytics | Fabric / governed data platform |
| Ad-hoc finance analysis | Excel integration where appropriate |
Trap: “real time” requested without connecting latency to an actual decision cadence.
Produces: report inventory, latency requirements, tool mapping, analytics direction, statutory approach, and ownership.
Decides: whether the design can support expected production load and what must be tested later.
Ask:
Trap: annual averages used where peak-hour or period-end demand is the real design driver.
Produces: volumetric baseline, growth projection, concurrency profile, batch-window constraints, and performance acceptance targets.
Decides: how quality is proven before go-live and maintained through future service updates.
Ask:
Trap: no regression automation and no funded manual regression capacity.
Produces: test-level model, traceability approach, test-data strategy, automation decision, exit criteria, and severity model.
Decides: the shape of go-live and the constraints a later detailed runbook must satisfy.
Ask:
Trap: a cutover window based on preference rather than measured full-volume migration timings.
Produces: deployment approach, cutover-window constraint, parallel-running decision, rollback position, and go/no-go authority.
Decides: who runs the solution after implementation and how knowledge, updates, support, and change are governed.
Ask:
Trap: knowledge-transfer plans with roles or teams named but no actual recipients allocated.
Produces: support tiers and ownership, hypercare model, knowledge-transfer plan, update governance, and change process.