In the Business Integration Solutions team we are applying Scrum and TFS to develop our next generation of Business Integration Solutions on Microsoft Dynamics NAV 2013. Check out http://blog.to-increase.com for an overview of the architectural changes. In subsequent posts we will present details on the product and scenarios for integration. Scrum and the tight integration between Team Foundation Server and Dynamics NAV allow us to achieve impressive results with a small team.
Let’s start with a spicy statement: Microsoft Dynamics NAV does not support concurrent development scenarios. Of course you can argue that you can achieve some sort of concurrency by using a shared database without object cache and so on. But that is not what I mean. True developer isolation is not supported. Because of that you easily end up in confusing situations in which people overwrite each others changes.
Source Control of Team Foundation Server supports concurrent check-out out-of-the-box. What exactly is developer isolation and how is it available in Team Foundation Server? Developer isolation means each developer uses a local development environment in which the development is done. Because changes are applied in a local environment it does not affect other developers, unless the changes are committed to the server. As a result multiple developers can work on the same piece of code simultaneously. Merge conflicts are resolved at check-in or when getting the latest version from the server into the local workspace.
Let’s take a look how this works. Let’s take a scenario in which we want there are two developers (Chris and Ron) working on the same solution. Chris has to implement a Document Status Check while Ron has to work on a Customer Status Check function. Both features require Codeunit 80 to be modified.
- Chris checks out codeunit 80 in his local workspace. He implemented some changes but did not check them in.
- Ron has to work on the same object and almost on the same piece of code. When he wants to check the object out, he noticed it was already checked out by Chris. He smiles and checks-out the object.
- Both Ron and Chris are working on the same object now.
- Chris is ready with his change and checks in the code. He added a nice document status check to the code.
- Ron just implemented his piece of code and is ready to commit his changes to the server. It happens to be Ron’s changes overlap the changes Chris just made.
- Ron checks in his code. The system notices there is a difference between Ron’s workspace and the server version.
- Because the version difference, the check-in triggers the merge tool automatically.
- The Pending Changes – Conflicts window is activated automatically.
- Ron uses the Merge Changes in Merge Tool option to resolve the conflict
- After resolving the conflict the version in Ron’s workspace is Latest
- And Ron can commit his changes to the server without any issues.
In this scenario I used the standard tools without any NAV extension. In following posts I would like to demonstrate how this concept can be seamlessly integrated in your NAV development process by using the To-Increase Source Control Plugin for Visual Studio.
Conclusion: developer isolation provided team foundation server is a generic concept which would be extremely useful in Dynamics NAV development scenarios. Imagine the increase of performance you’ll achieve when you can use this in your NAV development team.
You maybe wondered why there were no new posts in the past two months. Don’t worry, agile is still important and it is still possible for Microsoft Dynamics NAV. The past months were quite challenging from several reasons. Microsoft Dynamics 2013 came out and we are fully focussing on getting our solutions ready on the new architecture. Meanwhile Microsoft Team Foundation Server / Visual Studio 2012 came out. Windows 8 ….. In the same period I became father of a sweet little daughter… So, like I said: challenging times!
But I have many ideas for new posts. I really want to write a number of posts about developer isolation for Microsoft Dynamics NAV. Another interesting topic is the license change of visual studio: test manager is now part of the premium edition! If you have a msdn subscription this beautiful piece of tooling may be in your toolkit. I have been working on the testing part of our Agile process in the past months which resulted in a significant improvement of the process. This would not have been possible without proper version and build control which forms a basic element of our agile process.