May 29, 2012

Wanted: Version Every Thing

Version Control

Although it’s common to find the problems that a lack of versioning causes, the world is just catching on to the idea of applying the power of version management to problems outside of software. So it was with interest I read Chris Anderson’s recent article on wired.com titled “Wanted: Version Control for Stuff”. 

This article makes the case that many types of projects will benefit from version management. It’s significant that the author ties the ultimate success of open source projects to the quality of the version control tool being used. Also insightful is identifying that good version control tools enhance and encourage collaboration. Of course, non-open source projects benefit just as much from good version control as do the open source types discussed in the article.

Proprietary, tool-specific workflow management tools are examined as a solution, such as those found in Autodesk’s AutoCAD, but are dismissed as too expensive, as well as locked in and proprietary to each authoring tool. Instead, the creation of an open source website for versioning non-code content is proposed, to do what GitHub, Sourceforge, and Google Code have done for software.

This sounds like a great idea to me partly because it is independent recognition and validation of Perforce’s Version everything message. Whenever you create related pieces of content receiving incremental changes, unless you have a version management system in place, the resulting unmanaged variants set the stage for trouble.

I’d like to expand the proposal of an open source, versioning website beyond the initial scope, and into any endeavor where unmanaged variants are created. From this viewpoint, a versioning service might be a better solution: one that can sit behind an open source web site, inside the firewall for corporate assets, or even bundled into another front end. 

This versioning service might allow applications such as the previously mentioned AutoCAD program to separate the versioning functionality from the main application. One benefit would be a shared format for the version metadata, which enables collaboration and version tracking across individual application content types. Another benefit would be leveraging the power of existing, proven solutions, such as Perforce, whose primary function is to do version management, rather than going at it alone separately in each authoring tool.

I’ve glossed over the challenges of detecting and visualizing differences, as well as merging and resolving changes, between content of non-text files. Look for future posts exploring this interesting problem soon.

Of course, version management only works if your content and related information is tracked by your version management system. That’s a driving force behind Perforce’s Version everything mission: to solve the problems of untracked, unmanaged variants of your content, you literally need to version everything that goes into their creation.