Best Practice?

A post about best practices? Bitch, please.

I might get a tad obnoxious in this post. If that ain’t your thing, I warned you now!

Some time ago, I witnessed my personal record of “best practices”. I was attending a presentation where these cursed words were thrown around carelessly. I counted at least 10 of them (DING DING DING)! It seemed like I was the only one being annoyed by the use of these words, the presenters themselves didn’t seem aware of what they were saying. That’s an assumption, but in the same presentation they also said the reasonable words “it depends”, so that’s why I think they weren’t aware. That made me quite confused. I tried to engage in discussion to see if they were aware of these contradictory statements “best practice” versus “it depends”, but I was met with confusion and I was probably perceived as that person (the annoying person that corrects others, in this context).

So, what am I looking for? Ideally, I would like to have a better response, a way to explain people why best practices are nonsensical, utopia. Preferably without coming across as a snob. Is that even possible?

On the other hand, I feel that I should put in an effort into learning why people use the term in the first place. The greatest irony would be that it is my best practice to always fight best practices. It is impossible to educate everyone out there, so why not try to see their point of view?

Let’s turn to trusty Wikipedia for a moment.

“A best practice is a method or technique that has been generally accepted as superior to any alternatives because it produces results that are superior to those achieved by other means or because it has become a standard way of doing things.”

Alright, that sound pretty reasonable, although I’m not 100% convinced by the words “generally accepted”; they are very vague and contextual. Is something generally accepted when it is a best practice for a team? Or should the practice be used at an entire company?  The entire world?

But then, I read this:

Sometimes a “best practice” is not applicable or is inappropriate for a particular organization’s needs.

And that makes me go like:

WTF, mate.

I read this as: ok, we admit that a best practice is not a best practice in a different context.

And then I’m like: if a best practice is not always a best practice, then why on earth are you calling it that? Why not call it what it is: a good practice that works in a certain context.

If A != A, then you’re just telling an untruth.

There must be something I’m missing here. I’m probably just too strict, reason too much like a programmer, I have no clue. But it annoys me.

Perhaps I’m too strict when it comes to the word ‘best’. That word to me means that there is no other option that will give you better results anywhere. Let’s turn to the dictionary. As an adjective, the word “best” means “of the most excellent or desirable type or quality”

That seems to be where the problem is for me. What is a desirable type or quality to me? That can be very different from what another person would prefer. The problem with best practices in software development seems quite obvious to me now: people use the phrase because they reason from their own point of view.

Thus, it seems that I just have to relax here and translate in my head that when people say “best practice” they mean it for them, personally. Trying to correct them is indeed kind of snobby and not really helpful either.

Sure, the perfectionist in me would like everyone to use correct vocabulary, but that’s just not feasible (plus, I make mistakes as well). I’ll keep on saying “good practice” like I have done for a while, but I will refrain from arguing with people about the words “best practice”.

End of obnoxious mood.

Peace out.

Here’s a picture of my parents’ cat if you made it this far.

 

 

1 thought on “Best Practice?

  1. I’m not sure I get the “allergy” to the term “best practice”, especially not since when I hear it it is often “the best practice in such case is…”.
    There are good practices, there are bad practices, and some practices are the best we know of at the moment. Holding someone to the letter on this term seems to me a bit of an overkill.
    Also, having something labeled “best practice” does not meant one should always practice it, since choosing a way to do something is always a trade-off, and the “best practice” is only in the sense that it balances the different properties in a way that makes sense most of the time.
    For instance, one might argue that when writing selenium code, using proper page-objects is the best practice (I have not yet heard any better). However, when I scribbled a script of a three clicks web application that took me 5 minutes to write and won’t change in the foreseeable future, I wrote it using raw selenium code, and it’s an ugly piece of code. However, to my needs (saving me time of typing through the organisational login page once a day), it works, and re-writing it again will take me about half of what it will take to implement it “properly”. I chose not to use a “best practice”, and I can defend my position – it does not make the best practice any worse.

    When facing a “best practice” I find it useful to ask (either out loud or just to myself) “when wouldn’t I want to use this?” or “what are the properties that makes this way better than other ways?”

    It is not only software projects that are contextualized, the words people use should also be put in context, and “best” usually means “best for the scenario I’m describing”.

Leave a Reply

Your email address will not be published. Required fields are marked *