Version Control for Everybody

I once listened to a professional SF writer lecture about his craft. A wonderful fellow — highly competent, writes great stuff, and a super nice guy to boot. His lecture included all sorts of useful and insightful tips. But the part that stuck in my mind to this day was what he said around how he handled backing up his work in progress:

“I have a folders for each story. Every day, when I’m done writing, I click Save As and save my story as ‘name-of-story date.doc’. Then every few weeks, I burn my story folders to a new CD…”

When confronted with a complex software-related problem, “regular” people develop all sorts of rational responses and workarounds that give those of us in the software industry the vapors. Nothing captures the disconnect between software people and regular people better than Yishan Wong’s breakdown of what’s wrong with OpenID:

To answer the most immediate question of “isn’t having to register and log into many sites a big problem that everyone has?,” I will say this: No, it’s not. Regular normal people have a number of solutions to this problem. Here are some of them:

  • use the same username/password for multiple sites
  • use their browser’s ability to remember their password (enabled by default)
  • don’t register for the new site
  • don’t ever log in to the site
  • log in once, click “remember me”
  • click the back button on their browser and never come back to the site
  • maintain a list of user IDs and passwords in an offline document

These are all perfectly valid solutions that a regular user finds acceptable…

One of the tragic things about this disconnect is that Actual Good Ideas that software people take for granted end up taking decades to migrate out to regular people in a form that they can actually use. As an example, take backup — an absolutely critical feature that until fairly recently, regular people would implement (if at all) by occasionally remembering to burn some files to a CD. Pathetic. And by “pathetic,” I mean we the software industry, not the poor end-users.

Which brings us to version control. Version control is one of the few innovations in the field of software engineering that is an unalloyed good. Even a creaky, antiquated version control system is much better than having no version control at all.

Of course, version control systems are designed for software construction, which means they have tons of complicated features for nerds. Version control for regular people would look something like this:

  • It would work automatically on all of your documents.
  • It would save new versions for you in the background.
  • It would have a friendly interface for going back in time and retrieving old versions.

This is what Apple appears to be shipping in OS X Lion. A simple, friendly, OS-level versioning service for apps to hook into. In one master stroke, Apple has just granted millions of people the same power software engineers have enjoyed for years: the ability to author without fear. This is huge.

Granted, it took about three decades to get to this point, but still — this is a great moment for anyone who does creative work. And if you don’t use OS X, cheer up. Any operating system worth using will be implementing something similar very soon.

5 thoughts on “Version Control for Everybody

  1. I am so ready for this feature. I think I have about 30 SVN repositories at work for versioning various things that SVN was never meant for, but works well enough. Something built into the OS would be great!

    I have no choice but to use someone else’s OS at work, so I hope this catches on! Maybe the hard disk manufacturers can subsidize the development.

  2. I am sure this will catch on. Every OS on the market is now on notice — they now have approximately three years before the Mac app ecosystem catches up and regular creative people start wrapping their heads around how awesome and freeing version control is.

    Which means your OS at work must begin implementing this feature *real soon now* so that its app ecosystem is not too far behind OS X. OSes that somehow fail to implement this feature will begin hemorrhaging users after the three year timer expires. Either way, problem solved.

  3. Re: backup, I’m still waiting for Apple to take the next logical step for Time Machine / Time Capsule, and build in an easy-to-use subscription service that uses something like iDisk, at a much larger scale (say, $25/mo for 500 GB of storage) to keep a duplicate of your drive online. If you only have Time Machine, you’d basically do this the same way Carbonite and Mozy do. If you have a Capsule, the Capsule would handle the synchronization to the online service, during times when it wasn’t serving data to DHCP clients.

  4. Those prices are roughly in line with Mozy’s new pricing structure. I used to use Mozy over a year ago, but eventually gave up due to various technical issues.

    Remote backup is tricky. It is a PITA to upload ~1TB using consumer-grade networks, at least in the US. So realistically you end up choosing to backup a subset of your files. Which is no problem for anyone technical, but note that this is already getting more fiddly and complicated than Time Machine. There’s a reason why the entire Dropbox product is “One folder. It syncs.”

  5. I dunno, I had no problem, with the Carbonite account we have for work, with letting most of my work laptop get backed up to the network. Sure, it took almost a week to initialize, working in the background, but since then, it just uploads updated files.

    Also, in terms of the problem you’re describing, this is exactly why interposing a Capsule is such a good thing. The Capsule is on 24/7, and there’s a good 12-15 hours a day that it could be happily chugging away, sending your encrypted backup to a safe remote location, without you lifting a finger.

Comments are closed.