My friend and fellow SharePoint MVP Eric Shupps has been promising to enter the conversation, started a number of years ago by Spence Harbar, and provide his wisdom and views on why he thinks TDD in SharePoint is just wrong! It has been debated over email and over a SharePint for many many months. Finally Eric has put pen to paper (or fingers to keyboard) and joined the conversation.
I now know why it took Eric so long to get his post out, it’s taken me an hour to even read it. As with any good debate Eric managed to get me pondering his views, what I see as misconceptions and ideas and I will be coming back with a number of posts in response. Sorry I just can’t write that much in one blog post
I will start by countering a specific part of the of Erics post for the moment; TDD has it’s origins in Extreme Programming but it is not intrinsically linked to pair programming. I think Eric has been mislead by some more zealot supported of TDD on this. He did however miss one of the main benefits of pair programming in his complete dismissal of the approach which is Shared Knowledge. Later in the post he talks about lack of knowledge, poor quality developers, and also the ability to be able to actually code against SharePoint before you try something so difficult as unit testing. Pair programming can help in this regard – but it’s something you really need to have a desire to make work. I have used it, it’s not for everyone and you will always have personality clashes! I have found it to be very useful in specific areas and in small chunks. If you do get a few really good pair programmers I think you can see improved productivity – the reality however is most people never give it long enough to see the benefits.