If you’re looking for a No Best Practice rant like James Bach, then you won’t find it here. Instead, here I will propose the one true best practice I’ve found, one which I have not been able to change it from being a best practice no matter how much of the situation I change:
Use version control
Nice rebuttal James Bach. Of course there is context that I am guilty of taking for granted. As I am a programmer at heart and a Pointy-Haired Boss second
, I mean to convey keeping code files under source control is a best practice. Then you can argue about should it be all code files? Just non-generated code files? Etc. But getting into excruciating detail kills the less-experienced person’s desire to actually *use source control*.
The tool is really up to the user as long as the tool works for him or her. I’ve used SourceSafe at times, especially for work I did myself, and it worked for what I needed it to do. Would I use the same for a multiple-person team at work? Nah.
The biggest argument I get against source control is if it’s a one-person development effort. But source control even helps then by allowing you to play big “what-ifs” with your code without worrying if you remember every step you took so that you can undo it.
Another, even weaker, argument is that it takes too long to use source control (honestly this was an argument on a large project where I was the Configuration Manager). With any decent integration or client-side tool the extra effort was not noticeable and barely dented the complaining party’s web surfing time.
“Version control” can’t be a best practice.
Mr. Norton: James Bach has asked you to be more detailed about the specific experiences you’ve had with version control. I’d be interested in reading them, too. I don’t think he’s playing rope-a-dope games here:
http://blackbox.cs.fit.edu/blog/james/archives/000207.html
What does “version control” mean to you?
Can you cite something that is the opposite of “version control” and describe why it is a bad practice in all conceivable contexts?
If I said that I, too, practice version control, would you know what I am actually practicing? Or is it possible that I could be doing something quite different, and calling it the same thing?
If I said that I *never* practice version control, would you know what I am actually practicing? Or is it possible that I am doing the same thing you are doing, and simply calling it something else?
Is it even possible not to practice *some* form of version control, and if it can’t not be practiced in some form, is it meaningful to recommend it?
If you called version control an “interesting practice” or a “practice that I like” what would you lose? What blow do you think you are striking, and against whom, when you pull out the word “best” and wave it around like butcher knife?
Which one?
I think it’s irresponsible for you to not share the whatever incident let to this post;)