For years, clients have enjoyed controlled flexibility with an innovative approach to layering development; does this mean we can’t change the solution now? Well no, you still can customise it but it certainly will not be the same, and in fact, about time too.
A new release roadmap was announced at the last Dynamics 365 Tech Conference in Seattle, held on 12-15 March 2017, where the terms “Hard Seal” and “Soft Seal” were introduced to explain how different parts – from the kernel platform through to application suite - will come placed under complete Microsoft control.
As you can imagine, this planned Hard Seal of the App Suite generated much discussions in the Microsoft Dynamics 365 for Operations / AX community.
Currently we have two techniques to customize a system: overlaying and extensions. After the Spring release 2018, customers and partners won’t be able to use overlaying anymore. Soft seal is just a warning that model would be locked for overlaying soon, Hard seal is an actual lock of the model.
Overlaying is an old style development approach that the development community have used since the first release of Axapta (now Microsoft Dynamics 365 for Operations). When custom code is written on top of standard code, it “overlays” it. The new code does not overwrite the core, it just rolls on top of it and is readily separable.
This approach gives us almost unlimited flexibility - any X++ code could be changed. However, there is a price for power: the more you overlay the more you have to merge during upgrades and at some point, if your solution is highly customised, upgrade to new versions may cost more than initial implementation.
Ultimately, the total cost of ownership goes up where development gets out of control.
Moving away from this potential scenario is obvious, as Microsoft cannot provide continuous upgrades to drive an evergreen platform if a developer has messed around with the code.
What is the answer?
Extend, Extend, Extend
Extensions is a new approach introduced with the current version. It allows you to add customisations like plugins without disturbing the standard code. This means you can seamlessly upgrade to a new version, because there is no need to merge any custom code.
However, extensions have they own drawback: not everything is extensible today. Extensions have significantly evolved since the initial release but Dynamics 365 for Operations still has a lot of “old” code not designed for extensions, meaning this code will need refactoring. Extensions also have limitations, so not everything is extensible and some limitations lay outside of Microsoft Dynamics 365 for Operations or X++ in the .Net the platform itself.
Making Microsoft Dynamics 365 for Operations extensible is top priority for Microsoft.
Back in November 2016, Microsoft locked Application Platform and Application Foundation models to enable continuous update of the platform. These changes were well received by customers and partners – except for those Independent Software Vendors (ISVs) that provided platform add-ons, such as document management solutions or integrations with 3rd party systems.
Some of these ISVs worked closely with Microsoft to integrate their solutions using extensions, while others decided not to release new versions for Dynamics 365 for Operations, due of complexity and amount of rework. We expect some ISVs to fundamentally rethink their development approaches. Clients with add-on solutions should reach out to their partner and ask the question, ‘has my ISV solution been brought up to standard for the new Microsoft Dynamics 365 for Operations Hard Sealed application suite?”
Application Suite Hard Seal is a game changer. It unlocks a continuous update approach for the whole system including functionality and platform. Continuous update combined with a six-month release cycle makes Microsoft Dynamics 365 for Operations “evergreen” and aligns with the overall “Evergreen IT” strategy of Microsoft.
This reduces the total cost of ownership and reduces the likelihood of organisations having to embark on large scale implementations due to legacy, outdated platforms.
There is always a downside. By introducing Hard Seal, it decreases customisation flexibility, something Microsoft Dynamics 365 for Operations has been well known for.
This approach does not mean you cannot customise the application. Instead, it is just a more controlled process. As mentioned before, extensions do have limitations and some customer changes would become more difficult to implement. However, if this prevents poorly architected developments, it surely is a step in the right direction.
Microsoft gathers telemetry across all Dynamics 365 for Operations implementations to analyse frequently overlayed code and works on refactoring its code to make it extensible. They acknowledge that customers and partners will have to work with Microsoft directly on extension points for specific requirements and in some cases, we may have to accept that a required solution is not valid for Dynamics 365 for Operations.
Looking at a typical implementation project of Dynamics 365 for Operations versus previous versions like Dynamics AX 2012 or Dynamics AX 2009 we can see how the number of customisations, and as a consequence implementation time, has reduced due to Microsoft’s investment into functionality and partners support functions.
Future is AppSource
It’s far better to buy rather than build and despite the relative ‘newness’ of AppSource, we have 86 add-ons in the store and this number is rapidly increasing. This shows the ISVs shifting focus from customisations of current systems to implementation of known business solution add-ons.
Here’s to the future. A simpler, more controlled, still reasonably flexible, evergreen, lower TCO solutions that fundamentally leverage the power of the Microsoft platform. Exciting times ahead.
This post was originally written by Ievgen Miroshnikov & James Page.