Well, after reading documentation around application lifecycle management (ALM) and solutions, particularly organizing solutions and supporting team development I have designed a sample solution organization strategy that I want to apply for an existing project. I want to discuss and refine that design here.
For this sample, I have considered a Microsoft Power Platform environment having Dataverse and first party D365 Sales and Customer Service solutions installed.
In base solution there would be
- Out of the box base tables with new or changed components that refer only to the base solution tables and components. So, for instance, account form having sub grids referring custom sales tables would be created/added through sales solution.
- Custom base tables with all components referring to base solution components (including components created by adding new table to the solution)
- Plugins and workflows referring only to base solution components
Similarly, in Sales and CS solutions
- OOB Sales and CS tables with new or changed components
- Custom Sales and CS tables with all components
- Components of base tables referring to Sales or CS solutions (for e.g. forms having Sales or CS table sub grid or views having columns from Sales or CS tables)
- Plugins and workflows referring to Sales and CS solution components.
- Plugins and workflows related to base solution tables and referring Sales and CS solution components.
In Shared Components solution
Components that are shared across solutions (i.e. both Sales and CS solutions in this sample)
- Custom tables related to both Sales and CS tables
- Any plugins and workflows referring to both Sales and CS solution components
- Security roles, dashboards and SSRS reports
Apart from above mentioned solutions, I have created a separate solution for custom connectors. But I think these could be added to Shared Components solution also. I am not sure what would be the good practice.
And then separate solutions for apps and flows. I could gather them in one solution but keeping in mind developer isolation scenario where two different developers have to work on apps and flows, I think keeping them separate would be good.
I am not 100% sure I have transformed the information provided in documentation into a good solution organization sample or not. So, please discuss and help me in correcting and refining the sample solution organization strategy. Please see the visual added below.
Best regards,
Khadim Ali
