The third installment of my version control manifesto is a short story made long with a simple moral at the end.  If you’d rather skip the story, just read the title and take that to heart.

Recently what started as a lovely afternoon at Guitar Center ended with me changing a car battery in a parking lot after dark.  On New Year’s Eve.  I’m not really complaining.  I’m not that handy, so when I can fix a car and look manly in front of my family, I’m pretty happy to do so.

Fortunate as I am to have a good job, I can drive cars that are just new enough I don’t carry tools in the trunk anymore.  Just emergency reflectors and jumper cables.  This is fine because:

  1. As acknowledged above, I’m not that handy.
  2. You can’t do anything to cars yourself anymore. Changing spark plugs on one of my cars requires removing the intake manifold.

Despite my best efforts with jumper cables, I could not get the car to start.  So, I found myself at Walmart buying a battery and asking if I might borrow a wrench, because even though I went home and picked up tools, I couldn’t fit a ratchet and socket into the space I needed.  The gentleman went to the back and got me a side-post battery terminal wrench:

This is a 1/4″ ratcheting box end wrench.  The handle is short, so if you slip, it should not be long enough short between the two terminals of a car battery (yes, I have done this with a ratchet before).  Also, the handle is insulated so were you to do that, hopefully it still won’t short anything out.  It is flimsy (as wrenches go).  It says right on it not to use it on anything except a battery terminal.  And that flimsiness serves a purpose.  Car battery terminals are made of lead, so you don’t want to over-torque them.  Also, because it’s flimsy they sell for about $5, which means I was happy to just buy one so I could throw it in the trunk when I was done.
This little tool is genius.  Why?  It does not try to do too much.  It is an affordable solution for a niche use.
So, if you’re at home in your basement writing the next big version control system:
  1. Don’t try to do too much.
  2. Stop.  There are enough out there.  We talked about this already.

There are larger systems out there have their own file systems and work well when developers are distributed across multiple sites.  That’s fine.  This doesn’t mean that to win my seal of approval (which I know is all the rage in the version control world) your system needs to scale things back to the features of RCS.  It means that the interface should be straight forward enough that a user can figure out the basic features common to all version control systems without trying too hard.  Diffing a single file, viewing a version of a single file, viewing the history for a file, checking in a file – these should be easy.

Have I overlapped another episode of the manifesto?  Perhaps.  But

  1. In general, manifestos are supposed to be long rambling documents written by the semi-crazy, and it seems like it’s OK to repeat myself.
  2. This particular issue is this important.

Don’t believe me?  You can’t figure out how I could possibly be right, and you be wrong, given that I’m toiling away in a cubicle filled with years of so much junk my desk is nearly unusable, while you are on the precipice of taking over the version control world? OK, let’s take a look at what happens when you try to do too much. A great idea, years ahead of it’s time that just didn’t catch on.  And still hasn’t. Ladies and gentleman, I give you Aerocar:

What are the most important methods of travel in our modern world? The automobile, and the airplane.  The automobile, an amazing invention that let’s us live 30 miles from our office, or go to the store when we need something, even if it’s dark already.  I am told before the automobile was invented people got along somehow.  Personally I don’t even like to think about it.  And don’t even get me started on the airplane.  Without the airplane, my children would never have seen Disney-world – because I could never handle that drive (not with my kids anyway).  It’s just like a big, fast, car in the sky.  And like an automobile, practically anybody can drive one – provided you have hundreds of hours of training and understand that in an airplane when you have a “fender bender”, everybody dies.

But what happens when you get where you’re flying?  If you left home, you probably left your beloved automobile there.  Well not if your airplane is a car.  A car that is an airplane. An airplane that is a car.  It’s like peanut butter and jelly.  No, it’s even better than that.  It’s like peanut butter and chocolate.  So why did I embed a video from when people got their news from movie theaters because 24-hour television news channels did not exist?    More recent films of Aerocar exist.  But the truth is they don’t matter.  Why?  Because it’s a car that is an airplane.  It’s not just a chance crash into another car on the highway at 70 miles per hour.  It’s a chance to hurdle out of the sky at terminal velocity into cars on the highway that are doing 70 miles per hour.  It’s not like peanut butter and chocolate.  It’s like alcohol and power tools.  Let’s put safety aside for a moment.  As a car, it makes the Edsel look attractive.  And to be effective as an airplane, you have to bring a small trailer (just about the size of an airplane wing) wherever you go.  It tried to do too much.  So you can go see one of the six that were built at various museums around the United States.

I’m a guy.  I love tools, whether I need them or not.  I love a lot of things that don’t make sense.  I love sledgehammers.  I love drag racing – because I can think of no pursuit more ridiculous pursuit than going 1/4 mile in a straight line as fast as possible.  Naturally, I love this thing.  If I have to check out of this world, I can’t think of a better way than crashing a flying car.  There would be no terminally ill men in this country if crashing a flying car were offered as a method of euthanasia.  But it was the best thing I could come up with to make my point.  A tiny motorcycle that fits in your plane is a more practical idea.

To sum up:

  1. Don’t try to do too much.
  2. Stop it!  There are enough version control systems in the world.