Why don’t smaller companies version their software?
This befuddles me. Over the past couple of years I have run across so many companies that do custom development but have zero version control in place. In particular are companies that do a lot of RPG or Cobol development work, and are just getting into doing Java. Usually they keep their source code in separate libraries on the server, and only work in the green-screen development. While the server is backed up and the source code is protected, its never truly versioned, and certainly not shared and viewable by other developers. When they finally move to using a rich IDE (such as Rational Developer for i or z). for their development work, their source code is now stored on their local desktops (or laptops as the case may be). This means that their source code is not protected, yet they have powerful systems for versioning at their fingertips!
Benefits of Version Control
-You can restore your application to any place in time for any piece of software code that has ever been checked in.
-Developers co-developing on the same project are less likely to wipe out each other’s code.
-Developers can synchronize code and changes to code while working independently on the same application.
-For Sarbanes-Oxley, HIPPA, or SEC bound companies, this is a MUST. You must be able to document changes made to your source code, and you must have some protection mechanism for rolling back to previously known good code.
-Creates an audit trail so you know what bugs, or features have been worked on.
Getting Started
If your organization is just getting started with version control, and are looking for a low cost solution, I highly recomend a free Subversion VMWare appliance. If you don’t have VMWare, you can get the free server from VMWare ( I believe this used to be the GSX version). This will allow you to run a server on existing equipment. If you do have a machine that you can use for a dedicated server, I recommend a Linux OS. Fedora and Ubuntu come with Subversion, and its ridiculously easy to set up. Its actually more difficult to set it up on Windows. Subversion has plugins for Eclipse (there is Subclipse and Subversive), for the file system (TortoiseSVN), and for many other IDE toolsets. For many organizations, this is all you will ever need …. and its FREE. There is NO reason not to use a version control system. Its like having unprotected sex. Why do it when you know you can get free condoms?
Commercial Software
Even though I sell a commercial version control system, I don’t recommend it if you are just getting started. Its just too complex. However, if you have already adopted CVS, or Subversion, and you need or are required (due to regulatory compliance) to have more functionality, then Rational ClearCase is an excellent product. It integrates with Eclipse and all the IBM development tools, WebLogic studio, and also with Microsoft .NET Visual Studio
What Happens When You Have No Version Control
You know that great developer named Matt that you just hired? He’s been working 50 hour weeks for the past 2 months on the current project. He’s great…..but he just got hit by a bus. His laptop was with him, but its trashed now. So was all the source code, because there was no central version control repository. Guess what? There is no source code any more and you’ve got bugs to fix.
How about Milton? He’s been with the company for 5 years. Real weird dude, but the only one working who knew your custom developed CRM system You fired him yesterday for staring at the receptionist too much (she was really creeped out). Just before he left he formatted his desktop….and left a nasty little bug in the CRM system. Where’s your source code now? How are you going to tell the CEO or CIO that you have no way to fix the bug without recoding the entire system?
Then there’s Roger. He’s your SOX auditor. Nice guy, but wants to know who made the change to the CRM system that is now spamming your customers with penis enlargement ads (probably Milton)… and who approved the code changes….. as well as your plan for rolling back the source code.
DOH!!
Moral of the story
Version control your software. Use a free version at the very least.