Skip to main content

The Problem: Current State of Enterprise Development

The Traditional Development Lifecycle

A typical cycle for developing a new enterprise system comprises several milestones, each with significant overhead:

Phase 1 — Requirements Gathering (4–8 weeks)

  • Business analysts conduct interviews and workshops
  • Output: Software Requirements Specification (SRS)
  • Written in natural language — ambiguous and interpretable
  • Requires domain expert sign-off
  • Changes require formal change control

Phase 2 — System Design (2–4 weeks)

  • Architects interpret the SRS document
  • Frequent clarification meetings with analysts
  • Output: architecture and design documents
  • Translation losses begin here

Phase 3 — Implementation (8–16 weeks)

  • Developers write code based on design docs
  • Must understand business context (they often don't)
  • Traceability requires manual effort
  • DevOps engineers set up CI/CD pipelines
  • Code diverges from original requirements

Phase 4 — Testing (4–8 weeks)

  • Testers write automation tests
  • Manual testing for complex scenarios
  • Test cases may not cover actual requirements
  • Bugs found → back to implementation

Phase 5 — Release (1–2 weeks)

  • Release manager assesses readiness
  • Manual deployment procedures
  • Hope nothing breaks in production

Total Time: 19–38 weeks Roles involved: BA, Architect, Developer, Tester, DevOps, Release Manager Overhead: 40–60% of effort doesn't directly add features

The Hidden Costs

1. Communication Overhead

Every handoff between roles introduces translation losses:

2. Change Management Burden

When requirements change (and they always do):

ActivityTraditional Approach
Update SRS2-4 hours
Update design docs2-4 hours
Developer implements4-40 hours
Tester updates tests2-8 hours
DevOps updates pipelines1-4 hours
Total for one change11-60 hours

3. Knowledge Silos

  • Business logic lives in developer's heads
  • "Ask John, he wrote that plugin"
  • When John leaves, knowledge leaves

4. Technical Debt

  • Separate documentation becomes fiction
  • Tests don't match reality
  • No one knows what the system actually does

The Dynamics 365 CE Challenge

Microsoft Dynamics 365 Customer Engagement (CE) promises to be a low-code solution for building business applications. This promise is only partially fulfilled.

The Reality of Dynamics 365 CE

Dynamics 365 CE — Promise vs Reality
The Promise
"Empower citizen developers"
"No-code business rules"
"Visual workflow designer"
"Rapid application development"
"Business users in control"
The Reality
Developers write plugins
C# code for complex rules
Code activities required
Months of development
IT bottleneck for changes
What Functional Consultants Can Do (without developers)
Create entities and fields
Design forms and views
Configure simple workflows
Set up basic business rules
Complex calculations← Needs developer
Multi-entity validations← Needs developer
Advanced process automation← Needs developer
External integrations← Needs developer
Custom APIs← Needs developer
Sophisticated branching logic← Needs developer
The Result
60–70% of customizations require developer involvement
Functional consultants depend on and must trust developers
Business logic is hidden in compiled .NET assemblies
Traceability from requirements to implementation is lost
Changes require developer availability (bottleneck)

Specific Dynamics 365 CE Limitations

LimitationImpact
Plugin DevelopmentComplex logic requires C# plugins, needs Visual Studio, deployment complexity
Workflow ActivitiesCustom activities need .NET development
Business RulesLimited to simple field-level logic
Process FlowsNative BPF has severe limitations (linear, no complex branching)
API DevelopmentBuilding REST APIs requires significant backend development
DeploymentManual, error-prone solution management
TestingNo built-in test generation from requirements

The Cost Summary

ProblemBusiness Impact
Long Development CyclesDelayed time-to-market, missed opportunities
High Development CostsDeveloper salaries, external consultants
Developer BottleneckChanges blocked waiting for developer availability
Knowledge LossTurnover leads to lost institutional knowledge
Compliance RiskDocumentation doesn't match implementation
Technical DebtAccumulated complexity slows future development

Next Steps