Version Control and You - Part 2
Tags: 
Date: 21 November, 2007 - 10:18

This is a followup to my previous post - Version Control and You - and although I was going to shift the disccussion towards what you can do with this safety net, but now I need to write a followup. I'll get back to that one later.

Right off the bat, the unanimous opinion from the public comments was in agreement. We all see version control as necessary and a useful tool and we can't understand why people don't/wouldn't use it. But the email I received were a little different... since I don't have permission to publish those, I'll summarize a few of their points:

One emailer wrote "Version control is just too complicated."

Alright, I'll concede the point that setting up and maintaining Subversion can be complicated.  I used to do it myself but I found that I was spending too much time managing the tool and not enough time working. So I shifted to a hosted service. Many of the hosting companies - RailsPlayground, Dreamhost, etc - offer Subversion hosting and CVSDude does the same.  The prices range fomr $5-30/month.  What's your billing rate again?

But using it is much simpler. If you think of it as a timestamped backup - and rollback - service, you can get value out of it immediately. Branching, merging, tagging, and all kinds of other things are great, but they're not required and you may never need them. Walk before you run. 

Disclaimer: CaseySoftware does a great deal of our own hosting and customer hosting through Dreamhost (coupon code: caseysoftware). RailsPlayground is used for all dedicated hosting and the core infrastructure of WhyGoSolo.

Another wrote "Our project is too simple, we don't need it."

Personally, i think no project is too simple.  Whenever you are changing code, adapting and expanding upon it, you're going to run into scenarios where you might want to look at what you did last week.  More importantly, you might want to see the exact version of everything deployed at one precise moment in time and compare against what you have now.

Another wrote "We don't have time for version control!"

Okay.  But you have time to manually merge the files?  How many times have your changes been overwritten?  How many times have you overwritten someone else's changes?  How much time have you debugged the same problem multiple times?  How much of this time is billed to the customer.

Finally, one wrote "We don't need it, we're all in the same office!"

Wrong.  Wrong. And wrong.

In a major project years ago, this was our starting point.  When we were modifying core pieces, we'd let everyone know and then merge the changes after the person was done.  We were constantly talking, constantly putting pieces together, constantly combining things for another release.  For a while we thought this "collaboration" was great.

But years later, I realized something.  It wasn't collaboration at all, it was constant triage.  We weren't talking about ways and ideas to move the code forward or do interesting and innovative things.  All of this talk was required just to keep pace, to not make everything worse, and I can't imagine how much effort was wasted.

In conclusion:  Stop complaining and do it.

You'll save back the time and effort involved in a matter of weeks.  And you'll be able to think and talk about the important things instead of the basics.

If you're in the US, have a Happy Thanksgiving tomorrow.  If you're not, have a Happy Thursday.  Either way, this space will be tech-free. 


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Version control can be cool too

I thought this article was a good indication of just how far version control has come and I've heard free user licenses are coming to a theatre near you.

http://www.cmcrossroads.com/product-reviews/product-reviews/accurev--4.5-%11-the-next-generation-in-scm.html

This is fun:
http://blog.accurev.com/2007/09/21/reparenting-workspaces-whats-the-hype/

Thank you for the interesting posts.

Mark

An even easier way to start with source control

I started to work with Gil (Arkon from ragestorm.net) on diStorm 3. We decided that there is absolutely no way we'll do it without source control. We set up an account at www.assembla.com for free, and we got Subversion and Trac. While we don't use all the features available (we don't know how to use all of them, and furthermore, we probably don't need most of them right now), we certainly do use the basics.
So three steps to start working with source-control:
1. Open an account at Assembla, or some other similar site
2. Install TortoiseSVN if you're on Windows, and RapidSVN if you're on Linux,
3. Just start committing. The rest will come on it's own.

This is as easy and painless as it gets.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br> <img> <p> <blockquote> <strike>
  • Lines and paragraphs break automatically.

More information about formatting options