March 15, 2006

...Learn TDD with Codemanship

Why Pay $$$Thousands?

I don't get Microsoft's strategy for Visual Studio at all. Maybe they're being very clever, and their strategy has simply gone over my head. But, while the rest of us are running a mile from high-end tools in favour of open source software like Eclipse and JBoss, Microsoft seem to be running headlong into the dwindling high-end proprietary tools market space.

For example, "Visual Studio 2005 Team Edition for Software Architects with MSDN Premium Subscription" will set you back the best part of four grand (in British Pounds). A team of six developers might have to invest as much as 20,000 GBP on development tools if they want the benefits of Team System.

Sod that for a game of marbles, say I. I've worked with teams that were highly productive using tools that cost virtually nothing. Here's my recommended toolset for .NET Agile Software Development:

Project Planning & Change Control: Coloured cards (green for features, pink for bugs, blue for other stuff). Pens. Coloured stickers (red, orange, green). A big notice board with plenty of pins. Some elastic bands. Four card boxes to keep the cards in (unscheduled stuff, stuff scheduled for the current iteration, stuff that's ready for acceptance testing, stuff that's finished in this iteration).

Analysis & Design: Masses of cheap whiteboard space and appropriate pens and board rubbers. Have a cheap digital camera to keep a record of important models.

Documentation: Set up a project Wiki where you can post useful info, requirements, photos from the whiteboard, document links and so on. If you need to create nicely formatted documents, spreadsheets or presentations, and you donb't already have MS Office, download Sun's Open Office.

Testing & QA: More stationary for test planning and management (see above). Open source testing tools for developers (NUnit) and customers or professional testers (FitNesse.NET). Track bugs using BugZilla

Continuous Integration & Configuration Management: Store your source code in CVS. Automate your builds with NAnt and do integration builds using CruiseControl.NET

Metrics & Governance: Get design quality metrics using NDepend. Capture and report other metrics using Microsoft Excel (if you already have it) or Open Office CALC if you need a free spreadsheet tool. ODBC/OLEDB compliant reporting tools (like Excel and CALC) can also be used to generate reports from BugZilla data.

Coding & refactoring: You could stick with the existing copy of Visual Studio and get along just fine and dandy. All the open source .NET tools will work with VS 2003 and .NET 1.1. If you insist on using .NET 2.0 and VS 2005, then try the free "express editions". It won't be long, I suspect, before all the open source tools support the latest version of .NET. As far as I'm aware, there are no free refactoring tools for Visual Studio 2003, but in VS 2005, even the express editions have basic refactoring tools built in.

Now, I'm sure those bright folk at Microsoft will say that you get a lot more than this from Team System, but I question whether you actually really need those extra features. And they may quite reasonably argue that it will take time to set up all these different tools, and the lack of transparent integration might end up costing you more - but I would like to see that put to the test. Is it the practices that make the difference, or the tools? Which has the bigger impact on productivity and quality - visual modeling, for example, or visual modeling software? If we do it at a whiteboard instead of in a class diagram editor, will that slow us down or make our designs worse somehow? I'm not convinced it will. Same goes for testing. If we use free open source tools like NUnit and FitNesse instead of investing in "Visual Studio 2005 Team Edition for Software Testers with MSDN Premium Subscription", will our code have more bugs? Will the cost of quality be higher?

I recommend you hang on to your money and spend it on things that really make a difference. Twenty grand will buy you a heck of a lot of whiteboard space!
Posted 15 years, 5 months ago on March 15, 2006