Solutions for either Model-driven PowerApps, or for extensions to First-party Dynamics 365 Customer Engagement apps share a lot in common. In fact, almost everything in common. What they do not share in common among each other, or themselves, is quality of build. Customers, Partners and ISVs all build Solutions for various reasons, and the quality is wide-ranging.
Who uses Solutions?
Unless your business requirements happen to fit exactly into the out of the box first-party applications, a circumstance so rare that I have never seen it, Solutions are going to come into play. They serve a few purposes, for Customer deployments, a Solution is where you, or your Partner, should do your customizations to make the product fit your needs. While many will just use the “Customize Button”, which will then allow you to make changes to the “Default” Solution, I am not a fan of that. It may add a step or two, but making your customizations in a new Solution of your own will make managing them a lot easier over time. There is another reason for this approach that I will get to in a minute.
Solutions are also the primary vehicle for ISVs to get their IP into your environment in a manageable way. Either by directly installing them, or installing them via AppSource. Whether it is a custom vertical solution built directly on the CDS platform, or an addon solution extending the First-party apps, Solutions is how they will get in there.
Beauty is in the Eye of the Beholder
If you were to crack open a typical solution, you would see a lot of stuff. That stuff could have been put together by a highly skilled Business Applications Developer, or a Citizen Developer who is an expert at Googling. Needless to say, the quality of the Solution will vary widely. Just because something works, does not mean it was built well. Working in the App Designer, a citizen developer can’t get in too much trouble, Microsoft has abstracted some of the more complex capabilities away. You may build something that does not work, or is not efficient, but you “should” not have to worry too much about breaking anything.
While Microsoft came up for a term for the Citizen Developer, I did not hear a term for those of us who are expert at this, so I am going to call us Pro Developers. Pro Developer sounds highfalutin, but actually the quality of build varies just as greatly there. The fact is, that anyone can hang up a shingle and call themselves a Pro Developer… how would you know. Sure there are certifications and competencies, but as many freelancers pointed out in this post, that does not prove expertise. Well Microsoft has couple of new tools to help.
PowerApps Solution Checker
The PowerApps Solution Checker is a new tool that will be available to both Citizen and Pro developers soon. This tool, when installed on your instance, yes it is a Solution also, will activate some capabilities for you. Once installed, you can go to https://web.powerapps.com, open up your environment, select an “unmanaged” solution that you, or your Partner are working on, and click “Go”. That Solution will be run through a battery of tests, resulting in a pretty thorough report about the quality of what was done, along with areas for improvement. Shingle hangers beware. Using this report, you can go back through and modify an unmanaged solution, and keep rechecking it until it is snug as a bug in rug. Nice! This is also why you should consider creating an unmanaged solution for your customizations instead of modifying the default solution.
What about ISVs?
Sure, ISVs can use this same tool to check their Solutions in development, but ISVs have an even more robust tool at their disposal. The “On Demand Code Analysis” pre-certification tool. This tool is available to ISVs who plan to publish Apps on AppSource and is a more robust version of the PowerApps Solution Checker tool. With it, you can test Managed Solutions.
Taming the Wild West
For customers, you should ask your Partner to run the PowerApps Solution Checker on everything they do, and provide you with a clean report as part of your exit criteria. It is probably the only way you can know if they customized your environment correctly, or just built a house of cards for you to maintain.
For legitimate ISVs, this should be great news! We all know that AppSource is currently loaded with a bunch of crap, hacked together by who knows who. Many Apps in AppSource will not even install today. After a few tries by a customer, the whole of AppSource gets a bad name, and your solution by association. Microsoft plans to fix that. As of now, Solutions that cannot pass the pre-certification tool, cannot be published to AppSource. This should significantly improve the quality of Apps in AppSource.
Next step is to run all the existing solutions back through pre-certification and remove all that fail. Which will be many. The good news is that your quality ISV solution will be more easily discovered, now that it is not sitting in a huge pile of crap.
To be fair, many of the existing Apps in AppSource worked fine at one time. But with the continuous, and significant upgrades to the platform, they don’t work any more. Many fly-by-night ISVs could not be bothered to go and update their apps, or even remove them. That should be rectified soon. I have also been told, that as changes are made to the platform, the pre-certification tool will also be updated, and Apps will have to get “re-certified” on a regular basis. This is a major step in the right direction for AppSource, and may help lead to it becoming what we all hoped it would be.
If your AppSource plan was to build shit, and throw it up there just for lead generation… you will need a new plan.