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?"
How Much Would What Cost? (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 [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? (Score:5, Insightful)
I wonder if that has ever happened here before?
The use of analogy (Score:3)
From TFA:
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
Look, geeks evolve too.
In the olden days, geeks were geeks, and geeks didn't have to say non-geeky things to non-geeks.
Nowadays, it's different. We have to explain very geeky things to non-geeks and you just can't load up all the jargons and tell it to the non-geeks. They will go bonkers !!
Nowadays we geeks have evolved into geeks who can speak every-day-language using non-geeky-examples, ie., analogies
In the case like TFA, the submitter could have use the example of
Re:The use of analogy (Score:5, Insightful)
Aaaaand you've now convinced your manager that version control has something to do with cooking eggs.
Re:How Much Would What Cost? (Score:4, 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.
Re:How Much Would What Cost? (Score:5, Insightful)
Important follow-up note: taking advice from JQP on how to interact with human beings is likely to leave you ostracized.
Re:How Much Would What Cost? (Score:5, Interesting)
Re:How Much Would What Cost? (Score:5, Informative)
Re:How Much Would What Cost? (Score:5, Informative)
Word 2007/2010 compare-and-merge multiple docs [microsoft.com]
Re:How Much Would What Cost? (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.
Re:How Much Would What Cost? (Score:4, Informative)
Re: (Score:2)
Re: (Score:2)
Yes you can Diff word docs. Press F1 and smear in "compare documents".
Re: (Score:2)
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: (Score:2)
So when do we get the version that will handle that automatically? Zipped xml is becoming a fairy common format, I'd love to be able to use one set of tools for versioning across the board.
Re: (Score:2)
Re: (Score:3)
However tortoisegit started supporting this too last year...
Re: (Score:3)
TSVN just comes preconfigured with some scripts for merging documents ; you can find them in the "Diff-Scripts" subfolder.
You should just be able to steal these and configure Git to use them as well.
Re: (Score:3)
In my experience in an academic environment the only people who care about LaTeX are the mathematicians and physicists, since they routinely want to write out a ton of math.
Everyone else wants to be able to copy+paste things from ChemDraw and drag drop place images - and unfortunately since you generally pick up your writing implements right as you need them, LyX still has too many ideosyncracies to be a practical alternative.
Re:How Much Would What Cost? (Score:5, 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.
Re: (Score:2)
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: (Score:2)
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.
It's at a university - they have servers laying around and "employees" AKA "work-study students" are for all practical purposes free.
Re:How Much Would What Cost? (Score:5, Insightful)
Re:How Much Would What Cost? (Score:5, Informative)
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!
Re:How Much Would What Cost? (Score:5, 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/ [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".
Re: (Score:3)
SVN is not only free, it will *make* you money.
The cost of not having a decent version control system is higher than having one.
Re: (Score:3, Insightful)
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 m
Re: (Score:2)
> just because it can run on your desktop does not mean it should.
But it is still about 3 orders of magnitude better than having no version control at all.
Re: (Score:3)
Would this be unrecoverable or just a nuisance? My understanding of git is that it is fully distributed so you can muddle around on your own local copy, test the merge there and push the bad boy back up. The only difference between a desktop and a server IMHO is that the server gives users the illusion of something that will never go down (until it does) where as a desktop people sometimes don't think twice about bringing down (and nuke all the clients connected to them). Either way the guy with root has to
Re: (Score:2)
I was recently hired (along with another guy) as a web developer at a large university.
Considering it's a web project, there's already a centralized component in place.
Re:How Much Would What Cost? (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.
Re:How Much Would What Cost? (Score:5, Insightful)
Re: (Score:2)
If they're an Apple user, you just say it's a finer-grained version of "Time Machine" or with Lion and Mountain Lion, revisions (the OS auto-saves for you, maintaining previous versions you can cut and paste from at any time).
Or you can explain it by detailing a typical document product
Re: (Score:2)
Only if people commit their changes. I can't count how many times I've seen people (and I'm guilty of it too) spending an entire day hacking away getting a feature into a code base, hundreds of lines of code and don't commit it until it is "done". I get that you don't want to check in non-working code because someone will pull it in then bitch at you for it not working. But at the same time it means that whole features are often checked in as one lump, rolling back to 2 hours ago when part of the code stil
Re: (Score:2)
FREE! (Score:2)
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: (Score:2)
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: (Score:2)
Or just pay Codesion the damned $50. How cheap are you?
Re: (Score:2)
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. :-) (
Re: (Score:2)
When the boss asks "how much will it cost," an honest answer includes an estimate of man-hours to set it up.
Do we get to deduct the number of man-hours that will be saved after it is set up? Because I think any programming shop would be back in the black after about a week -- or after the first instance of massive code-loss was avoided, whichever comes first.
Re: (Score:2)
Do we get to deduct the number of man-hours that will be saved after it is set up?
Yes, but that is the cost of not doing version control. Estimate the costs for both the yes and no states of the decision it then becomes a no brainer for the boss. Even if they don't have a clue what a version control system is, they will understand the concept of insurance.
Re:How Much Would What Cost? (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! ;)
You're missing the point! (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"!
Re: (Score:2)
Source Control is *not* a tool. It's a technique
Quoting the above to draw the attention of mods to the most informative comment in this thread.
Re: (Score:3)
Re: (Score:2)
The only non free (as in beer) source control I'd recommend is Perforce, but really, gitstack or svn will work just fine.
The cost should be the cost of a server with enough space for the repository and the S3 account for backups. You probably already have a server you can use, and S3 storage is cheap.
Re: (Score:2)
You can even show them a Word doc doing change control, they solved that for docs too. Computers are absolutely outstanding at this task, they were practically designed to do it. If you're not familiar with it, your boss probably is.
The difference with development is, it's ABSOLUTELY POSITIVELY CRITICAL. We manage millions of lines of code, and there's no human to figure out what we meant or fill in blanks from careless edits. It allows us to track down the root cause of bugs, and avoid making the same mist
Re: (Score:2)
There are still fixed costs to maintaining a server even if the software is free. A git or SVN server won't store it's own backups offsite. Our Engineering department still gets charged by our IT department for hosting for wikis, source control, etc, even though the software running on the server is 'free', it doesn't deploy and maintain itself.
Re: (Score:3)
I used to have a spare workstation as a site I helped administrate. I used it for all sorts of things that made administrating and fixing crap there more then helpful but I never got approval to use it like that. It was just there and I just started using it because I had a desk to organize myself from.
Long story short, it left the building and went to a satellite shop and served as a part time workstation for an e
Mac OS Time Machine (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.
Don't explain _what_ it is, explain how it helps (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.
Re:Don't explain _what_ it is, explain how it help (Score:5, 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.
Stack Overflow says... (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.
Re:Stack Overflow says... (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 [ericsink.com] Chapter 0 includes his list of benefits:
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.
Tell her it's like a car (Score:2)
"Track Changes" on Steroids (Score:2)
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.
Re: (Score:2)
That might be useful if the boss knows about the change tracking in Word.
Nutshell: It's like a ledger (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.
Re:Nutshell: It's like a ledger (Score:5, 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.
Re: (Score:3)
Re: (Score:3)
Why are you asking permission? (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.
Re: (Score:2)
Re: (Score:2)
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,
Typos, or... (Score:2)
One of their students was "Little Bobby" T. [xkcd.com]
OT: I wonder how many /.'ers saw this comic in their mind without having to follow the link? :)
Re: (Score:2)
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.
Re: (Score:2)
Nothing worse than everyone trying to check out the latest version on a slow network attached to a memory starved server.
Git is another solution to this problem. Cloning the repository is harder on the network because you're downloading a complete revision history (though represented in a very compact way) but requires virtually no CPU or RAM on the server, and once you've got your clone all of your subsequent work is very low-impact on the server in all respects: network, RAM, CPU.
Re: (Score:2)
Regardless of the company or industry, shit policies like this are ridiculously counterproductive. The executives who come up with crap like this (no doubt at the suggestion of CYA-ing lawyers) are probably bitching out the other side of their mouths about needing to cut costs, and never quite grasp the connection between needless work and higher costs.
Re:Why are you asking permission? (Score:4, Insightful)
Simple (Score:2)
"It's like massively-multiplayer undo!"
Simple Answers Are Best (Score:5, Insightful)
Re: (Score:2)
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 (Score:3)
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 (Score:2)
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
Re: (Score:2)
Morale issue (Score:2)
Explain that it's a morale issue, makes developers feel they're working on a solid foundation.
You were rewarded with lunch? Whoa now... (Score:4, Funny)
simple. version control is a lot like accounting. (Score:2)
Congratulations Jones, the board loved your presentation. We've just put you in charge of accounting.
Great description of version control (Score:2)
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 notebo
Re: (Score:2)
Example benefits, not internals (Score:2)
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:
Additional tools .. (Score:2)
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.
here is a shot without using metaphor (Score:3)
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... (Score:2)
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
// feline alley gory // (Score:2)
Pretty easy (Score:2)
Try a riff on "change management" (Score:2)
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
Mercurial and S3 - cheap! (Score:2)
Why not just use it? (Score:2)
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 comp
Re: (Score:2)
an oft overlooked aspect. (Score:2)
Blame; being able to know who inserted racial slurs into your product is useful for knowing who to fire.
If they're that bureaucratic (Score:2)
Explain to them that version control is the cornerstone of practically all modern software development best practices, whether they be agile or waterfall oriented. It's open and shut. You can't do best coding practices without version control. Period. The reason is that version control is fundamental to collaboration. Without it collaboration is awkward, time consuming and error prone.
If the project is small with only a single developer, collaboration includes handing off responsibility for the system to t
This is undoubtedly astroturf. (Score:2)
Big Juju, Much Magic (Score:2)
Or... you know... it remembers every change you ever made to the code ever since you stuck it in version control, so that if you screw something up six months ago, you can see where that problem was introduced and remove it without affecting any other changes. It is absolutely necessary as your team expands beyond more than just a couple of people, and even has benefits with smaller teams. Personally, I use git for my personal projects, and host most of tha
"Saving all your work forever" (Score:2)
I like Michael R. Head's description of VC as "Saving All Your Work Forever":
http://www.cs.binghamton.edu/~mike/seminars/cvs-svn-bzr-bucs-seminar-2007.pdf [binghamton.edu] .
Do it by analogy (Score:2)
just say that we use version control to do what we want:
- using Git/Mercurial is like walking naked on the beach
- using svn is walking naked at home
- using Clear Case is going through airport scanning and being detained 30 min for having a nail cutter, followed by anal examination
- using Visual Source Safe is terrorism. It's lie having your balls hit repeatedly, by something like the door of a submarine.
All the free systems are OK (Score:2)
For a small project, any of the free open-source version control systems will work. Pick CVS, SVN, Git, or Mercurial, set up a repository on a server, and install the Tortoise client for it on all the relevant Windows machines. Then set up remote vaulting for the repository, preferably to at least two locations. If it's just code, you don't need a commercial system. (Microsoft (Visual SourceSafe is rather retro.)
The version control system will work fine. It's getting users used to the idea of check-ins
Re:wait... (Score:5, Funny)
Management [wikipedia.org]
Multiple backups? (Score:2)
"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?"
So what's wrong with having "multiple" backups? There's no need to go into more sophisticated non-IT analogies when a backup is the one thing any responsible administrator should have as a matter of policy.
Want something more sophisticated? Tell him/her that's it's a backup would multiple levels of un
Re: (Score:2)
No, I am the author of the story above, and my name is Brian.