Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I convince my department to implement a version control system?

I recently joined the IT department of a big insurance company. Although the department's title is "IT", a lot of code gets written here; Java, JSP, JavaScript, COBOL and even some C++ from what I've heard. All the programs that allow insurers, brokers and the rest of the tie-wearing, white-collar workers to issue new contracts and deal with clients runs on the code produced by this department. I've been told that the department is pretty good by the parent company's standards and that we've even received an internal award or two. We're 17 people in the department, split in smaller groups of 2 or 3. As you might've guessed from the COBOL part further up, the average age is over 40 years (as a point of reference I'm 29 yo).

Right now, there is no version control system in place (there exists a general backup scheme though). When needed, files are passed around through shared folders. Usually there's one person in every group responsible for copying the "final" version of the files back to the production server. I find this absurd and even a bit dangerous.

How may I try to convince management that we should implement a VCS scheme in our department? I've never deployed a VCS myself but every other place I've worked at had one. I think I'll hit a "we've been OK until now, why bother" wall from the first step, coupled with the age of most of my co-workers that will feel this step is an unnecessary hurdle.

I know the basic advantages of VCS (traceability, granular backups, accountability etc). I'm looking to back my case with realistic cases and examples of real added value over the implementation costs, not just a "but-but-but, we must have a VCS you fools!" :-)

like image 379
Antonis Lamnatos Avatar asked Jul 14 '09 09:07

Antonis Lamnatos


People also ask

Why is it important to have a version control system in place?

Version control helps teams solve these kinds of problems, tracking every individual change by each contributor and helping prevent concurrent work from conflicting. Changes made in one part of the software can be incompatible with those made by another developer working at the same time.

What are some helpful things that version control enables?

Version control enables the current team to analyze the deletion, editing, and creation of datasets made since the original copy. It brings clarity to the development of the software. It ensures that different versions of the document are distinguishable from each other. So, it is easy to identify the latest version.


3 Answers

You don't necessarily need their permission.

Install svn on your machine, start using it, and then start convincing your fellow team members to use it too.

Then watch and see what happens.

Edits

  • The basic idea of this is that it's easier to show than to tell.
  • It's a great idea to support your ideas with a working implementation/solution.
  • Of course, if you succeed, and they want the system used department/company wide, you must be prepared to support the transition, know how the software is to be installed and used.
  • Going ahead and using something accepted in the industry is faster than having discussions on what system should be used.
  • There is a good change that this will get you noticed. You may also get your peers respect and support.

As suggested, the same approach can be made on other areas:

  • issue/bug tracking systems
  • quality tools
  • time tracking
  • continuous integration
  • a wiki for knowledge base, HOWTO's, guidelines, tutorials, presentations, screencasts
  • different IDEs and tools
  • build tools
  • automated deployment
  • various scripts that would save your team time

.. any item that will visibly add quality to your work, but doesn't (yet) disrupt existing methodologies and practices.

like image 164
Mercer Traieste Avatar answered Oct 11 '22 14:10

Mercer Traieste


Joel Spolsky has an excellent article: Getting Things Done When You're Only a Grunt

Quote

Nobody on your team wants to use source control? Create your own CVS repository, on your own hard drive if necessary. Even without cooperation, you can check your code in independently from everybody else's. Then when they have problems that source control can solve (someone accidentally types rm * ~ instead of rm *~), they'll come to you for help. Eventually, people will realize that they can have their own checkouts, too.

like image 37
Kobi Avatar answered Oct 11 '22 14:10

Kobi


Management? I will put bold the expressions and words you should use:

Your should display some examples how a VCS will prevent losing money to the company if some error/bugs or disaster happens. It will be faster to solve all problems, so maintaning the systens won't be so lazy and people become more productive.

You should also mention that implementing a VCS has no costs.

VCS will also give advantages for backup all the existing code. So, all the code will be safe.

like image 45
Ricardo Avatar answered Oct 11 '22 15:10

Ricardo