I don’t care if you are the most brilliant programmer, able to write tight code, crafting algorithms as aesthetically pleasing as they are fast. If you are not using a source control system, you are nothing but a dilettante, an amateur, or if you are truly exceptional, an idiot savant.
I don’t understand it. The first tool you should install is a source control system; before the IDE, before the compiler. In this day and age of free SCM systems (subversion being the most popular) why is it that there are still companies that are not using source control?
I am not talking about a wholesale document management system. It’s not like we’re saving all the various versions of your frame maker customer documentation. No, I’m simply interested in your engineering department, your programmers, working on lowly source code.
I’m not advocating the use of such advanced features as tagging and branching! Heaven forbid we ask your designers to experiment with the mental gymnastics that are feature branches. I would be ecstatic if companies used a simple linear development main branch. It would make life so much easier.
The objection I often hear usually revolves along the lines of “We will have problems when the same file is modified by multiple designers!” EXCUSE ME?! What happens now if you don’t use source control? Might you not simply overwrite someone’s changes? Well, that’s so much better than getting a pesky conflict and having to deal with a merge.
Another good one revolves around remote development. “We have remote developers, but we don’t/can’t/aren’t allowed to have a VPN to give them access to our servers. We can use a SCM system”. Run don’t walk to Rob’s post on source control for micro-ISVs. I too use DreamHost for hosting, and they provide you with the ability to create hosted subversion repositories. It works darn good too!
Ultimately, those are all red herrings. I believe this is at best, simple inertia. Nobody wanting to take charge of the process. At worst, it’s outright laziness. Let’s face it, the change in workflow is minimal. Do an update in the morning to pick up any changes, and simply commit from time to time. Not that hard.
Why is it that so called developers/engineers/programmers still are not using source control systems? Have you ever been successful in showing them the error of their way?