Help user develop a mental model for version control system

by Laura Beckwith   Last Updated September 18, 2018 01:16 AM

We are developing an integrated version control system for a large enterprise application. When users change something to the underlying data in the system they do so through a "Work Item"

This is implemented a lot like a version control system for code: when a user starts working on a work item we branch off the underlying data to isolate those changes from the main system. After the user is finished those changes need to be merged back into the main system.

This work item can get tricky with synchronization and committing changes. I'm concerned about what mental model the users may build up about work items and how to present the idea of merge conflicts or failing tests that kicked off automatically in the background on a commit.

Does anyone know of examples of version control systems aimed at non-programmers that abstracts the details away and yet provides the flexibility and robustness ?

Or do you know something about mental models for version control systems?

Answers 2

The key to introducing version control into an interface is to make it as transparent as possible. I'd hide terms like "branching" and "merging" from the interface, as these terms aren't really important to the user - version control supports their task of making changes, so creating a transparent version control interfaces would be my top concern.

Also, this may require taking a look at the broader issue - why is version control required? Is this something that can be solved in architecture? It sounds like you're isolating changesets to avoid deadlocks, which is an indicator that the data architecture isn't optimally designed. I'd evaluate that first before introducing another layer in version control that may complicate the process.

June 05, 2012 16:57 PM

The best example I have is the built-in file versioning built into OS X Lion.

The version tracking happens completely transparently as Nic mentioned in his answer, and they provide an interface based on their previous tool Time Machine for browsing historical versions:

OS X Lion version browser
Image taken from

The most important thing about this solution though (that is technically very difficult to achieve), and one of the main things that make version control systems a pain is showing the user visually the state of the file in different versions.

Code versioning systems like Subversion and Git are based on line-by-line file "diffs", which aren't very appropriate at all for documents and other visual media. By showing users a fully interactive demo of the file at each version, Apple's solution makes it easy for even a novice user to select the appropriate version.

Kit Grose
Kit Grose
June 06, 2012 03:27 AM

Related Questions

Canonical Data Model Help

Updated August 27, 2018 20:16 PM

What's concretely the designer's mental model?

Updated November 22, 2017 02:16 AM