I’ve decided that I don’t like the the term ‘best practice’. I come across it a lot when reading blog posts and articles about Ruby (not that this is a problem restricted solely to the Ruby community) and I don’t believe it’s a helpful turn of phrase.
The phrase ‘best practice’ suggests that there is no better way to solve the problem, that the solution should be applied to all applications or areas that share a similar structure and this simply cannot be the case. There are lots of things that are described as ‘best practices’ that are not suitable for all applications. Some abstractions are an abstraction too far for a small system. Some solutions solve the problem in a similar to another solution, but are not necessarily better; they’re just different. Some best practices strike me as being plain wrong, but that’s probably because it wouldn’t be appropriate for me to apply them on the kind of systems I work on.
Something can only be called a best practice for a specific problem and anyone who searches for solutions to their problems will understand when I say “nobody ever has quite the same problem as you”.
I believe dropping blanket terms like best practice and objectively discussing a proposed solution in terms of a specific problem is a far more constructive, and less misleading, way to present a practice. People don’t need to be patronised by telling them what’s best for them, they can work it out for themselves!
Valid point or pedantic semantics?