James Bach asks us to give up the idea of “Best Practice” ( http://blackbox.cs.fit.edu/blog/james/archives/000187.html ), claims it is something that cheapens our craft, and I find myself agreeing.
Maybe software testers can replace the idea of “best practice” with patterns. We’re already familiar with them, and they don’t have “good, better, best” implications. I see them more as pieces to a puzzle and finding what puzzle piece fits. I should confess I just read Organizational Patterns of Software Development – I like how they tried hard to just observe what worked and share that knowledge. Also with patterns there’s less tendency to try to hide the truth about about when the pattern won’t work or what the downsides are.
One thing I think is dangerous with the “best practices” mentality is when some practice becomes the unchangeable status quo. The day comes when that best practice is no longer the best, but in some organizations there is no way to change the practice once its institutionalized. You have the inefficient formal process, and back channels where the work actually gets done. The more dissonance there, the more companies lose their competitive edge, bright employees leave for greener pastures, disruptive technologies sweep out the old bowling pins and new ones are dropped into place.
Several years ago, before I graduated from college, I worked as a computer operator on the graveyard shift doing tape backups on some ancient (even back then) mainframes and tape reel devices. I was getting paid to follow a checklist, swap out tapes, and put them in the right slot in the tape library. I guess you could say I was following the company’s “best practice” for keeping their data center backed up. As far as I know, it had been “best practice” since the 1970’s when these computers were first purchased. In the rare occasion a programmer would walk through the computer room where we worked, we’d get these strange looks, like they were witnessing human slavery, mumbling about how with commodity hardware and a couple software changes it could all be automated, etc. but it was out of their hands. I was just grateful for a job, but I quickly realized it was imperative for me to finish my computer science degree.
Similarly, it’s my guess that there are still a lot of human test monkeys using inefficient techniques in the software testing profession. Not because they aren’t intelligent and can’t find better ways to do their work, but because they are stuck in the “best practices” of yesteryear. In my opinion, leadership is required to get us out of this mess. Mere managers cling to “Best Practices” and treat their employees like machines. But real leaders innovate, blaze trails, and let their employees dazzle them.