You are currently browsing the tag archive for the ‘Version Control System’ tag.
Originally posted on Internet Media Labs Blog – September 6th, 2012
Sometimes it is the little things that are the most useful in life: using a paperclip to retrieve a disc locked in a computer or as emergency back up when the hems on your clothing are in disrepair.
One virtual paperclip that has huge potential for Social Media is versioning.
Versioning, or more accurately, Version Control System (VCS), is the secret sauce that keeps agile development agile and multi-threaded tasks in synch. Versioning maintains content and context for any given artifact and is most commonly used in software development – in particular maintaining code bases or code trees.
Versioning is much more than a way to ensure edits and changes are not lost and can be tracked.
Version Control Systems have evolved to enable a protected, searchable environment, allowing individuals to create separate branches and then merge their modifications or augmentations back into the base. Each version can be searched and reconstructed, providing both stability and maintainability.
The quality of code is improved as bugs can be traced back to the time of their introduction. Quality can be further improved by including relevant comments and logs, all of which help provide richer history and valuable context when revisions or replacements for the code base are being considered.
While this is all very useful – I would suggest essential – for application development, versioning has even greater potential to support and improve the quality of most, if not all, collaborative projects.
Like the paperclip, VCS can be applied to any creative activity where content changes frequently, particularly where multiple contributors are involved. VCS allow contributors to create and evolve their own branches which can then be merged back to become the latest version. Using a VCS is so much simpler than using “track changes” in an office productivity document, which does not support multiple branches nor keep each saved change.
Reconstruction of office productivity documents case tempts the patience of even the most tolerant of individuals.
Let’s look at a few cases where the approach would be integral to effective effort and overall success of a collaboration.
Case 1: Collaboration Dictionary:
Standard Definitions and Terms are easy to establish when co-workers are part of a specific group. Common vocabularies usually develop in most communities, but writing down the words and their definitions is critical to ensuring that there are no ambiguities or misinterpretations.
When co-workers belong to different groups with their own vocabularies, the challenge becomes larger and the value of a dictionary rises.
As the group’s reach continues to expand, so too does the potential for miscommunication and misunderstanding. Authoring and maintaining the dictionary can be onerous, especially where it is approached from within a hierarchy, where one group or individual controls the content and holds the sole authority to augment, modify and publish.
Opening up the effort to joint collaboration is both expedient and efficient, providing there is sufficient control to ensure integrity and maintainability. A version control system will allow co-workers to define their respective areas of the dictionary, treating each term or collection of terms as a branch of the information base.
The VCS will facilitate the merging of the branches, as well as the ability to roll back to any version should it be required.
Case 2: Risk Assessment
Risk assessment is another key part of planning and demands copious amounts of input, discussion, review and revision. Similar to the Dictionary case above, risk assessment is relatively easy when performed in a small discrete group. Again when the scope of the project extends to other groups the complexity and effort required increases factorally.
Collaboration can ameliorate these difficulties, dependent on good governance and control. In this case VCS offers a bonus benefit, which is a full context of the discussions and determinations made during the lifetime of the risk that is being assessed.
Before VCS Risk Assessment documents were static and usually represented the final summary of assessment. But VCS allows that assessment to continue as a living artifact, providing historical context when new events and conditions demand a fresh analysis of the solution and its environment.
Case 3: Curation
I have often stressed the need to treat curation, and especially organizational curation, as a form of Information Lifecycle Management.
Organizational curation means that information is not just a publication, with fresh content for every issue. Information needs to be cultivated, nurtured, refreshed and made available when and where it may be needed.
Old information never dies, it awaits to inform future consumers of ideas and knowledge. So content is more than the data presented either visually or verbally, it is augmented by meaning and context, both of which can be accommodated in a versioning approach.
The cases above are fairly common, but are usually contained within a particular organization or enterprise – in other words behind the corporate firewall.
Generally. in these cases the individuals, are part of the same organization (at least for the project at hand) and in efficient companies experience a common purpose, culture, and set of standards and policies.
The ever-increasing possibility of external collaboration on projects makes the value of a Version Control System reach the level within Software Development – i.e. Essential.
Moving Version Control to the cloud and enabling a distributed model makes the “essential” desirable. DVCS (Distributed Version Control System) removes the need for centralized management and the dilemma of either supporting every known platform and stack, or limiting the number of contributors to those that comply with corporate standards.
Distributed Version Control opens the door to wider communities, unrestricted by culture, location or time.
It proves the paperclip that keeps collaborative efforts organized, manageable and crowdsourced.
Photo by Tyler Howarth via Flickr Creative Commons
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.