Sponsored Link •
Recently you may have noticed noise about Joel Spolsky vs Bob Martin and Kent Beck. I came to a conclusion that may surprise those of you that know of my background in the Agile/TDD community.
Recently you may have noticed noise about Joel Spolsky vs Bob Martin and Kent Beck. After reading some of the available online material, I came to the conclusion that may surprise those of you that know of my background in the Agile/TDD community.
Joel can say what ever he wants because his company ships products that folks buy and he is hiring! I have personally tested both FogBugz and Copilot and concluded that in many ways both products are leaders in their space. Joel has a complete formula for how to recruit bright folks and help them ship beautiful and quality software. His formula and tool chain is different from many Agile shops who also hire bright folks and ship on time. So we just have different schools of thought here. That's all. Or is it?
Code and tool chains have a significant impact on software evolution and sustainability. For example, its much easier to find developers who can maintain well-factored, unit-tested Java or C# code. From what I can see this is not an issue for Joel. According to his blog, Fog Creek uses an in-house cross-platform language called Wasabi and I am sure its a well-reasoned decision that has worked well for them especially in light of their ownership structure and low turnover. While at Plumtree Software, I have been involved in the creation of a Java to c# translator used for that very purpose. We ran the project using Scrum and TDD and it has worked very well. Later, Plumtree was sold to BEA and eventually to Oracle which makes me believe that our approach of using a popular static language paid off well from a management perspective.
A note on the actual argument: I don't think that following SOLID principles and TDD (within reason) add much extra time - if any- to the overall development cycle. This claim has been widely supported over the years.
A note to Agilistas: for many projects to succeed you need qualified specialists skilled in usability, scalability, concurrency, DBMS tuning, etc. Being 'agile' does not mitigate the need for those specialists. If your project needs them and you lack them, you may still ship crap from the perspective of the user.
Lastly, I do encourage developers who have not used SOLID or TDD to pair-program with some who has mastered these skills for a few hours and make up your own mind based on an actual apprenticeship experience.
The beauty of our industry is that there are many ways to succeed and there are many ways to account for value.
Links to read:
|David Vydra specializes in test-driven development, continuous integration, QA automation, and QA/developer collaboration. He has used Agile methods since 1998 and runs the testdriven.com on-line community.|