Problem solve Get help with specific problems with your technologies, process and projects.

Three must-have tools: Version control, issue tracking, unit testing

Developers argue which tools are really required. Every topnotch developer I know would agree three core areas need to be covered: Version control, issue tracking and unit testing.

Even with the recent pricing changes, Visual Studio Team System is going to remain out of reach of many small shops and individual developers. However you feel about the value offered by the package, the reality is that it's not feasible for some organizations to lay out thousands of dollars per developer to upgrade to VSTS. In the sometimes-heated discussions of pricing, though, it's been easy to lose sight of one simple fact: it's perfectly possible to sit down with a copy of Visual Studio Professional and write Visual Basic applications. You don't actually need the whole Team System packages to turn out software

While it is true that you may not need all the features of Team System, you shouldn't just start hammering out code without a plan. For any but the most trivial of software projects to succeed, you need to follow some best practices and back up your coding with appropriate support tools. Fortunately, there are less-expensive alternatives to VSTS for the cash-strapped developer who still wants to do professional work. Developers argue about which tools are really required to do a good job of writing software, but every topnotch developer I know would agree that three are core areas of tools that you need to have covered:

  • Version control
  • Issue tracking
  • Unit testing

Version control (which also goes by other names like "source code control" or "source code management") is your best insurance against the inevitable "oops" moment when you realize you've just spent half an hour replacing working code with a brilliant new idea that doesn't actually work. With a version control system in place, it's easy to roll back to the working code. It's also easy to recover the version a customer is having trouble with, even if it was something you sent out six months ago, or to see what changed in the last five revisions of a class. Microsoft offers Visual SourceSafe as a lower-cost alternative to Team Foundation Server, but you can save even more money by moving to a free version control system. These days, Subversion is probably the most popular of the free systems, though there are many other choices, both free and commercial.

The second leg of serious development is issue tracking. As soon as your software grows beyond the trivial, you need to do something to keep track of bugs that you need to fix and features that you need to implement. This is critical when you're working as part of a team, so everyone knows what's going on, but it's even critical when you're working alone. I personally use FogBubz, an ASP.NET-based system that costs $99 per user, but there are plenty of other choices out there. If you're a one-person show, you can just keep your own list on a spreadsheet or in a database. But, however you do it, you need some system to tell you what's left to do at any given point. Otherwise, how will you know when you're ready to release the software?

Finally, for any but the simplest software, you should invest the time to install and learn how to use unit testing software. This is one area where your investment will probably be limited to time, because there are several excellent free unit testing tools. NUnit is the original unit-testing solution for VB.NET; MbUnit is an alternative with a wider range of features. Unit tests allow you to automate the checking of your code, so that you can be sure that adding new code doesn't break existing code. A good suite of unit tests makes it easy and safe to maintain your applications without fear that you're going to mess something up because you've forgotten how all of the pieces fit together.

After you've gotten the essential three taken care of, you can move to build up your toolbox as you need (and can afford) individual tools. Whether it's a standards conformance analysis tool, a documentation tool, or a smart ASP.NET deployment tool (just to name a few), there are hundreds of choices in the .NET universe. [SharpToolbox is an excellent resource when you're hunting for .NET tools.] This piecemeal approach won't give you the perfectly-integrated result of buying Visual Studio Team System - but it also won't force you to lay out several thousand dollars up front, or to buy some pieces you might never use. But whatever approach you take to development, make sure you cover the essentials before you spend too much time writing code.

Mike Gunderloy is an independent developer and author working in eastern Washington state. His recent books include Painless Project Management with FogBugz (Apress) and Coder to Developer (Sybex). You can read more of Mike's work at his Larkware Web site, or contact him at

Next Steps

Determine whether or not your enterprise needs application testing tools

TestComplete Platform allows automated app testing

Dig Deeper on .NET Framework security best practices

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.