(Update: Read Daniel Bachhuber’s notes from the #bcniphilly 2011 session I led on GitHub for News)
Basically, I would have a testing environment (sandbox) and it would make sense to also have a place (branch) to work on something separate from core development code (trunk) that the development team uses.
Version control is one of the parallels I drew between journalism and programming concepts in my second post inspired by computational thinking. Specifically:
Version control: When creating software, a core principle is keeping track of each iteration of the project. In the editing workflow of a news organization, you ideally keep track of different revisions, either on a single document (for The Hurricane, that would be in the WordPress admin) with a history or by saving a new document and noting who last saw it (as The Hurricane did before switching to WordPress).
Now that I better understand the tree, trunk and branch terms in the context of version control, I wonder why we don’t apply these principles to journalism — and how we could.
- How can we best apply principles of version control to journalism?
- How much easier would it be to collaborate on journalistic projects if we did?
- How could it help open up the process, both inside and outside the newsroom?
In short, another instance of rethinking our thinking about how we practice journalism and what areas can better inform what we do.
A conceptual example
Say I’m a reporter working on a story about the Gulf of Mexico oil spill, that story would have its own “trunk.” The journalists in my newsroom would all work off that trunk. But we only have limited resources and we’re not personally experiencing the disaster, so we open up branches for business owners and residents affected by the spill to help them tell their own stories.
Or maybe I’m working on another on-going story, such as unemployment. There’s a trunk that the newsroom works on and branches for unemployed workers to also contribute.
In either case, you can bring in others to directly collaborate in some way. The branches could be working versions of content the collaborators are producing and need to be checked before being added to the trunk.
This is already being done in many places where people submit personal stories, photos, videos, etc. Applying version control concepts would be a way to better incorporate outside material (from other newsrooms or amateur contributors) on a level field, rather than relegating it to a separate and/or lesser space or doing so haphazardly.
Maybe the platform could be a simple system such as how Wikipedia, WordPress or Google Docs show revisions history. But it could also be as advanced as using Subversion itself, which is
a general system that can be used to manage any collection of files. For you, those files might be source code—for others, anything from grocery shopping lists to digital video mixdowns and beyond.
The ideal would probably be something in the middle that’s more robust than the three examples mentioned above yet simpler and more user-friendly than Subversion.
Applying version control — and other programming concepts — to journalism makes sense to me because of shared fundamentals such as working collaboratively, checking each others’ work and updating/revising.
Anyway, it’s an idea that popped into my head and, to reiterate the questions, made me wonder: could we apply version control concepts to journalism? And, if so, how could we best do this?
UPDATE: (7-11-10) Two posts relevant to the version control and journalism discussion that I’d completely forgotten about: Version Control for Campaign Promises by Brian Boyer and ProPublica’s ChangeTracker Lets You Watch Government’s Moves by Megan Taylor, which is about one of Brian’s projects.