I have recently picked very interesting book that I have read about year ago, from Mike Gunderloy named Coder to Developer, with subtitle Tools and Strategies for Delivering Your Software. It is an excellent book and I highly recommend to give it a look if you are in software development business on Microsoft platform. Easy read, practical, useful.When I was reading it back in 2006, it was before we have set up own development lab and started the biometric project. With this recent experience, I was re-reading the book with quite different view: unlike before, I knew what we tried, what worked and what did not. Unlike before, I have now broader experience with what it means developing software and run large project inside the organization, creating and maintaining infrastructure for team of developers and leading the project design and implementation.
Book has 14 chapters, addressing various areas from starting a new project, organizing it, using tools such as source control, unit testing, IDE, bugtracking, logging, build tools etc. While starting up the lab and the biometric project, we had to go through pretty much every book chapter. Sometimes we made same choice as Mike recommends, sometimes different. Here is our toolbox, in order of the book chapters:
Ch-3 - Source code control
Mike is mentioning several Source code control systems: BitKeeper, ClearCase, CVS, Subversion, Perforce, VSS. We have excluded VSS (because of the reliability), ClearCase (because of complexity and price) and the final selection was done between CVS and Subversion. Actually, between CVS-NT and Subversion. We have decided to adopt both, starting with CVS, because it was more familiar for majority of the team members.
At the beginning, we were considering VSTS, but the prohibitive price, complexity and low version number were reason why we decided to wait for at least Service Pack 2 before considering it.
Ch-5 - Unit Testing
Compared to other projects, we managed to be quite successful in implementing unit tests and TDD. The BO layer has over 100 unit tests which helped to catch several pretty vicious bugs in early days. We settled upon using MbUnit, instead of NUnit, because of very useful extensions such as row tests. MbUnit is pretty much superset of NUnit - see more at project Wiki page. MbUnit works very well, the only disadvantage is very limited documentation.
Ch-6 - IDE
Visual studio - what else ? In version 2005 it provides very good featureset. Refactoring support is still not quite as comprehenshive as in Eclipse, but very good nevertheless. Some developers use special plugins - e.g. Visual AssistX, but others (including myself) found it rather contraintuitive and liked plain VS.NET better.
One of the plugins that we evaluated and actually liked, was Testdriven.NET - nice VS addin to use MbUnit, csUnit and NUnit. Unfortunately, the publisher has very strange licensing policy: the more licenses you buy, the more you pay : Professional license costs $95, but if you need more than one you must purchase Enterprise version ($135). Out of principle, to be "voting with our dollars" we decided not to go with Testdriven.Net. Let's hope that more people will do the same and eventually, the author will get the message.
To be continued