Slashdot Mirror


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?"

30 of 383 comments (clear)

  1. How Much Would What Cost? by eldavojohn · · Score: 5, Informative

    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.
    1. Re:How Much Would What Cost? by jabberwock · · Score: 5, Insightful
      This question only needed one answer, and the first post had it.

      I wonder if that has ever happened here before?

    2. Re:How Much Would What Cost? by CastrTroy · · Score: 4, Interesting

      The problem is that you can't do a diff between Word documents. Source control and diffing tools work great on source code because it's all just plain text. But for things like Word documents or Powerpoint presentations things get a little more complicated. Sure with a version control service you won't lose any previous versions, but you don't know what changed between versions either. To me this is the major thing missing for MS Office, and I can't believe they haven't done it yet. Sure they have track changes, but you have to remember to turn that on. There's no reason you should have to track changes. You should be able to take two versions of the document and MS Word should be able to tell you what has changed between the two versions. I think that if OpenOffice developed this feature it would be a killer feature that might get people to actually start using it. Because as you pointed out, when you have 4 different versions of the same document from 4 different people, it's nice to be able to figure out which changes those 4 people actually made without going through all 50 pages of the document.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    3. Re:How Much Would What Cost? by johnkoer · · Score: 4, Insightful

      I mean, every version control system I've used in the past ten years has been free

      Cost is not always measured solely in software costs. You typically need servers to support the software and last time I checked they cost money. Also, employee time is not free for setup of the repository, for training and for documentation of the process.

      I love SVN for version control, but it is never free. It's just less expensive than other software alternatives.

    4. Re:How Much Would What Cost? by ckthorp · · Score: 4, Informative

      That's a lie. At least since Word 2003, there is a compare documents feature that you can use to make diffs of Word documents. Works fairly well unless someone really rototills a document with a ton of moves and rewriting.

    5. Re:How Much Would What Cost? by MikeBabcock · · Score: 5, Informative

      Except you can -- Microsoft Word does have revision control, and its quite handy. Its not quite git or svn, but its there and groups know to use it.

      --
      - Michael T. Babcock (Yes, I blog)
    6. Re:How Much Would What Cost? by amicusNYCL · · Score: 5, Insightful

      Another analogy is backup, everyone knows what a backup is. Source control is like a backup that contains every change ever made to every file, who made them and when, and allows you to switch between them to find and fix problems. They might have a hard time understanding merging, but they at least know what a backup is.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    7. Re:How Much Would What Cost? by Auroch · · Score: 4, Insightful

      Agreed. If I had mod points, this is how I'd explain version control to an apple user. I mean, a non-technical user. Besides, everyone likes backups, and playing the "scare" card should get some buy-in on your implementation.

      --
      Quartz Extreme and Core Image. Are there any other real reasons to spend all that money on generic hardware?
    8. Re:How Much Would What Cost? by Lehk228 · · Score: 5, Insightful

      Version control has a negative price in most environments, although that negative price is not collected until the first few times it saves your ass.

      --
      Snowden and Manning are heroes.
    9. Re:How Much Would What Cost? by GigaplexNZ · · Score: 3, Informative

      And TortoiseSVN even integrates with it to some extent (for diff, not merge).

    10. Re:How Much Would What Cost? by Jane+Q.+Public · · Score: 3, Informative

      "This question only needed one answer, and the first post had it.
      I wonder if that has ever happened here before?"

      Damned straight. I would not even have spoken to my supervisor about it. I would have installed Git and gone with it.

      If (for some Gridawful unforeseen reason) the supervisor had a problem with it later, I would go over supervisor's head and ask the next boss up why supervisor doesn't know how to do her job.

      Period. End.

    11. Re:How Much Would What Cost? by billius · · Score: 5, Informative
      Hey everyone,

      First of all, thank you so much for all of the responses! I've seen some really good ideas and I appreciate all the input. It seems that I unfortunately wasn't quite clear enough in my initial post. The other developer and I have been trying to get the management to spring for an online service like Github or Kiln. To answer a few frequently asked questions:

      Q: Why don't you just run git/svn/hg on your local machine? A: I am running hg on my local machine currently for version control. While this is much better than no version control at all, it leaves a lot to be desired in terms of collaborating with the other dev and managing deployment.

      Q: Why not run your own server? A: The other dev and I have talked about this, but there are a few problems. First and foremost, it takes time to setup and maintain such a server and the cost of many online services like Github are pretty modest. The other problem is that we're not really in control of the servers and equipment. That's handled by a separate IT group, so we would have to get them involved to make this happen. Then there's the fact that the IT guys at our work mostly deal with Windows servers while we're mostly *nix fans. Neither one of us has setup a Windows box as a VC server before, so I'm really not sure how well-supported that is. What is really boils down to is the fact we could get a month of hosting at Github that would suit our needs for about the cost of an hour of work from on person. Therefore we kinda figured that it might just be easiest/cheapest to go with a service like Github.

      Anyway, thanks again for all the responses!

    12. Re:How Much Would What Cost? by Jeremi · · Score: 5, Insightful

      A week? If it takes you a whole week to save the time required to "git init --bare; cp -r orig_code_location/* ./; git add .; git commit -a -m 'initial commit'" you are doing something wrong.

      Why yes, a simple and intuitive command line like that one practically types itself. It's the first thing any source-control newbie would think of! ;)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    13. Re:How Much Would What Cost? by styrotech · · Score: 4, Informative

      So, it sounds like:

      a) You use mercurial,
      b) You want the functionality of github or at least most of githubs functionality,
      c) You need some sort of private repository or repositories,
      d) You might only have a few developers on your team,
      e) You are having trouble convincing your bosses enough for them to pay for something...

      Have you looked at bitbucket.org?

      The free plan gives you unlimited private repositories, and up to 5 collaborators for those private repos. And you can create either hg or git repos. By being free, you presumably don't need to convince your boss to pay.

      And you can get a few extra free users at the moment too:
      http://blog.bitbucket.org/2012/09/18/refer-a-friend-to-bitbucket-for-free-users/

      Generally I prefer github overall (only slightly though), but they have no free offering with private repos and in general they can be more expensive. I find bitbucket is "good enough".

    14. Re:How Much Would What Cost? by Anonymous Coward · · Score: 5, Insightful

      Important follow-up note: taking advice from JQP on how to interact with human beings is likely to leave you ostracized.

  2. Mac OS Time Machine by Anonymous Coward · · Score: 3, Insightful

    You could say it's like Mac OS' Time Machine, where files are backed up and can be pulled up from the past. Then say it's like each user can work on their own copy in time and put the files together in the future.

    Or you could just ask for server space and stick the repo in a central location.

  3. Don't explain _what_ it is, explain how it helps by Omnifarious · · Score: 5, Insightful

    First, you should've added a 'Mercurial' tag. :-)

    Explain what it will do for them. For example...

    So, let's say we're working on the website and the code behind it. We push out some new code one day, and a few days later, after we've already started working on a bunch of other stuff, someone reports a bug. One of the form fields isn't validating correctly.

    But, we've been working on that form already. We can't really tell if the bug is still there, or if maybe it was something that was wrong that got moved around. We also can't tell how the bug got there in the first place. That's because we don't know what the old code looked like exactly anymore.

    But, suppose we had a version control system.... Then, when we push new code out to the site, we know exactly which version we push. When someone reports a problem, we can easily go back to that version in a testing environment to find the problem for ourselves and figure out exactly what's causing it. And then, once we've determined the cause, we can analyze the history (because we've been keeping a history of everything we do) to figure out how the problem got there in the first place so we can do better next time.

    There you've explained how it helps you. You no longer need them to understand what it is exactly. You've just explained why it would be good for them to get it for you, and that's all they really care about anyway. They don't want to understand what it is. Understanding stuff like that is why they hired you in the first place.

  4. Stack Overflow says... by Anonymous Coward · · Score: 5, Informative

    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.

    1. Re:Stack Overflow says... by plover · · Score: 5, Informative

      Another link from Stack Overflow (http://stackoverflow.com/questions/1469623/a-few-basic-version-control-questions) was a link to this series of articles on source control by Eric Sink: http://www.ericsink.com/scm/source_control.html Chapter 0 includes his list of benefits:

      • It provides a place to store your source code.
      • It provides a historical record of what you have done over time.
      • It can provide a way for developers to work on separate tasks in parallel, merging their efforts later.
      • It can provide a way for developers to work together without getting in each others' way.

      For a completely non-technical manager, a money analogy is probably more appropriate. Remind them that their source code represents the total of investments they've made in developing software. It's the output of thousands (or millions) of hours of very expensive labor. A source code control system is like a bank, keeping their investments safe and organized.

      From there, you can use all of these arguments to point out how expensive it can be to not have a source code control system. It's a single point to back up, making maintenance of all your source code simpler and more manageable. It lets you get back to when something worked, in case someone's made a change that broke stuff. It's an efficient way for developers and projects to share code, to browse the whole library of what you've got. Let them know that it makes people working on a program more efficient, because they're not spending time hunting down where the code is hiding. Let them know that the development tools you already use have the capability to integrate into source management tools (assuming you use Eclipse or Visual Studio) and that they work faster with them. A good source code management system makes things faster, not slower.

      You might give them specific examples of a couple of costly failures that impacted your organization. "Remember that time Joe spent two months working on Project X, and then his PC crashed and his disk drive went bad? Remember when Jane suddenly left and nobody could find the stuff she'd been working on? Those incidents had to have cost us several thousand dollars each in wasted effort redoing all that work. A source code control tool would have prevented them automatically."

      You could remind them that it's a computer program whose entire purpose is to automate the processes that your people are currently managing with manual processes. It can do those tasks far more reliably and much faster than the humans.

      And to dive off the deep end, a complete application lifecycle management system makes it much easier to organize everything about your products. It lets you manage everything by storing it all in the tool, such as requirements or other project documentation, along with the source code. You can manage the projects in the tool, by assigning work items in it, collecting and managing bug reports, creating tests, managing product feature backlogs, etc. An ALM tool can make the project visible to everyone involved by presenting project status on a web page. But given that your manager doesn't yet understand the value of such an ordinary and foundational tool as a source code management system, you'd no doubt scare them off by throwing out an ambitious plan to change a lot of stuff. But it wouldn't hurt you to consider features like those as potential next steps of improving your software engineering practices.

      --
      John
  5. Nutshell: It's like a ledger by davidwr · · Score: 5, Insightful

    Get his attention with this:

    "Would you run a business without a ledger?

    We've been running our software development like that and it's high time we started doing it right."

    Now that you have his attention, you can sell him on the particular version-control-system you want and, if necessary, explain the other good things a VCS can do, like provide legal accountability of which employee checked in what, forking off maintenance releases, and more.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  6. Why are you asking permission? by iiii · · Score: 5, Insightful

    Why are you explaining and asking permission to use a tool? Download git, install it, use it, done. Standard practice, free, so what's the issue? Just do it. The management doesn't want to see how the sausage is made.

    Also, there is a "manage your management" issue here. When the bosses ask if you need anything, you need to provide answers that they understand and can accomplish. Asking for something they don't understand and don't know how to get for you leads to them feeling stupid and ineffective. Line up your own tools without bothering them. When they ask what you need be ready with something that they can easily accomplish, like stocking the fridge with Mt. Dew.

    --
    Light cup, beer drink, thin so chain, neck turtle fat, man I won't say it again
    1. Re:Why are you asking permission? by GigaplexNZ · · Score: 3, Insightful

      There's free software out there with clauses in their licenses that say not for commercial use, and other potential restrictions. I don't think it's unreasonable (even if it would annoy me) to have such a policy in place to make sure 3rd party software licenses are not violated. Lawsuits can get messy and expensive.

  7. Re:Don't explain _what_ it is, explain how it help by DJRumpy · · Score: 4, Informative

    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.

  8. Simple Answers Are Best by indymike · · Score: 5, Insightful

    Version Control for code is exactly like accounting software for money. Without accounting, your business would fail as it becomes more complex. Eventually, without version control, the process of building software will fail as development becomes more complex.

    --
    -- Mike
  9. You were rewarded with lunch? Whoa now... by Trip6 · · Score: 3, Funny

    She thought enough of your work to take you to lunch? I think you have to declare that. I've been doing version control for years and never even got a Twinkie.

    --
    I hate being bipolar; it's awesome!
  10. Re:wait... by SuperQ · · Score: 5, Funny
  11. Re:Nutshell: It's like a ledger by clintp · · Score: 4, Insightful

    Mod the parent up, this is the first non-techie analogy that makes sense to anyone with any accounting or business background.

    The "ledger" idea is the elevator speech you can give to the pencil-pushers. It's one thing to know what the bottom line on a balance sheet is, it's another thing to know how the numbers got there. Multiple sources of changes (Payables, Receivables, Sales, Petty Cash, etc...), in multiple directions (debits/credits), in multiple categories (Assets, Liabilities, Equity) . You'd be foolish to run a business without a general ledger. Source control is the ledger for the software.

    --
    Get off my lawn.
  12. You're missing the point! by Anonymous Coward · · Score: 5, Insightful

    Cost is *not* the issue. You don't just "put the website under version control" that's a command in a free to download, free to use software package called [ git | svn | cvs ]. Source Control is *not* a tool. It's a technique. You don't need supervisor permission to backup your files, and you don't need supervisor permission to use source control. What you need to do is start using it, and ensure that everyone *else* who contributes uses it, too. That's a policy detail and needs someone to enforce it.

    The selling point of source control is that it is more than just a backup - it allows you to track changes to the site and more importantly *who* made *what* changes and *when* and *why*. Otherwise you don't know if changes are made, who made them, when they made them, or why they were made. One would think that *social scientists* would be able to appreciate knowledge of history without any notion of "cost"!

  13. Re:The use of analogy by Chris+Mattern · · Score: 4, Insightful

    If the recipe calls for 3 eggs, two scrambled and one sunny side up, and cook A already done one egg scrambled, he better let cook B and cook C know what he has accomplished. That's where version control comes in.

    Aaaaand you've now convinced your manager that version control has something to do with cooking eggs.