I’ve been starting to do a bit of a side project recently and doing some evaluation of the tools I’ll be using to do this.
Visual Studio. No question. Very occasionally I’ve seen jobs where the requirement is to use Notepad… Seriously. Translation – we like our developers to waste time and get frustrated. Be more productive use the best .NET development IDE in the business. VS 2008 can only make that better.
Source code control
You need this. You really do. Don’t think you can get away without it.
You can self host your SCCS. Subversion is a great open source project you can leverage and lots of people use it. If you want to use a commercial product then SourceGear’s Vault has a free single user license version. Self hosting puts the onus of backups on you and probably means your code will only be available on your home machine.
Another option is to pay someone for some hosted space. Numerous companies offer this, the Subversion project maintains a list of hosting services. One that caught my eye was CVSDude who offer 2Mb of free hosted space – fine to get you started with a small project. If you’re planning to go public and/or open source then there are a number of obvious options. CodePlex (TFS) and SourceForge (CVS/Subversion) just for starters. Both of these are free.
Currently I’m using SourceGear’s Fortress (Vault + project management) largely because I wanted something hosted locally. Fortress has a free single user license, largely to support the Micro ISV community. Why aren’t I using VSTS? Well I was on a budget and it has a lot of features I wouldn’t need.
For a project with only one developer you don’t really need a CI server but you do need a build script or some way to automate your entire build/test process end-to-end. MSBuild is fine for this. If I feel like it I can use CC.Net to run this in background during coffee breaks.
Backlog, task and bug tracking
As I mentioned above I’m using SourceGear’s Fortress. I do this in conjunction with a couple of files I store in my project’s solution.
Backlog.htm – A numbered list of user stories I may want to implement. I might move this into an Excel spreadsheet as it starts to grow.
Issues.htm – A bulleted list of issues I need to clarify or spike on.
I’d also highly Micro-ISV: From Vision to Reality. This covers much of what’s here in greater detail. It’s a great read for anyone thinking of starting a small software project for money or simply for fun.