The marriage of Microsoft Team Foundation Server and Microsoft Dynamics NAV

I think the time is there to share the core concept of this blog. Like mentioned in earlier posts the goal of this blog is to  inspire Microsoft Dynamics NAV professionals to adopt Agile in their development processes. Agile is a popular topic these days. Most information, however, is focused on other platforms, like .Net development. We noticed there is still a gap between those platforms and Microsoft Dynamics NAV. That is the goal of this blog in a nutshell.

As you may expect from good software developers we have an architecture for the articles posted on this blog. We are very much in favor of eating our own dog food which means we use real  examples with live code. In previous posts you probably saw some screenshots of Team Foundation Server provided Microsoft Dynamics NAV artifacts. The time has come to share this architecture with you.

The concept is simple: we want to apply the standard process template for MSF for Agile Software Development v5.0  to our organization. This template has been created by seasoned  experts and its current version is 5.0. One of the authors of this template (Jeff Sutherland) wrote an excellent article about the details of Agile Principles and Values. What if we try to apply these principles on our Microsoft Dynamics NAV domain? Obviously we want to achieve the same goals, even though we have different tools.

So far so good but we have our Microsoft Dynamics NAV Development Environment with its whims. How realistic is it to apply these principles on Microsoft Dynamics NAV? This question has been on our mind for a while. After researching and discussions we ended up with the following solution: we follow the standard Agile template  and adapt it with Microsoft Dynamics NAV by using the extensions of Team Foundation Server. This effectively means we adapted Team Explorer and Team Foundation Build System with Microsoft Dynamics NAV. As a result we are able to unleash the full power of Team Foundation Server, without requiring any customization of the process or Microsoft Dynamics NAV.

Because of this concept we are able to have one process for both .Net and NAV and AX development. Which is no luxury these days since more and more Microsoft Dynamics NAV solutions depend on .Net components.

I hope I did not scare you by sharing this concept. Remember it took us two years to implement this. The organizational change is the most difficult one. Agile is not the magic word which solves all issues but it surely identifies them. Another  good aspects of agile is that you can take small steps to improve. That is exactly what we did: we started with version control, then build management and after that we implemented scrum. Recently we integrated the Microsoft Dynamics NAV builds with Microsoft Dynamics NAV Testability Framework. Yes we are in the process of continuous improvement right now. In fact, it only just begun :).


5 thoughts on “The marriage of Microsoft Team Foundation Server and Microsoft Dynamics NAV

  1. Anthony Hassard

    Hi Ron and Satya, I have been following your blog carefully with great enthusiasm, because I believe that we in the NAV community are approaching a tipping point where Agile development practices will become a necessary part of surviving in the Microsoft ecosystem. I am so glad you are providing our community with this kind of insight, and in light of the technical direction Microsoft is taking NAV, the timing of your effort is good. I do fear, however, that much of the NAV community isn’t quite ready to listen yet and that it might not be until NAV 2013 is well entrenched before more people start understanding exactly how important your effort is. I hope you don’t lose your spirit before then.

    I do have a question in light of this: I wonder what advice you might have to streamline Agile development as much as possible so it becomes more palatable to the NAV community as a whole, who are used to the free form rapid cycle C/SIDE provides, and as a result are a little hesitant to approach a new development paradigm? What do you consider the fundamental and necessary components, versus the good-to-have but still optional components? How can people bring this approach into an organization with as little friction and resistance as possible?

    My hope is that more in the NAV community learn how to fold Agile practices into their organizations soon, since — as we all know — the more time you have to implement an organizational change the better chance you have at making it successful. In the NAV world specifically, the “lean and mean” approach will have the greatest chance for acceptance. Thanks again for bringing Agile knowledge and experience to the NAV community.

    1. ronvdw Post author

      Hi Anthony, Thanks for your feedback.I am pleased you are following our blog and that you appreciate the content. I agree with your remark about the readiness for Agile of the community. That is actually the main reason why we started this blog. In our own organization we started to think about applying Agile to our NAV development team more than two years back. When looking back this has been an interesting journey; the biggest challenge here was to change the mindset because our team members are all NAV professionals with more than 6 years of experience. The main goal of this blog is not to promote our products as such but to stimulate the thinking process of the community by sharing our experiences and ideas. We want get the mind-shift to happen.

      Regarding your question: In our organization we took Microsoft Team Foundation server as the core Application Life-cycle Management (ALM) application and adapted it with Microsoft Dynamics NAV. We used TFS as the guide during this journey. It was a precondition that no Microsoft Dynamics NAV customization was allowed. We followed the process provided by TFS out-of-the-box and applied that on our scenario. This is an ongoing process. Each improvement identifies new bottlenecks. We try to solve them one by one.
      We started off with version control. In our case we were already used to a version control system and I think most NAV professionals are using some sort of version control system. The flexibility of this system allowed us to start with a simple source control repository. In order to achieve this we had to develop the Source Control plugin for Microsoft Dynamics NAV. Once that was there it was easy to implement. We will share more details of this process on this blog.

      After that a new bottleneck appeared: how do we get the source code out of the repository in a compiled form. That’s how we started with Build Automation. Once these elements were there we noticed that our process was still not Agile and that it was difficult to get work items implemented. This last step was the most difficult: we really had to change the development process. We decided to do a pilot with scrum in one team. Once the pilot was done we were able to show the result to our management team and got their commitment to implement it. This again is a continuous process: we try to improve after each sprint. Initially we didn’t have the story points, stack ranking etc. in place. But: one of the good aspects of agile is that it identifies this issues.

      This is how we implemented agile in our organization. I think it would be good to write some articles about this. Please let us know if you have any suggestions or comments.

  2. Pingback: The marriage of Microsoft Team Foundation Server Integration and Microsoft Dynamics NAV |

  3. Mark

    Wasting space on the internet telling people that you have achieved such a lofty solution but not sharing the solution with anyone.

    1. ronvdw Post author

      Hi Mark,

      You have a point here. I am actually thinking about publishing the stuff to codeplex. The goal of this blog was not to sell products but to inspire the community by sharing what we achieved in our team.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s