Always Always Always Use Source Control, October 5, 2014

disaster icon

I feel like I should be stating the obvious here, but it is extremely unwise to work on any software project without using some source control system to track your work and make continuous backups of everything.

I finally got my start as an independent contractor about a year ago. I recently wrapped up a long-term contract and transitioned to a short-term contract for a new client. I asked the manager on the project what they used for source control and he told me that they don't use source control. I told him that I would be much more comfortable using source control and volunteered to use GitHub at my company's expense; afterall, it starts out at only $7 per month.

I started the project last Monday and hit the ground running, making numerous changes, small and large, to some SQL CRUD interfaces. Four days later, disaster was narrowly averted. I suspect that the problem had to do with software running in the background from the client's security team; after all, I was using a laptop that belongs to the client. I turned on the computer and logged on to find that all my work had been erased, along with some, but not all of the software I had installed. It. Was. Gone. and if I hadn't backed it up in the cloud, I would have had to start from square one; making both the client and I rather unhappy.

Given this experience, if I'm ever told by a client that I must do a project without source control, I will find a new client, because working without source control would be negligent on my part. Always use source control. Always. Always. Always.