Common pattern mistakes for team development
The Power Platform allows teams to apply common continuous integration and continuous deployment (CI/CD) patterns with unmanaged and managed solutions. This module will cover a common anti-pattern developers follow when beginning development for the Power Platform, followed by a more optimal approach.
The most common pattern seen historically when working with a solution is the development and deployment of unmanaged solutions. As seen in the graphic below, this pattern leads to an unhealthy state in the production environment as more solutions are added over time.
In the early phases of development, deploying unmanaged solutions is common because it is perceived to decrease deployment times and reduce complexity. Teams often place their development changes into a new unmanaged solution for deployment to production. Over time, the addition of new unmanaged solutions leads to a multitude of unmanaged solutions in production and an unhealthy production environment, causing maintainability and supportability to suffer. These organizations miss the opportunity to use source control, solution layering, and efficiencies gained from using managed solutions for deployment, which will be discussed in the following section.
Pitfalls:
When new unmanaged solutions are used for each deployment, it is not possible to apply solution source control.
Improvements in deployment times are marginal, especially when compared to a healthy deployment pattern applying managed solutions, solution segmentation, and source control as the definitive source of truth.
A better pattern for team development
A better pattern for team development involves the use of one or more development environments, enabling multiple developers to efficiently collaborate on the creation of new content.
In this optimized development loop:
Developers make changes in their respective environments.
Changes in those environments are exported, then checked into source control.
The action of checking a solution into source control may trigger one of several events, such as a build process to move the solution to downstream environments.
Modern approach to solution development
Watch the following video for a demonstration of how continuous integration supports a modern way for developing solutions.
Support team development
Every software journey starts with a plan. Setting up Automated Lifecyle Management (ALM) for the Power Platform is no different.
Planning is not the focus of this module. However, to avoid many common issues in team development, an effective process for work item planning and management must be in place.
Consider the following:
Work items should be minimal, specific, and time bound
Plan development to ensure little to no overlap of components. For example, avoid working on the same form at the same time. Co-development of the same components will often lead to conflicts and, potentially, creators overwriting one another’s changes when working in the same environment.
Note that while it is not a requirement to have a resource dedicated to maintaining a team’s ALM processes, doing so demonstrably leads to better outcomes as a projects scale.