I wanted to take some time today to write about something that has been on my mind for a while already. I have come across this in different forums, in person conversations at conferences, and in other areas.
Our Development landscape is changing
A lot of us started in some version of Microsoft Dynamics NAV (or any of its former names). I personally started with the good old DOS version and moved up throughout the different versions.
Every time you had to learn a lot. You had to basically figure out again how to do certain things, find way around limitations, and refactor your code or redevelop everything. But it was always within the contained environment of “Dynamics NAV” and you found your way around.
Now it is a bit different: You don’t only have to learn a new version and new ways around, but you also have to learn new tools and adapt those tools. And completely change our way that we have developed before, that we have designed modifications before, the way that we have released Add-On products before.
Is it really that different?
Well, from a development perspective, it is not really that different. Before we had extensions, best practices dictated to always develop “extension style”. So, with as little of impact in standard software as you can. So, from that perspective, it is now a little bit more restrictive, because you just “can’t” develop any other way anymore.
The reason I put “can’t” in quotes is that you can, but you shouldn’t. You still can make changes to the base app, but you really should not do that, because you then reduce upgradeability again and you also take on more responsibility, because you really have to keep upgrading the base app yourself then.
You could also have used the tools available now (Azure pipelines, CI/CD, etc.) before with your Dynamics NAV code and projects. But most of us did not do that.
So, now we are catching up to all of this. We are learning how to use AL efficiently and have to start ramping up on VS Code, AL, and the new ways of debugging. All the things that we knew already have to be relearned. This obviously is frustrating for some, for others it does present a challenge and makes work “fun”, because you can learn something new.
We also have to spend a lot of effort streamlining our build, testing, and deployment processes – you can use Azure Pipelines and spend effort in there to make it work. And it works quite nicely once you have it setup. You can use those tools to then test your modifications for each customer or your products on every new version that will come out, before it is out and start updating anything that needs to be updated.
New blood in the channel
This is a completely different topic – with every new version, we needed to learn new things, but we always had the same players in the field. The same VARs and the same ISVs that we all knew. We even knew a lot of the local key people in the industry.
That is changing now as well. You have more Dynamics GP and Dynamics CRM partners coming into the Business Central space and even completely different companies showing up. You also have – from what it seems to me – a lot more outsourcing going on nowadays.
The entire reason that I started being concerned about this was that I noticed more and more “newbie” questions on different forums. To me it seems like people assume that Business Central is just like any other development language and everyone that knows C# can code in AL. Well, that’s not the case: You might not have a big issue picking up on the language, but you don’t know the application. You have to spend a lot of time understanding the application and then properly applying the AL development capabilities to get the system to do what you want it to do. And you can’t learn that by asking a few questions on forums.
What does this mean? The partners, ISVs, etc. who hire new people without previous NAV knowledge (which can be a good thing) need to invest heavily into training those people and not just let them learn “on the job” without formal training and/or guidance. This won’t work and it can cause a lot of issues.
What can this mean for us in the channel?
We are currently at a very interesting and exciting point – we have the ability to shape the product for the future. What do I mean with that?
We can provide input and feedback to Microsoft to make the product do what we need it to do so that we can add our own functionality.
We can shape new Add-Ons, provide customers with customizations, and implement new best practices at those customers to make them successful with the new product and tools that we have here.
We have a lot of new people joining the channel, which rejuvenates the channel and also provides more or different competition – and it will also bring us Add-Ons that were not available yet.
But we also have a huge responsibility: Anytime we talk bad about the product, anytime we tell a customer “It is so much harder now to do something, so you will have to pay more. It would have been a lot easier previously”, anytime you deliver an app to a customer (customization or add-on) that doesn’t work, you are slowly but steadily destroying the brand that feeds us all. If customers do not think that the product is great and is the right technology for the future, they will go to another product and you won’t get the deal or can’t sell your add-on, or your services. So, be honest with the customer, but also make sure that the customer sees your excitement (which I hope you do have) and don’t badmouth the product – just because you are uncomfortable in a new environment or don’t know everything yet. It is a lot of learning for all of us and I welcome the challenges ahead of us – it makes us better, it makes the product better, it makes the channel better.
I am voicing my own concerns and my own opinions, because I like a dialogue about this and want people to care and do it right. I do not want to discriminate against anyone nor do I want to force anyone to agree with me. But I hope that you can see the same positives that I can see (and believe me, I also do see negatives). If anyone wants to talk, drop a comment below or catch me at any of the conferences and we can discuss our points of view.
Disclaimer: This is only my opinion and does not reflect any official statements or opinions of Microsoft of NAV-X.