Ask Slashdot: Explaining Version Control To Non-Technical People?
New submitter billius writes "I was recently hired (along with another guy) as a web developer at a large university. Our job is to build tools to support the social science researchers on our team. When I got here the codebase was an unholy mess: the formatting was terrible, there were .bak files scattered everywhere and there was no version control system in place. We quickly went to work cleaning things up and implementing new features. My boss was so pleased with our work that she took us out to lunch. During lunch, she asked us if there were any additional tools we needed to do our job more efficiently. We both told her that version control was an invaluable tool for any kind of software development, but had a difficult time describing to her what exactly version control was. I attempted to explain that it created a log of all the changes made to the code and allowed us to make sure that multiple developers working on the same project would not step on each other's toes. I don't think we really got through to her and a few weeks passed with us hearing nothing. Today we were asked by another supervisor if we needed any additional tools and we went through the same spiel about version control. She suggested that we try to write up a brief description of what we wanted and how much it would cost, but I'm drawing a blank an how exactly to describe version control to a person who isn't very technical, let alone a developer. Does anyone out there have any tips on how to sell version control to management?"
She suggested that we try to write up a brief description of what we wanted and how much it would cost ...
I don't understand why this story is tagged with git and svn then asks how much it will cost. Check out Gitstack, roll your own git on Linux, or any of a million ways to do svn or cvs ... I mean, every version control system I've used in the past ten years has been free. I mean, if you're talking about ... what, SourceSafe? Is there some crappy IBM like ClearCase thing? You think you need to pay for an online service? I don't think you need to move this off your own personal servers unless you want it open sourced. What features are the tagged version control systems missing that you need to request funds for?
Here's how I explain version control to non-techies: "Remember that time you had to work on a group project and you started writing a word document in MS Office and then you passed it out to the group while you still worked on it and then you got four more versions back with corrections and updates and you just started cursing out your computer? Yeah. Believe it or not, they fixed that problem for software a very long time ago and it's dirt cheap. In fact, if developers follow simple rules, those versioning nightmares you had with your group's powerpoint and other Microsoft files never happens."
People have dealt with this problem in other realms for a long time so you just need to find something to relate it to that they've experienced and it'll start clicking much faster. Failing that, wikipedia has visuals.
My work here is dung.
I will quote from Stack Overflow (http://stackoverflow.com/questions/1408450/why-should-i-use-version-control):
Have you ever:
Made a change to code, realised it was a mistake and wanted to go back?
Lost code or had a backup that was too old?
Had to maintain multiple versions of a product?
Wanted to see the difference between two (or more) versions of your code?
Wanted to prove that a particular change broke or fixed some piece of code?
Wanted to submit a change (patch) to someone else's code?
Wanted to see how much work is being done (where/when/who)?
Wanted to experiment with a new feature without interfering with working code?
In all these cases a version control systems should make your life easier.
Very much this. Trying to give a technical reason to a non-technical person who doesn't understand the benefit is futile. Take a lesson from Apple. They explain technical benefits in a 'what it will do for you' way.
Give a scenario where the lack of version control does something suitably bad, and then explain what it does when properly implemented.
One caveat. Keep the benefit a bit more watered down than above. When dealing with management, keep it simple, and meaningful to them, not to you. Talking about validating a form field or whatnot isn't a good way to go about it. Talk about the lost time and productivity, potential impact while troubleshooting and finding root cause, etc.