Breaking news from around the world
Get the Bing + MSN extension
Now Available in Community - MBAS 2019 Presentation Videos
Catch the most popular sessions on demand and learn how Dynamics 365, Power BI, PowerApps, Microsoft Flow, and Excel are powering major transformations around the globe. | View Gallery
2019 release wave 2 Discover the latest updates to Dynamics 365Release overview guides and videos Release Plan | Early Access Availability
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance TechTalks | Customer Engagement TechTalks | Talent TechTalks | Upcoming TechTalks
After my last post, my colleague (thx Kris) and myself had a small talk about what we can and what we cannot do in the database. That made me thinking about an ethical aspect of the development and where we should store the code which we do for our customers.
In the days when we did a development in C/AL there was no problem. Everything was stored in the customer’s database – that was great for the partners and the customer. So when the customer wanted, he was able to change the code by himself (of course with the proper license). Was able to change a partner whenever wanted – yes such situations happen (let’s face it no one is perfect) or was able easily to have more than one implementing company (I was in such situation while ago).
Although I think that extensions 2.0 and developing in AL is great (yes – really great) there is one thing which needs our decision before starting the project.
Where should we store our code repository?
There is really a difference if you store all modification on your own laptop, git repository on your own server or you give full control to your customer.
And now I will give you few options to finish reading this post, all depends who you are. But if you really curious then read all – you will see the problem from the different angles.
I put you at first point because I really think that you should read this blog in the first place. And let’s answer this way:
you should not care if you do not care about money and time.
But if you do, then if the code will not be on your server (or in your repository) you can end up bound only to one partner. No one will be able to help you if you would decide to change a partner because no one will be able to look and modify any of your code – means you will pay double to fix it.
Did I scare you? Great! It was my goal – if you want to have flexibility always demand to have your own GIT repository where you store all changes and whole code.
If one day your sales manager will come and will say:
hey I have a great customer. He is not happy now let’s make him happy.
Then be aware – first what you should ask this person is:
can we do an audit of the code?
If you cannot because there is no repository for changes at the customer side: do not go this way! Why? I bet that you do not want to end with customer saying:
why I should pay one more time for the report if I only want to add one very very very small field on it?
Try then explain that it is because we cannot modify the report – there is no code which you can use.
Good! I would also trust him – ok maybe not more than my four years daughter trying to sneak behind my back to steal a cookie, but I would trust. But I would not trust the machine which he is using. Everything can happened with it – and if it can then for sure it will happened. Trust me (more than my four years daughter in this case). So imagine the situation that this developer store the whole extension code only at his own laptop and in a moment you are left without anything – no code. First of all you have a problem but in second place you start thinking my customer has a problem. Moreover, even if all is fine, your developer is still working, the laptop is fine, there will be no history of changes – that also can be a problem.
I must say this is not perfect situation but it is better that any from above. But my first question is: Do you do the backup? If no then start… please. If yes that is great. You don’t want to share the code? I am not as happy as can be but ok – your decision. However please make one thing for me please mark show your code in the extension. It will help both of us – and I will do the same for you.
I think the best option is to give the code to the customers. Also inform them that now the code is stored outside the system and that they need to do some investments (even small ones) that the modifications are secured and can be in future easily access by anyone they want. At the end they paid for it so they should own it.
As I wrote this is also ethical problem – not telling your customer that, makes him bounded only to you or your company. That is not ok – and makes him in future, not only angry with you, but also not happy of using Business Central.
Not showing the code, if you doing the customer’s specific modification, is not ok for me as well. Let’s make our life and cooperation between partners easier (the different story is not showing code of your own registered module – let’s not mix those two).
Business Applications communities