Ive recently really seen some of the benefits in action from the work we have been doing to introduce Behaviour Driven Development techniques into our BizTalk development process.
A couple of months ago one of the members of our team was unavailable and he was the expert with one of the BizTalk Applications we had developed. The team was small and we have a lot of processes and this particular application was quite complex and no one had the level of experience that this team member had with the business process in this particular application. After he was unavailable we got some new requirements for this application and it was a daunting prospect to pick up the reins and try to make these changes without this valuable member of the team around. I know that in an ideal world you would have a number of people with lots of experience on each project but in the real world we had a small team, lots of projects and lots of change so its tough to be in a great position. What we did have was some good documentation and lots of BizUnit tests but it was still a very challenging change.
To try to address this problem one of the first things I did was to allocate some time so that we could refactor all of the BizUnit tests to use the the BDD approaches I have been encouraging and also the "testing whats happening inside of BizTalk" testing approach. The idea here was this small amount of investment would help us to understand the BizTalk application and its implementation of the various processes but also put a tight level of Gherkin style documentation around the BizUnit tests.
After about a week of refactoring this (and it was a challenging week) and implementing some of the new change we needed to deliver I handed over some of the work on the new change to my colleague on our team. I was very impressed at how much simpler the hand over was and how well Francis was able to get his head around how the application worked.
That week of refactoring really moved us from a position where I had been reluctant to touch anything in that particular BizTalk application to a position where I am very comfortable we have a good handle on it now. The BDD initiative we did in 2011 was definately one of the best changes we have made to our development process.
Some links to some of the techniques we have used:
BDD with BizTalk 2010
BDD with BizTalk 2006
Testing Whats Happening inside of BizTalk