April 3, 2007

I Don't Believe in "Best Practices"

Best?

Would you ask your friends:
  • What's the best color?
  • What's the best food?
  • What's the best car?
  • What's the best movie? 
  • What's the best sport?
  • What's the best computer?
  • What's the best Operating System?
  • What's the best programming language?
In the company where I used to work, they liked to talk about Best Practices.  I truly dislike the term "Best Practices".  I don't believe in them.

I believe in practices that have worked out well in the past.
I believe in practices that are good enough that we will likely continue using them.

The dictionary defines the adjective "best" as "better than all others".
So, can you truly recommend a practice that could be better than all others?  All of them?

I don't like it when people ask "What's the best test automation tool?"

Now, you can ask about favorites.  But how can you ask about "best" and expect a reasonable answer?

You can ask about choices that worked out well.  But would someone else's choice necessarily work out well for you?  I know some choices I have made that worked out well on one occasion and poorly on others.

So ask me about good practices.
Ask me about which practices I'd use again, and which practices I'd avoid next time.

But please don't ask me about Best Practices.

see:
    http://www.satisfice.com/articles/good_practice_hunting.pdf
    http://www.satisfice.com/articles/practice.pdf


I've seen this slide before, and have always felt that it reflects some basic ideas that I believe to be true.

The Seven Basic Principles of the Context-Driven School
  • The value of any practice depends on its context.
  • There are no best practices.
  • People, working together, are the most important part of any project's context.
  • Projects unfold over time in ways that are often not predictable.
  • The product is a solution. If the problem isn't solved, the product doesn't work.
  • Good software testing is a challenging intellectual process.
  • Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.
From Cem Kane's web site - http://www.kaner.com/pdfs/ContextTesting.pdf