×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

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

Unknown Lamer posted about a year and a half ago | from the it-will-cost-negative-ten-meelion-dollars dept.

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

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

383 comments

How Much Would What Cost? (5, Informative)

eldavojohn (898314) | about a year and a half ago | (#41458501)

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

Re:How Much Would What Cost? (5, Insightful)

jabberwock (10206) | about a year and a half ago | (#41458613)

This question only needed one answer, and the first post had it.

I wonder if that has ever happened here before?

Re:How Much Would What Cost? (4, Interesting)

CastrTroy (595695) | about a year and a half ago | (#41458655)

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.

Re:How Much Would What Cost? (4, Informative)

ckthorp (1255134) | about a year and a half ago | (#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.

Re:How Much Would What Cost? (5, Informative)

MikeBabcock (65886) | about a year and a half ago | (#41458731)

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.

Re:How Much Would What Cost? (1)

TENTH SHOW JAM (599239) | about a year and a half ago | (#41458739)

Yes you can Diff word docs. Press F1 and smear in "compare documents".

Re:How Much Would What Cost? (1)

ILongForDarkness (1134931) | about a year and a half ago | (#41459257)

As well even if you couldn't docx at least is just zipped xml. Rename the file .xml.zip uncompress and feed it through diff. Not as rich an experience but still doable.

Re:How Much Would What Cost? (0)

Anonymous Coward | about a year and a half ago | (#41458753)

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

Word allows precisely this operation. It's called Compare Documents.http://support.microsoft.com/kb/306484

I'm not saying it's useful, well-implemented, or facilitates group editing. I personally hate it, but exist, it does.

Re:How Much Would What Cost? (0)

Anonymous Coward | about a year and a half ago | (#41458967)

Google docs. Problem
Solved.

Re:How Much Would What Cost? (0)

Anonymous Coward | about a year and a half ago | (#41458759)

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.

MS Word already does this. Unsure about Word 2003, but 2007 certainly has a "Compare Documents" function in it. You'll find it under the Review ribbon, to the right of the tracking section. This works quite well, and auto-generates a 'tracked changes' output between the source and final document you provided.

It also includes a "Combine" function which apparently does what you're complaining about (merge changes from several revised documents), but I've not used that so cannot comment on its usefulness.

Re:How Much Would What Cost? (4, Insightful)

johnkoer (163434) | about a year and a half ago | (#41458717)

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.

Re:How Much Would What Cost? (1)

Anonymous Coward | about a year and a half ago | (#41459023)

git doesn't need a central server.

Re:How Much Would What Cost? (2, Insightful)

HappyDrgn (142428) | about a year and a half ago | (#41459145)

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"

Re:How Much Would What Cost? (1, Interesting)

Anonymous Coward | about a year and a half ago | (#41459197)

Pull only workflow, mailed patches, the way that the linux kernel was done for many years. No central server.

Re:How Much Would What Cost? (1)

Pope Raymond Lama (57277) | about a year and a half ago | (#41459289)

It is 2012, and we have things like git and mercurial on these days. If there is no server available, you just put your codebase on version control in place, without having to configure a single file. It just won't work if you don't have 2 or 3x free disk space as your source files take - but in that case you have deeper problems than the ones we are dealing with.

Re:How Much Would What Cost? (1)

Anonymous Coward | about a year and a half ago | (#41458755)

This was kind of a confusing story for exactly the reason stated above: plenty of good VCS systems available for free, not entirely clear why you'd need supervisor approval to start rolling git / mercurial / svn.

But if you're in need of easy-to-explain reasons why its important, other than the excellent MS Word / editing and proofreading example given above:
- Ability to see how things have changed over time, giving insight to anyone doing the work
- In case anything ever goes wrong and something is changed negatively, allows you to easily jump back to a point in time where all code was working a known to be good way (can be sold that way as a backup system of sorts)
- With a DVCS systems like Git, can explain how it works by recording the only the differences made in a file, and how that enables developers to all work on the same file with only the minimum amount of work to combine edits (merging)

Even if, for some reason, you would require something paid for (like a dedicated in-house box to host your own VCS, or enough remote devs to make something like a paid private account on Github / BitBucket necessary), should be a reasonably easy sell I hope. Best of luck to you!

Re:How Much Would What Cost? (5, Insightful)

amicusNYCL (1538833) | about a year and a half ago | (#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.

Re:How Much Would What Cost? (4, Insightful)

Auroch (1403671) | about a year and a half ago | (#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.

Re:How Much Would What Cost? (0)

Anonymous Coward | about a year and a half ago | (#41458793)

It is almost unbelievable that a "manager" would have no understanding of version control in 2012. How do they still have a job, then?

Git or any of a dozen or so source code management soft-wares are free. Or just price a commercial one if it is too complicated for you. But if it is too complicated for you, you shouldn't have a job.

Re:How Much Would What Cost? (0)

Anonymous Coward | about a year and a half ago | (#41459183)

Because sometimes a manager is a manager of a bunch of other folks who do all sorts of other types of jobs, and one or a few people who program. You only get managers who only deal with programmers in large companies, or small companies that do nothing else but program. There are lots of companies that have lots of people, but only one or two programmers. Ofthen admins/programmers in those places.

FREE! (1)

TiggertheMad (556308) | about a year and a half ago | (#41458905)

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.

Amen bother. To Poster: Don't explain how much it will cost. Go get SVN, which is free and simple. GIT is more powerful, but sort of overkill if you are just two people within shouting distance. Don't bother trying to explain it to her, and use her offer to help with tools on a product that you can't get for free.

Re:FREE! (1)

AlienIntelligence (1184493) | about a year and a half ago | (#41459249)

Amen bother. To Poster: Don't explain how much it will cost. Go get SVN, which is free and simple. GIT is more powerful, but sort of overkill if you are just two people within shouting distance.

iPhone user?

-AI

Re:How Much Would What Cost? (1)

SirGarlon (845873) | about a year and a half ago | (#41459163)

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

Sure, but I doubt your time has been free-as-in-beer. When the boss asks "how much will it cost," an honest answer includes an estimate of man-hours to set it up.

Installing git or svn does not take long, but there may also be time required to designate a server, hold a meeting to debate git vs. svn, etc.

Put another way, the total cost of free-as-in-beer software is comparable to the hidden costs of commercial software. :-) (In my experience, a bit lower, because the free stuff tends to be better documented and supported.)

You're missing the point! (5, Insightful)

Anonymous Coward | about a year and a half ago | (#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"!

Re:How Much Would What Cost? (2)

cob666 (656740) | about a year and a half ago | (#41459191)

You might want to NOT focus on the 'Version Control' aspect and focus more on 'Source Control'. Centralized repository for all source code, easier to back up, ability to track changes to documents. Mention version control only as a type of 'undo' feature that is always available.

Just show 'em. (0)

Anonymous Coward | about a year and a half ago | (#41459293)

Create a short file. A couple of lines will do. Any text you like. Check in into RCS. Modify text. Check it in again. Check it out at different revision levels (co -p). This is what we had before. This is what we have now. Simple. Easy to understand.

Then you can get into multiple branches and merging and whatnot and confuse the heck out of 'em.

The takeaway will be the first part, the simple stuff. "We can get back to where we were." The complex stuff will fly over their head. But they'll just figure if the simple stuff is so incredibly useful, the complex part must be even more important to have!

Mac OS Time Machine (3, Insightful)

Anonymous Coward | about a year and a half ago | (#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.

Just do it. (0)

Anonymous Coward | about a year and a half ago | (#41458557)

What is there to sell? Install svn or git and start using it. If there is a problem then I would look for a new job as they don't have a clue.

configuration control (0)

Anonymous Coward | about a year and a half ago | (#41458559)

You need to explain the concept of configuration control. Configuration control can be done with or without version control software. Using version control software just makes the process easier.

Don't explain _what_ it is, explain how it helps (5, Insightful)

Omnifarious (11933) | about a year and a half ago | (#41458561)

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.

Re:Don't explain _what_ it is, explain how it help (4, Informative)

DJRumpy (1345787) | about a year and a half ago | (#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.

wait... (1)

manicpop (1342057) | about a year and a half ago | (#41458563)

If they're not technically people, what are they?

Technically, I could tell you (0)

Anonymous Coward | about a year and a half ago | (#41458807)

but then I would, technically speaking, have to kill you.

Explain it with Word (0)

Anonymous Coward | about a year and a half ago | (#41458571)

"Ever wanted to go back to a version of a document you wrote a month ago? Compare it against what you have now to see the changes? That's what this is."

How Dumb Are You? (0)

Anonymous Coward | about a year and a half ago | (#41458583)

That's the question for the boss. Perhaps you should tell him/her that it's like "track changes" for computer stuff.

Stack Overflow says... (5, Informative)

Anonymous Coward | about a year and a half ago | (#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.

Tell her it's like a car (1)

ModernGeek (601932) | about a year and a half ago | (#41458589)

Tell her that it's like a car. You have different models every year, but you want to keep the old ones as a reference so that you can check out the old ones if the new ones have issues.

"Track Changes" on Steroids (1)

aaarrrgggh (9205) | about a year and a half ago | (#41458593)

It is simple-- Word's track changes on steroids. How much more than that do you really need to explain-- beyond working on a single "document," it works across all "documents" at the same time, but without mangling the report or needing to "accept changes" for each line of code.

Nutshell: It's like a ledger (5, Insightful)

davidwr (791652) | about a year and a half ago | (#41458595)

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.

Re:Nutshell: It's like a ledger (0)

HornWumpus (783565) | about a year and a half ago | (#41458937)

These are social 'scientists'. That would work for businesspeople.

I think he should obfuscate the explanation with lots and lots of multi-syllabic synonyms for common words. Spend lot of time babbling about multiple perspectives on project documents and avoiding conflict.

I think the key analogy is lending library. You checkout a document to modify it, the library keeps track of changes and makes sure everybodies work is backed up. Requiring a checkout prevents multiple people making modifications and work being wasted. Everybody can have a read-only copy or authors can keep documents private. Lone geniuses can keep their whole project checked out for months or years, though it should be discouraged. Paranoids can keep their projects encrypted (use encoded) to keep the CIA out of their thesis', though that wrecks change tracking.

Your job is to translate the above paragraph into social 'scientist'. The resulting document will be many pages long, have no words shorter then 3 syllabils, and require a week to untangle. Your explanations up to now have no doubt been too clear for them to grasp. Use their jargon, not yours. It will suck.

Be careful or you will admin the departments records for them and still not have version control.

Re:Nutshell: It's like a ledger (4, Insightful)

clintp (5169) | about a year and a half ago | (#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.

Why are you asking permission? (5, Insightful)

iiii (541004) | about a year and a half ago | (#41458599)

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.

Re:Why are you asking permission? (1)

Kittenman (971447) | about a year and a half ago | (#41458677)

Agreed. General rule for life - it's always easier to apologize afterwards than ask permission beforehand.

Re:Why are you asking permission? (0)

Anonymous Coward | about a year and a half ago | (#41458691)

If you want your "sausage" backed up.. on a Source control server isn't one of the "production" webservers (typically a no-no)... than yeah... you probably want to clue them in so you can get buy-in to handle costs of backing up another server.

Re:Why are you asking permission? (0)

Anonymous Coward | about a year and a half ago | (#41458973)

With git, it's backed up very wall by virtue of the entire history being on everybody's workstation.

Re:Why are you asking permission? (0)

Anonymous Coward | about a year and a half ago | (#41459057)

The approach our software department used for that was to run our own server, but the files behind it are on a network share that IT takes care of backing up. We first tried asking IT to set up svn on one of their servers, but the software department here is a minor part of the business from their perspective, and the overhead for IT of having another server which they need to install and maintain meant that nothing was going anywhere fast with that request.

Re:Why are you asking permission? (1)

rknop (240417) | about a year and a half ago | (#41458713)

Exactly -- just do it. Download, install. Start doing "releases" of the tools for the social science researchers to use-- they can download tarballs (or whatever) and install them. You can also write a quick instruction web page for "how to get the latest version" that tells them how to svn (or hg or whatever) checkout the source, just in case anybody cares. But you'll have the version control for what you need. Only demand that the others learn it if they're banging on the code themselves.

Eventually, that's how I got the astrophysics group I was working with back in the late 1990's to move from a craptastic flat-file database (read once when the data analysis environment *started*, never updated even if other people saved changes until you restarted your environment) into a real-time updated combination of PostGreSQL and flat files. I realized pretty quickly that having meetings and getting permission would just involve a lot of discussion and no action. I was in a position where I was the one running things, so I must made the change. There were a few bumps in the road, but eventually things worked much better.

(One side effect, though, was that whenever anybody had any trouble with anything, "the database" got blamed and they came to me. I would get frantic calls that the database was broken when people who make typoes in simple commands.)

Re:Why are you asking permission? (0)

Anonymous Coward | about a year and a half ago | (#41458977)

Depending on your company and the regulatory rules they have to play by, this advice just might get you fired. Company I work for doesn't go QUITE that far, but they do have a FOSS policy that says "every FOSS tool must have a risk assessment done by Legal, and an executive's sign-off accepting that risk."

For each and every version of a free or open source tool you want to bring in. (This is because some things change licensing between versions... which has the POTENTIAL of opening up lawsuit risks.)

They've never denied a request, but they HAVE made developers remove a tool until the proper oversight is done. The "firing" option is written into the FOSS policies, just in case they ever decide they need to use it.

Re:Why are you asking permission? (1)

foniksonik (573572) | about a year and a half ago | (#41459299)

This. You should ask for extra RAM to run your 64 bit server properly AND a stocked fridge. Make sure you've got a decent switch in place for the extra traffic VCS will generate. Nothing worse than everyone trying to check out the latest version on a slow network attached to a memory starved server.

Use an example (0)

Anonymous Coward | about a year and a half ago | (#41458627)

Tell Him/Her that's it's like Wikipedia.... when changes are made, if anyone makes a bad change, it makes it easy to revert to the good working version.

simple. Easy. Something they should be able to relate to and it gets the point across without embarrassing them or making them sound like an idiot.

CMS (0)

Anonymous Coward | about a year and a half ago | (#41458643)

A lot of people are familiar with Sharepoint or something similar or a Wiki for version control of documents.

Tell them Source Control is like CMS for source code with (most times optional "approval" process).

As for cost, if you use subversion you are only out the cost of the disk/cpu server consumption it will entail (make sure to factor backups into your cost analysis however).

Shift your vernacular... (0)

Anonymous Coward | about a year and a half ago | (#41458649)

After working with researchers for five years, I would suggest you try comparing it to tools or constructs that said researcher would be more likely to use. Anything from "It's like track changes in Word." to "It's like having a grant manager for the web site. A tool to help keep track of everything that is going on with the project/site/code and verify/approve changes/additions/disbursements." or even (since you are talking social sciences) "It's like having a census for the web site." It's really all about finding a vernacular/construct that is relevant to their work.

Simple Answers Are Best (5, Insightful)

indymike (1604847) | about a year and a half ago | (#41458667)

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.

Re:Simple Answers Are Best (1)

Auroch (1403671) | about a year and a half ago | (#41458837)

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.

This is an awesome answer.

Just saying.

It's your responsibility to do it right (2)

pclminion (145572) | about a year and a half ago | (#41458673)

As a blatantly non-technical person, your manager neither needs to know, nor cares, why a developer would want version control. You were hired to develop software, this is part of developing software. If it was a matter of cost, you would need to discuss it, but since there are good free source control systems available that don't require a dedicated server, just pick one and start using it.

Do you also need to justify your use of a particular text editor or IDE? If management is technical I can see how they'd want input on these decisions (even in that case maybe unwanted), but for somebody non-technical you are just producing your own confusing mess by bringing it up in the first place.

Your job is to develop, go do that.

If you describe it, you don't need it (1)

AK Marc (707885) | about a year and a half ago | (#41458689)

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

You don't have to describe the workings of an internal combustion engine to explain how a car is useful.

When you have multiple people working on the same thing, you need to be able to track what happened when, so that you know what code a bug was reported in. You also need to "lock" portions of the code so that only one person is working on it at a time. List all such benefits, and try to put a price on them. Be reasonable though, as most of them are "fixed" by other means, and you don't want to sell a version control system, and price the one you want out of the range so that the solution is to hire a version secretary whose job is to track all that by hand, and you ask the VS for permission to work on a piece of code. That'll make your life harder, and cost less than some of the complex options (though not scalable, it'd be fine for most places).

Re:If you describe it, you don't need it (0)

Anonymous Coward | about a year and a half ago | (#41459129)

I would love to hear about a company that has a Version Secretary.
Seems like the perfect plot for a dilbert comic.

Just call it "change tracking" (0)

intrico (100334) | about a year and a half ago | (#41458711)

Many nontechnical users may be familiar with the "track changes" feature in Office apps like Word and Excel. The "track changes" feature is a basic form of version control . I would compare it to that or something similar. In my experience explaining technical concepts to nontechnical users, they tend to be receptive of comparisons with the familiar.

Explaining version control (1)

przemekklosowski (448666) | about a year and a half ago | (#41458735)

If you ever saved a file under a name such as mypage.html.Jun12 or, worse, mypage.html.old, you basically used a ghetto Version Control. You already agree that it is useful, so let me show how easy it is to do it properly, in a way that will remember everything about who, when, and how changed every file, and will prevent accidental overwrites and editing conflicts.

Explain it in terms of something they already know (1)

tcort (538018) | about a year and a half ago | (#41458749)

Explain it as being like Apple's Time Machine or Microsoft Office's Track Changes. It's a really smart backup system that lets you roll back to a specific point in time, see when someone changed something, see who changed something, and see why someone changed something (via the commit log message).

Morale issue (1)

ewg (158266) | about a year and a half ago | (#41458751)

Explain that it's a morale issue, makes developers feel they're working on a solid foundation.

git for designers (0)

Anonymous Coward | about a year and a half ago | (#41458757)

http://lmgtfy.com/?q=git+for+designers

You were rewarded with lunch? Whoa now... (3, Funny)

Trip6 (1184883) | about a year and a half ago | (#41458765)

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.

Re:You were rewarded with lunch? Whoa now... (0)

Anonymous Coward | about a year and a half ago | (#41459253)

I've been doing version control for years and never even got a Twinkie.

Me neither. But here in Texas we get paid in BBQ.

Call them "saved games" (0)

Anonymous Coward | about a year and a half ago | (#41458799)

If they're reasonably young, make an analogy with game saves in a video game and they will understand perfectly.

Do you know what Google is? USE IT. (0)

Anonymous Coward | about a year and a half ago | (#41458815)

http://lmgtfy.com/?q=what+is+version+control%3F&l=1

Seriously, why is it that you didn't ask google the question?

--BitZtream

"If we have an audit..." (0)

Anonymous Coward | about a year and a half ago | (#41458823)

"If we're ever audited, they'll want to know we're using version control."

The best single answer I've ever found to work with management - they don't like getting stung by auditors.

But the real answers are - Not using it is unprofessional, bordering on negligent.

There is no cost to version control.

Version control makes your life easier.
It makes fixes easier.
It allows collaboration.
You never need to keep crappy old code "just in case we need it again".
No more "oldfile.old.new.old.bak.2007(2)"
If you use something like github it provides an offsite backup.

Even in a team of one, using version control is easier, more efficient, and all 'round better than not using version control.

Not using it is some dark ages shiz.

simple. version control is a lot like accounting. (1)

NemoinSpace (1118137) | about a year and a half ago | (#41458829)

You just put the minus signs and the decimal points in different places.
Congratulations Jones, the board loved your presentation. We've just put you in charge of accounting.

Great description of version control (1)

ckthorp (1255134) | about a year and a half ago | (#41458847)

I usually explain version control as working just like a library with a small twist. Imagine that this library holds paper notebooks that are partially used. You can go to the library, checkout a notebook, and write and erase parts of it while it is in your possession. Just like a library, if you have the original notebook, no one else can check it out -- you have exclusive rights to the notebook.

There is a bit of a twist that you can think of as working like an attentive librarian: every time the notebook is checked in, the librarian makes a complete copy and stores it in the reference section of the library. At any time, regardless of whether the original notebook is checked out, anyone can go to the reference section and read the reference copies of old versions. And, just like a regular library reference section, you cannot check those old copies out; they are read-only.

Explain it in terms of simpler software (0)

Anonymous Coward | about a year and a half ago | (#41458849)

Version control provides the functions of several kinds of software rolled into one:
- Backup, so you never lose your files, including older versions
- Collaboration software, allowing multiple people to work on the same file
- Logging software, so you can see what was changed when by whom
The above may not be 100% exact, but should be enough to convey the benefits.

Have them watch a Ted Talk (0)

Anonymous Coward | about a year and a half ago | (#41458887)

I watched this today, which is a different take on this which may help some folks that don't exactly get collaboratively managing information.

http://www.ted.com/talks/clay_shirky_how_the_internet_will_one_day_transform_government.html

co3k (-1)

Anonymous Coward | about a year and a half ago | (#41458901)

for the record, I are there? Oh, prima donnas to Be a cock-sucking the project Can connect to code.' Don't and executes a violated. In the dim. If *BSD is to die. I wiil jam to download the Usenet is roughly and piss cocktail. disturbing. If you Obseesed - give project returns since then. More wasn't on Steve's product, BSD's to the crowd in Between each BSD Gone Romeo and And was taken over discussions on mire of decay,

Perforce (0)

Anonymous Coward | about a year and a half ago | (#41458917)

Why not get the free Perforce - at www.perforce.com
A small configuration like yours (about 3 people?) does not need a license version - and the best part - it is Free

Sounds exactly like a university IT approach to me (1)

Ahab's compliments (1801080) | about a year and a half ago | (#41458927)

.... particularly a departmental one, where there's been a history of ad hoc development that met the needs of the staff well when the applications were first developed but there is no management buy-in to maintenance of a code base and no culture of rigour in the developers who may have been brought in and out to do piecework. It's also a standard approach for a manager in an academic position to want a justification, which is fine, although sometimes they want to make insightful comments/recommendations from their academic disciplinary perspective which is often not useful. Academics also ask for a lot of information - after all, their job predisposes them to be analytical - whether they really need to or not. If you really need to sell it, the image in the first reply is helpful - http://upload.wikimedia.org/wikipedia/commons/a/af/Revision_controlled_project_visualization-2010-24-02.svg [wikimedia.org] talk through that, explaining how branches and versions are used in the development process - contrast with the opposite scenario when versioning is not used.

Example benefits, not internals (1)

greg1104 (461138) | about a year and a half ago | (#41458939)

Non-technical people don't care how version control works or what it does at a low level, and they shouldn't have to. I would explain what type of problems it helps solve, with examples.

Programmers have to make changes to programs to try and improve them. There are several parts of that job that are made easier with version control software. Some examples are:

  • Sometimes those changes don't work as expected. They might break a program that worked before the change. Version control software lets you easily get back to the older, working version when this happens.
  • When two programmers make changes, they can conflict with each other. Version control software helps each programmer cooperate, to eliminate the conflicts when this happens.
  • When programs are tested, programmers need a way to mark exactly what version of the program the tester used. Version control allows doing that. When a tester reports a problem, a programmer using version control software can more easily duplicate the bug.

Book analogy (0)

Anonymous Coward | about a year and a half ago | (#41458943)

Imagine you write a book. You write 10 pages. You photocopy them and store them somewhere safe. Then you write another 10 pages and in the mean time you made corrections to some of the previous 10 pages. Total 20. You photocopy all those 20 pages and store as well. That's what version control is without optimizations.

Simple.

Additional tools .. (1)

dgharmon (2564621) | about a year and a half ago | (#41459009)

"During lunch, she asked us if there were any additional tools we needed to do our job more efficiently"

Don't ask, what's going on here is that neither of them will take responsibility of implementing changes. You may well wonder the managerial polotics that results in why you have to report to a non-technical administrator. Just install the thing and go ahead and start using it.

How managers think (1)

BL0 (1401073) | about a year and a half ago | (#41459029)

The manager will want to know is the cost of implementing version control worth the risk of not having it. (Even though most version control systems are free - the time for the contractors to implement them are not) Your job is to show what the risks are for not having version control and combined with the total costs that it would take to implement a solution. This is why they want a task brief. It is then up to them to make a decision if they can afford the risk.

Just do it. (0)

Anonymous Coward | about a year and a half ago | (#41459055)

*bleep* management and their proposals. If you are making software, you need version control. Just use whichever of {rcs|cvs|svn|git|mercurial|bzr} you want, but start doing it now.

You can write proposals for something expensive when you are bored.

History/debugging, undo, collaboration, sand box (1)

sleepypsycho (1335401) | about a year and a half ago | (#41459067)

Here is my list of what I would put into a report on the benefits: 1) History/Debugging: It lets us review what changes are made when and why. This can really help debugging because we often know when the problem started showing up so we can see what changed and what might have beend the cause. 2) Undo: We can go back to an earlier version when some changes we made were bad or headed in the wronge direction 3) Collaboration: It has powerful tools for collaboration that make it easier for team to work on a project at the same time 4) Sand Box: It provides a way to create local trial versions that are not shared by everyone and can be merged in later. 5) Backup: Organized system of backup and retrieval, nothing is accidentally lost and we don't each come up with out own way to back it files 6) Versioning/Stability: It allows us to have some people fixing bugs in the version everyone is using while most people are working on new features. So no one has to deal with an unstable version in order to get an update with fixed bugs.

use tps reports... (0)

Anonymous Coward | about a year and a half ago | (#41459081)

If you have to explain it, easy:

Imagine you are writing up your tps report. You submit it, but the boss says nope change these things. You make the changes. Your boss turns back to you and says, I liked it better before.

Revision control is a system that will give you back the original document even though you saved over it.
Revision control gives the programmer confidence to make changes because you can always go back to the old version if something goes wrong.

here is a shot without using metaphor (2)

mothlos (832302) | about a year and a half ago | (#41459087)

Metaphor can be useful, but it can also cause problems. Here is a shot at a simple explanation without metaphor.

A version control system maintains a log of all changes that are made to the source code of a piece of software. When a problem arises in a piece of software, the version control system can help find out what code was changed, when it was changed, and who changed it. Without this information, tracking down the piece of code causing the new bug can take a lot longer. This log can also be used to undo changes which prove to be problematic.

Explaining how version control helps developers recognize conflicting commits is a specific example and likely lost on lay folk without quite a lot of explaining.

If you can't explain, you don't understand... (1)

PortHaven (242123) | about a year and a half ago | (#41459095)

Explain that it is three-fold:

1) The first is a record of all prototypes and changes along the way.

2) A back up repository that keeps a copy

3) Facilitates multiple people working on the same item so that everyone receives the changes.

How to conceptualize it, express that it's like designing a brochure. You create a rough draft, it's send to your boss for review. She requests changes. So you create a revised copy with her changes. It then is sent off to the department head, and the project head. Both make annotations for the changes they'd like to see. Those are returned and then merged to incoporate all the changes. The next year you are releasing the brochure again, but it requires updates. This continues every year. But one year the department head says they want to make the brochure more like the one they did in 2008. So you're able to pull up the older design from the archive.

Changing it to a real world workflow they can understand will help them see the benefit.

As for cost...I would simply estimate the cost of having xxxx amount of gigabytes of redundant storage - at least mirrored.

// feline alley gory // (2)

TheRealHocusLocus (2319802) | about a year and a half ago | (#41459121)

Version Control is like a very long cat. You pull the latest stable version off in New York, meanwhile an unstable beta is mewing in Los Angeles. Version Control is the same, only there is no cat.

Pretty easy (1)

bhcompy (1877290) | about a year and a half ago | (#41459137)

You tell them that Apple, Facebook, Google, and Microsoft all use it in some form, and that it's necessary for any form of development. They go "Wow, I didn't know! Where do I sign?"

Try a riff on "change management" (1)

mschuyler (197441) | about a year and a half ago | (#41459157)

Use a technical document in a library as an example. When changes are made in a piece of machinery those changes need to be reflected in the technical documents that show how a given piece of machinery works. So the manufacturer sends out "changes" in the form of a few pages reflecting the changes, and instructions as to which pages to replace.

The old pages are thrown away, and the new pages and the title pages now reflect that the document is now version 1.1 instead of 1.0. As this continues to happen over time a glance at the title pages shows the gradual changes in the document. It contains an entire history of all the changes and what they were.

(Parenthetically, have you ever encountered HP doc changes for something like HP-UX? Let's just say they waste a whole lot of cardboard and plastic wrap.)

In any case, use a library-like analogy, and it may get through. Good luck.

Analogies usually work for me... (0)

Anonymous Coward | about a year and a half ago | (#41459173)

...so in this case I'd tell them it's like MS Word's "track changes" feature. And then, building on the other comment about explaining how it helps, you'd walk through an example about reviewing changes and approving some and rejecting others.

I know the analogy doesn't hold up if you're talking to a technical person but you've already made it pretty clear that they're not technical. Put it in terms they understand even if it's only partially correct--you can baby-step them through the rest as the need arises.

Look for the right analogy (1)

pt73 (2506856) | about a year and a half ago | (#41459195)

Some people have mentioned "backups" as an analogy. While partially true, when you come to talk about backing up the repository (for centralised version control), you'll get the inevitable why backup backups? Given they are researchers, I suspect the best analogy is multiple authors writing a text book. Often writing a book is broken up into chapters with each author writing a chapter. Version control effectively keeps a copy of each draft but rather than keeping copies of each draft, version control manages that process for you. Sometimes multiple authors work on the same chapter. In this case they may take turns. Again, drafts follow a sequence and so this essentially becomes the single author problem with a slight level of complexity. However sometimes someone might review a draft while you continue working. You will receive the review and incorporate changes into your current draft. Verson control provides a process to handle this without having to meticulously go through the review to decide on changes that need to be incorporated. Then explain that unlike authoring a book, a software developer could be generating drafts very quickly - multiple times a day. Other analogies may be the practice of keeping a log book where version control is logging changes to code and (hopefully) reasons for those changes.

Mercurial and S3 - cheap! (1)

erc (38443) | about a year and a half ago | (#41459221)

Turnkey Linux and Amazon S3 - the download's free and I spend a couple of dollars a month to store backups. All you need is a machine :)

Why not just use it? (1)

Pope Raymond Lama (57277) | about a year and a half ago | (#41459239)

You could get one of tens presentations on what it does, point them to the wikipedia article on version control -- but I see all of that as orthogonal to actually using it.

Just _do_ use git or mercurial on the project - you should already be doing it, and you know that. Btw, those 2 systems are light years ahead anything proprietary V.C. tools have to offer nowadays - not ot mention the complete desburocratization on initally versioning a code base to start with: no need to setup a server, no need to a complicated build process to get the newest version running. Just relax, init the repo, add the files, and you are rolling.

How I explain it to students (1)

Yosho (135835) | about a year and a half ago | (#41459245)

So, I teach an intro-level class at a community college on software project development. It covers stuff like version control, issue tracking, continuous integration, unit testing, and so on. We use both Subversion in Git in class for exercises, but I try to talk about general concepts and describe how other VCSes do things, too. With that in mind, my intro to version control speech usually goes something like:

The first thing I'm going to talk about is what's called a version control repository. The repository is a lot like a normal folder on a computer; it holds files and folders inside it. The thing that makes it special is that it remembers every change ever made to it. Every time a file is added, deleted, moved, or changed, it remembers what time the change happened, what was changed in the file, and who changed it. The repository exists on a server on the network, so whenever anybody changes a file in it, their changes are shared with everybody else. (note: I know distributed VCSes are different, that's a topic for a few weeks later)

What kind of things can you do with that? Any ideas? (wait for suggestions from the class) The most important thing is that you have a backup of every version of your files that has ever existed. If your hard drive catches on fire, you can get your files back from the repository. If you make a mistake in a file and need to undo your changes, you can always get the previous version of the file. As long as you're using the repository, you never have to worry about losing any data or making any mistakes that can't be undone.

It also makes it easy to coordinate changes to files with other people. If multiple people are working on the same file at once, the repository can show you the differences between the files and indicate who changed what. If a bug is introduced into your program, you can get the files from a previous version where the bug didn't exist, and you can easily see what has changed in the files since then and who made the changes.

So, to recap: version control is like an unlimited "undo" button that is backed up to the network, shared with other people, and can tell you who changed what. It can be used for a lot of different applications, but you can probably imagine how this is really important for software development.

(and that's how I explain to newbie coders)

Typical geeks... (0)

Anonymous Coward | about a year and a half ago | (#41459295)

Really folks, maybe you should take time between coding sprints for some English lessons, basic writing skills, even Toastmasters.

This story simply floors me. Two times they asked you if you needed any stuff, and both times you said YES, wimpty dimpty floodle dee bee.

You should have said, YES we need a server to store all the hundreds of files we have and keep them organized and backed up. It would cost around $3000 or so.

What on earth is this "source control" you are blabbering on about. Isn't that a piece of software that YOU install on a server? Yes, YOU!!! Why are you bothering these kind people with stuff that is simply not their job. They offered to help you do yours, so tell them how many bucks it costs to get what you need, where it can be bought, and get on with it. And don't forget extra hard drives for backup copies. Extra servers would be nice, but the hard drives are essential.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...