This is the first of many discussions into ALM strategy form Power Platform. In this installment I dive into the most fundamental question of any Power Platform ALM strategy:
How should I structure my solutions to enable a robust and reliable ALM strategy that enables and enhances the work of developers and functionals?
I have worked with two primary structuring methodoligies:
- Component-based solutions
- Feature-based solutions
- Hybrid - Feature-based with component-based sub-solutions
Summary of Methods
| Area | Component Based | Feature Based |
|---|---|---|
| Environemnts | Only requires a single development environment | Development environment per feature solution |
| Management | Easy to manage | Overhead due to number of development environments, feature import order, compoment layering |
| Change Location | Easy to understand where to make a change | Hard to know which feature to change a component |
Component Based
The easiest solution to understand and implement, a component based strategy can be summarised as:
Segregate solution components by their type, where a solution contains one or more types of solution components
This most commonly follows a logical solution component breakdown simiar to:
| Solution | Components |
|---|---|
| Data Model | Tables (including all sub components), Choices, Commands, Web Resources, Security Roles, Column Security Profiles, Custon Controls, Dashboards, Duplicate Detection Rules |
| Apps | Model Driven Apps, Canvas Apps, Custom Pages |
| Automation | Cloud Flows, Classic Processes, Plugins, Custom Actions, Connection References, Evnrionment Variables |
| Portal | Power Pages Portal (ehanced data model) |
You may opt to break these into smaller solutions:
| Solution | Components |
|---|---|
| Web Resources | Web Resources, Custom Controls |
| Apps | Model Driven Apps, Canvas Apps, Custom Pages |
| Data Model | Tables (including all sub components), Choices, Commands, Dashboards, Duplicate Detection Rules |
| Security Model | Security Roles, Column Security Profiles |
| Automation | Cloud Flows, Classic Processes, Custom Actions, Connection References, Evnrionment Variables |
| Plugins | Plugins, Custom Action Plugins, Evnrionment Variables |
| Automatic Record Creation | Cloud Flows, Routing Rule Sets, Record Creation and Update Rules |
| Portal | Power Pages Portal (ehanced data model) |
Dependencies between layers is tricky, so these solutions are listed in a recommended import order.
