As a developer, have you ever wanted to banish your fears of hard disk failure and stupid mistakes in one easy step? Did you ever consider that using a hosted version control system could do just that? It’s long been established that using a version control system is A Good Thing for software quality and developer productivity. Joel on Software goes as far as claiming it as the very first step on the path to writing good code.
Traditionally, choosing a version control system has been a miserable affair. Many developers that are happy in a Windows environment seem to hate CVS, (most likely due to its UNIX roots and its complex usability). Almost all UNIX-oriented developers I’ve met have a loathing for Sourcesafe that borders on the obsessive. Nevertheless, as a developer in a professional software house you typically end up being forced to use one of the following mainstream products:
- Emailing or copying code to file servers
Fortunately I’ve never been employed by someone using that last “technique”!
I’ve never met an unsatisfied Perforce user but it has historically been an expensive proposition and rarely adopted in companies without a tenacious technical leader. The cost typically requires a lead who can convince the bean counters of the value of a good software system.
CVS experienced a phenomenal amount of growth and popularity with the rise of Open Source software in the late nineties. It was the tool of choice for many large free software projects. However, its command-line roots make for some terrible user interfaces and have dragged its reputation through the mud on Windows.
Sourcesafe is a legacy tool. Even if you’re a fan of it, there’s no denying some of its shortcomings; poor command-line support (for automating builds), only available on a 0single platform, problems with corruption (due to its underlying file-sharing architecture), a pain when branching any sizeable project. Sourcesafe has a big following because of its relatively simple user interface and the fact it comes bundled with Visual Studio.
The systems I’ve described above are all looking a bit long in the tooth for modern, “web 2.0” development shops. Wouldn’t it be great if there was a superior product that combined the best of all worlds?
Focus on your developments, not your code
Subversion is meant to be the answer to all our prayers. It has a range of user interfaces that are much easier to use than WinCVS, it integrates into existing IDE products, its command-line support is fantastic and it has a similar changeset model of version control to Perforce. And it’s free.
However, it’s a pig to set up and configure unless you’re familiar with installing and configuring Apache 2.0.
Beanstalk takes subversion and makes it effortless.
As a hosted solution, Beanstalk requires virtually no installation on your own machine. The only thing you have to do is upload any code you’ve already written that you want to use with the system.
If you’re a one man coding shop, you might be wondering whether it’s worth setting up hosted version control? It is:
- You get automatic off-site backup for your most prized possession; your code
- If you write something crap, you can look up the history of when it wasn’t crap
- When you hire your first developer, they’ll admire the professionalism and (more importantly), be able to track the evolution of the code from a time before they even knew your company existed
- You can look at your code from anywhere on the planet, even if you forgot your laptop.
- You can deploy your code from any workstation on the planet, even if your laptop is dead
Having a version control system in place can also change your entire approach to coding, boosting your productivity. Instead of sitting down to your IDE and looking for things to improve, new features to work on or bits to tweak, your focus becomes much more task-oriented. All the changes you make are aiming towards the next commit.
This focuses you more on the task at hand, reducing any inclination to go off on a random tangent for the sake of it, because you are focused towards committing the current changeset and the current changeset needs doing as soon as possible. If that’s not reason enough, then go check out the online demos of Beanstalk and try and tell me the UI doesn’t make your code (and diffs) look mouth-wateringly good. Beanstalk gives you even more reasons than the above:
- Looks gorgeous
- Setup literally only takes seconds
- Integrates with other tools that are very helpful and productive for small (or one-man) software developers such as Basecamp and Lighthouse.
If you are in the mood to just mess around with your code, you’ve got the comfort of And finally, if you’re a real control freak, you can even log in to Beanstalk from your iPhone and check on the progress of any pending commits.
All these features show the passion the developers have, so why not go ahead and see if I’m right and sign up for free?
Are you using some other must-have hosted service that helps you be more productive as a software developer? Share your experience in the comments below.
Disclaimer: I do not own stock in Beanstalk, I’m just a big fan of their service. If you’re not even sure about what version control really is, check out this superb visual guide.