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 eldavojohn ( 898314 ) * <eldavojohn@noSpAM.gmail.com> on Tuesday September 25, 2012 @09:04PM (#41458501) Journal

    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 [gitstack.com], roll your own git on Linux [moocode.com], 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 [wikimedia.org].

  • by Anonymous Coward on Tuesday September 25, 2012 @09:14PM (#41458585)

    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.

  • by DJRumpy ( 1345787 ) on Tuesday September 25, 2012 @09:19PM (#41458653)

    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.

  • by ckthorp ( 1255134 ) on Tuesday September 25, 2012 @09:24PM (#41458725)
    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.
  • by MikeBabcock ( 65886 ) <mtb-slashdot@mikebabcock.ca> on Tuesday September 25, 2012 @09:24PM (#41458731) Homepage Journal

    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.

  • by ckthorp ( 1255134 ) on Tuesday September 25, 2012 @09:29PM (#41458781)
  • by GigaplexNZ ( 1233886 ) on Tuesday September 25, 2012 @11:48PM (#41459855)
    And TortoiseSVN even integrates with it to some extent (for diff, not merge).
  • by plover ( 150551 ) on Wednesday September 26, 2012 @01:33AM (#41460365) Homepage Journal

    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 [ericsink.com] 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.

  • by Jane Q. Public ( 1010737 ) on Wednesday September 26, 2012 @01:47AM (#41460451)

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

  • by billius ( 1188143 ) on Wednesday September 26, 2012 @02:25AM (#41460639)
    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!

  • by styrotech ( 136124 ) on Wednesday September 26, 2012 @04:30AM (#41461233)

    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/ [bitbucket.org]

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

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

Working...