Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming

Ask Slashdot: Explaining Version Control To Non-Technical People? 383

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?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Explaining Version Control To Non-Technical People?

Comments Filter:
  • by Anonymous Coward on Tuesday September 25, 2012 @09:09PM (#41458535)

    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.

  • 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.

  • by davidwr ( 791652 ) on Tuesday September 25, 2012 @09:14PM (#41458595) Homepage Journal

    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.

  • by iiii ( 541004 ) on Tuesday September 25, 2012 @09:14PM (#41458599) Homepage

    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.

  • by jabberwock ( 10206 ) on Tuesday September 25, 2012 @09:15PM (#41458613) Homepage
    This question only needed one answer, and the first post had it.

    I wonder if that has ever happened here before?

  • by indymike ( 1604847 ) on Tuesday September 25, 2012 @09:19PM (#41458667) Homepage
    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.
  • by johnkoer ( 163434 ) <johnkoer&yahoo,com> on Tuesday September 25, 2012 @09:23PM (#41458717) Homepage Journal

    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.

  • by amicusNYCL ( 1538833 ) on Tuesday September 25, 2012 @09:27PM (#41458767)

    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.

  • by Auroch ( 1403671 ) on Tuesday September 25, 2012 @09:32PM (#41458809)
    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.
  • by HappyDrgn ( 142428 ) on Tuesday September 25, 2012 @10:10PM (#41459145) Homepage

    git doesn't need a central server.

    Right... and by those standards neither does svn. Look man, I use git on my personal machine all the time, but it's a far cry from version control that a team can reliably utilize without a centralized component to it. Before you go on about git on a desktop machine please think about the implications. In general I think a central server should be baked into the costs for any revision control proposal, just because it can run on your desktop does not mean it should.

    "What happened to my merge!?", "Oh sorry man, I rebooted"

  • by clintp ( 5169 ) on Tuesday September 25, 2012 @10:12PM (#41459153)

    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.

  • by Anonymous Coward on Tuesday September 25, 2012 @10:16PM (#41459171)

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

  • by Lehk228 ( 705449 ) on Tuesday September 25, 2012 @11:09PM (#41459609) Journal
    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.
  • by GigaplexNZ ( 1233886 ) on Wednesday September 26, 2012 @12:09AM (#41459987)
    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.
  • by Jeremi ( 14640 ) on Wednesday September 26, 2012 @02:36AM (#41460687) Homepage

    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! ;)

  • by man_of_mr_e ( 217855 ) on Wednesday September 26, 2012 @04:37AM (#41461263)

    Guess you haven't used that many source control tools then. RCS and SCCS both had various problems. PVCS and had problems as well at various points in it's life.

    All these systems essentially had the exact same problem as SourceSafe. They were file based systems, rather than client/server based systems. The clients modified the files directly, and if you had multiple users modifying them at the same time, problems ensued.

    In fact, CVS was an early attempt to fix RCS.

    SourceSafe is a 20+ year old version control system, and it does it's job quite well, considering. But problems happen when the clients modify the files directly. A crash her or there causes files to become corrupted. Network glitches can also cause problems. God help you if you're updating over a dial-up link and it drops on you.

    But, since 2005 SourceSafe has had a client/server version of the tool.. but nobody cares.. By then SVN was in common use, and TFS was first released.

    The point is, the problem was not SourceSafe, but rather that it suffered from the same problems as many contemporary tools, but SourceSafe was in use for a lot longer.

  • by Chris Mattern ( 191822 ) on Wednesday September 26, 2012 @05:59AM (#41461659)

    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.

  • by Anonymous Coward on Wednesday September 26, 2012 @08:10AM (#41462315)

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

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...