Version Control
Ugh. I spent an hour today trying to convince a programmer that version control is a good idea. He had a number of counter arguments, and has me somewhat convinced that he actually is using a version control system. One that involves filename changing and copying files individually from one computer to another. It is unclear to me that he ever understood the advantages of automating that all. But at least he left saying he’ll “think about it”.
Accountability. Trivial change lists. Trivial distribution. Rollback. Remote backup. Remove the fear of rapid development.
What am I forgetting?
I’ve had that conversation, too. Like you, I don’t understand it — I use version control even on the rare occasions I’m just programming for myself! If you’ve done it once, then it’s easy to set up; it makes it a lot easier to move work across computers; the history of changes helps you undo accidents… Really, if there is a downside beyond “it’s not what I’m used to”, I don’t know it.
And yet, we have these conversations.
Maybe you can get him a copy of The Pragmatic Programmer.
I don’t think that version control systems were taught when I got my CS degree, and I suspect that most people encounter them lightly (if at all) while getting an undergraduate degree. Maybe that’s part of the problem.
Also, some people’s experience with version control systems has been with lousy, expensive, or heavyweight systems, which might color them negatively towards using them for personal projects. Not that it’s a good excuse, mind you.
I can remember when I first encountered source control–Alain and I used rcs(!) on a little project.
John: One of the groups at a client of mine right now is STILL using RCS as their source control! One interesting reason they gave is that when something goes wrong with the repository you can go in and extract useful info from the repo. That is certainly true with RCS, but there is a point at which you need to trust your backup system.