Featured image of post On "Against best practices"

On "Against best practices"

I haven’t written any blogs on books or readings, so here’s what I’m gonna try: I will recommend some articles, and then write some comments about them.

This is the second piece of this series.

If you are interested, you can read the first one here on dependency updates.


Recently, I read an article bashing on best practices and I’d like to comment on it. Read the original article here. Or, here’s a summary for those TL;DR guys:

The author argues against the blind acceptance of “best practices” in programming. While acknowledging that many best practices offer valuable advice, they contend that their dogmatic application, often by inexperienced programmers or those seeking to exert authority, can be detrimental. The author emphasizes the importance of evaluating the context and reasoning behind each practice rather than treating them as inviolable laws. They illustrate this point with examples like Postel’s law, the avoidance of globals, and the DRY principle, arguing that while generally sound, these guidelines have exceptions. The author criticizes the use of “best practices” as arguments from authority, which stifles discussion and critical thinking. They also draw a parallel with safety regulations, where challenging existing rules can be difficult due to the perceived moral high ground of those advocating for them.

First, let’s start with what’s good about it:

Everyone should develop the skill of critical thinking and should not blindly believe in some dogmas and even use them as meaningless arguments to support their ideas in discussions.

There’s no argue for this, I don’t have a problem with it, which is weird, because I usually have a problem with most things.

And the TL;DR summary above is created by Gemini, which in itself is extremely solid.

My problem is that how this article is organized could not support the idea that you should not blindly accept “best practices”.

Let me expand.


The title of this article is “against best practices”, then the author started at length with the example of Postel’s law. It seems valid, except that “Postel’s law” is not a “best practice”, so the example barely justifies the title.

Don’t trust me, trust Google: If you google “Postel’s law” + “best practice”, you will find zero results that mention these two terms on the same page, because nobody has ever boasted that “Postel’s law is a best practice that you should follow” or anything like that.

So, this example itself can’t illustrate the fact that blindly following best practices is bad, because this example isn’t a best practice.

It’s like you are writing an article named “against alcohol”, and then all of a sudden you start with an example that “if you drink coke every day it’s bad for your health”. Because coke isn’t alcohol.


Take a step back, let’s examine Postel’s law, or laws in general.

The author goes on to argue that it’s not a “law” in any meaningful sense and there is no consequence for breaking it. But the thing is, all “laws” are like this: Think about Moore’s law, Conway’s law, etc. They are either not valid any more or there are definitely exceptions. Just calling something a “law” (or a principle, a rule, etc., for that matter) doesn’t automatically make it 100% correct. Nothing is 100% correct, this should be axiomatic. Calling something a law doesn’t mean you should blindly trust it.

Take another step back and let’s have a look at laws in the legal sense in the real world. The thing about “law” is that not all laws are meaningful, not all laws are reasonable, and not all laws are enforceable on every violation. That doesn’t mean you should not follow the law. It’s still a “best practice” to follow the law because it’s comment sense and it generally does you no harm.

Even if we are talking about scientific laws like Newton’s laws, they are not always valid. Newton’s law breaks on the micro level.


OK, enough about the tangent about laws which is non-best-practice, and back to best practices.

The author then gave some examples that really are best practices (I.E., if you search that term and “best practice” you can find results that have both of them), which is good. For example, the 12-factor app.

But this is where things are not so convincing: The author thinks the 12-factor app “has some okay ideas, some dubious ideas, and some outright bad ideas” with no explanation whatsoever.

As a free human being, you are free to think in any way, but some more explanations are always welcome. Which factor of the twelve factors is dubious and which factor is an outright bad idea? The author didn’t say, so we shall never know.

Of course, the 12-factor app doesn’t always work. For example, it’s less useful if you are not running things with container orchestration platforms, it’s mainly for the modern containerized, K8s stuff, and in this context, it’s solid, and that’s why it’s commonly known as a best practice: it’s (generally) agreed upon in certain contexts. That said, even if you try to search “Is 12-factor app wrong” or something like that, you’d struggle to find some meaningful results because they are not wrong. They are solid in a given context and that’s why they are a best practice because it’s some common ground that simplifies your life if you work with containerized deployments every day.


In summary, the article has a very solid title that I completely agree with, except the content couldn’t support the title so it seems less convincing, although I don’t need to be convinced about it.

Just like a milking stool which is supported by its three legs (or maybe four, depending on your philosophical bend), the central idea of an article should be supported by its content.

On that note, I’d like to wrap up with something painstakingly sarcastic but useful: Logic is nice, and I hope you shall have some of that too.

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy