Jun 11, 2009

What Every Software Business Needs

There are certain things that a software company simply can not do without, no matter how big or how small the company is. Here is my list:
  • Remote backup
  • Source control
  • Bug tracking system
  • The best tools for the job

One of the first steps of launching this business was putting this infrastructure in place. A lot in the industry has changed since I started my last software business in 2003. After some research and trial & error, I've chosen the tools that I believe to be the current state of the art.

All of my software development tools, with the exception of remote backup, are free and open source.

Remote Backup: Mozy

I evaluated both Mozy and Amazon's S3 service with the Jungle Disk front end. Both services have received excellent reviews from other software developers. In the end, I chose Mozy for its ease of use and lower prices. If you use a very small amount of storage and bandwidth, Jungle Disk might be a better deal for you, but Mozy offers unlimited storage and transfers for only $5 per month. It's actually free if you use less than 2 GB.

I was previously using CDs for my backups, but there were several problems with this. First of all, the backups weren't frequent enough. I would only back up my data about once every two weeks. That, of course, is a serious problem. With Mozy, the backups occur automatically in the background every day. The service will back up only the folders that you tell it to. The remote server shows up as a new drive letter on Windows systems, and you can navigate to it just like you could with a shared network drive.

The other problem with CDs is that they were stored in the same physical location as my computer. One fire or flood, and all of my work would be lost. Five dollars per month is a pretty cheap insurance premium if you ask me.

Source Control

The systems I've used previously include Microsoft SourceSafe (shudder), SharePoint (shudder), and Surround SCM (shudder). These were all at my jobs. Other than the biweekly CD backups, I've never used source control for my personal projects.

I've decided to go with Subversion for source control. It's free, open source, widely used, and just pretty much the de facto choice for source control these days. Git and Mercurial are receiving a lot of attention, but I have no need for a distributed system, as I'm a one man team on a single machine. I'll be adding the SVN repository to Mozy's list of automatic backups.

I'm really looking forward to being able to start new branches of my project and roll back to previous versions of my files after I screw up. The ability to quickly diff old and new versions of source code will be really nice too.

I'll use Subeclipse and the command line interface for the front end. There are a lot of choices out there for client software but I want it integrated into my IDE.

Bug Tracking

This was done in a notebook in my other projects. Bugzilla is an obvious choice if you're looking for open source. I found another product called The Bug Genie, which is entirely written in PHP. Since I already have a WAMPP stack on my machine, setting this up will be really easy. I hope.

The Best Tools For The Job

I'm using a laptop that's three years old, but it still works just fine. I like the laptop because it lets me code anywhere I want to. I can't work from home; I get distracted way too easily. Eclipse is my IDE of choice.

No comments:

Post a Comment