microsoft / AL

Home of the Dynamics 365 Business Central AL Language extension for Visual Studio Code. Used to track issues regarding the latest version of the AL compiler and developer tools available in the Visual Studio Code Marketplace or as part of the AL Developer Preview builds for Dynamics 365 Business Central.
MIT License
748 stars 244 forks source link

Suggestion: Release updates with NAV 2018 CUs #1296

Closed bwdeleeuw closed 6 years ago

bwdeleeuw commented 6 years ago

First off, big thank you to the MS devs for the hard work and dedication this past year. We are very excited with the direction of the AL language, and the new bits that are coming out every month. We also very much appreciate the opportunity to report our questions and issues here, and get feedback from the team.

And now that NAV 2018 has been released, we get a chance to share the exciting new functionality with our customers. That brings me to my suggestion: Please keep NAV 2018 on par with the latest functionality. I'm not sure why only bug fixes would be released as part of the NAV 2018 CUs. It would seem to be a lot more work for everyone, coupled with more drawbacks, and no advantages. Especially in the 0.x versions, when so many crucial bits are being added. Those early important pieces of functionality make a considerable difference in being able to solve cases with extensions vs. having to utilize C/SIDE. And having to wait up to a year to get access to them is just too long.

Advantages to monthly releases

  1. Easier on the MS devs. Unless I'm missing something, the MS devs have to spend extra time splitting out what is a bug vs. an improvement, and maintain multiple codesets to make this happen. Wouldn't it be easier to just have a single codebase that gets updated for both D365 as well as NAV 2018?
  2. Easier on support. When you are dealing with multiple codebases, support becomes harder as well.
  3. Easier on ISVs and VARs. When writing solutions or code for two products, you have to maintain multiple versions, instead of just one.
  4. Easier for customers. We have a number of customers that are currently looking into migrating to the Cloud, but are held back by internet limitations. Our customers often use ERP-integrated shop floor solutions in multiple shifts, so they are dependent on NAV being up 24/7. They would like to go Cloud, but cannot, due to their internet situation. Especially our mid-size manufacturing and job-shop companies, that have chosen a rural location in order to take advantage of lower labor costs. The drawback of their location is often a poor internet connection. Slow speeds, no redundancy, frequent internet outages. We would like to get them on NAV 2018 with extensions, but due to the limitations in the extensions, we have to make changes to C/SIDE instead. If we can get them on NAV 2018 with extension, they can easily migrate to Cloud once their internet situation improves.

The only reason I could come up with to not release the latest bits with NAV 2018 is in an ill-advised attempt to push people to go Cloud instead of on-premise. Speaking for most of our customers, if they could go Cloud, they would. And if we can keep them in the fold with NAV 2018 and an easy migration path to Cloud, they will migrate once the time is right. If the on-premise version starts to fall behind, I have customers that will start shopping elsewhere.

mrabus commented 6 years ago

Great post, thumbs up!

StanislawStempin commented 6 years ago

Thank you for the detailed feedback. It reflects a similar discussion that we have internally had on this topic.

We are well aware of the benefits of giving access to the latest version of the development tools on NAV 2018 and we would actually have liked to do it. However, features in the development tools often depend on corresponding server changes/capabilities. Therefore, in many cases, back-porting dev environment features would mean back-porting server features. If these in turn depend on other features we quickly get into fully fledged development effort for an additional product. (And the problem would keep growing over time, with each following On-Prem version to maintain).

We have instead decided to focus the development efforts on a single, latest version of the product. This of course means that the new features light-up first in the cloud releases (which are shipped on a monthly basis) but eventually they will all be available in the next On-Prem release (NAV 2018 R2 in this case)

As a bit of technical background - codebase between D365 and On-Prem is in fact the same but only at the time of the release. I.e. D365 as of December 1st corresponded to NAV 2018 and D365 as of Spring will correspond to NAV 2018 R2. However, after the release the On-Prem product is branched for maintenance mode. Therefore any feature development in the branched product version comes at an additional cost.

The proposal to release On-Prem version on a more frequent basis, in sync with the cloud version is something that we are aware of but it is a bigger, product-wise decision that will not be retro-actively made for NAV 2018. Such a decision would also have significant support, upgrade and development process consequences that need to be considered in a context broader than dev tools.

Having said that, we will back-port selected features to NAV 2018 but it will be a case by case decision dependent on the costs/benefits of doing so. It will mean finding a balance between fixing truly blocking issues on NAV 2018 vs completing new feature development for the latest version (for example, we will be back-porting the fix for #62 to NAV 2018).

We hope this gives you some insight into why we made the current decision.

bwdeleeuw commented 6 years ago

I appreciate you taking the time to answer my suggestion. And while it doesn't give me all I'd hoped for, we can work with some of this. This approach creates a fast ring and a slow ring, where releases are pushed to the early adapters, the Cloud group, first, and then show up in the slow ring, a stable release, NAV On-Prem. That works for our customers quite well. They want stable and reliable.

However, this only works if there are regular releases of NAV On-Prem. In this case we have NAV 2018 R2 to look forward to in the spring, and that is great. That gives us 4-7 months between NAV 2018 and NAV 2018 R2, and that is acceptable. However, MS would have to start releasing regularly throughout the year, otherwise there could be up to 12 months between releases, and especially in the early days of AL development, that is too much. If I read the situation correctly at the last Directions NA, the initial plan was to not release NAV 2018, but instead wait until the spring to release at the same time as D365 Tenerife. Due to push back from the partners, that fortunately did not happen, but that would have put almost 18 months between On-Prem releases.

My suggestion would be to release a version every quarter to synchronize the Cloud and On-Prem Versions.

Gallimathias commented 6 years ago

Personally, I'm also in favor of more regular updates, but I see a problem or have a comment about it.

  1. I am not a friend of keeping a rhythm at all costs. Yes, 3 months of updates would be nice but it would only be nicer to update if a releasable version is ready. I don't think it's a good idea to update so that was updated. However, smaller functionalities and more regular updates for OnPrem would have something to offer.

  2. then I find that the OnPrem version needs a reasonable update routine for more regular updates because it is actually mega annoying to take care of the update of the objects by hand or with your own script plus uninstall and reinstall. We need a function like that in other products that update itself. "Oh a new Nav version has been released click here to update"

I also think it is important because customers in Germany have to be led to the cloud slowly. Especially the famous German middle class is very suspicious of a cloud solution. It is very hard to convince people of a web client because their beloved short cuts are missing. Cool new features and regular updates might be a good reason for buying / upgrading. Besides, you can also convince the people who strongly resist against AL. A constantly updated development world offers cool functions and little attack area because there are fewer bugs. Few bugs and the possibility to use current functions productively would take AL opponents and C/al fans would take the wind out of the sails.