Best Practices – Why I Hate Them
&gt; If you can’t explain why you’re doing something, and you’re just doing what you’ve been seeing others do, maybe rethink it and educate yourself on the topic.<p>This is very interesting to me, and applied to our entire lives, not just IT. I&#x27;ve started with the above opinion about 25 years ago. I was as sure as the author about it and I was similarly very outspoken about it. With time though I started noticing some problems with the theory&#x2F;philosophy. I will fast forward and simplify not to make this very long:<p>- people notice a pattern: if problem X then solution Y<p>- the Y solution spreads in adoption<p>- problem X is not really experienced any more because it is &quot;presolved&quot;<p>- future people end up doing Y without knowing why<p>At this point you have NO clear optimum path:<p>1. you can keep doing Y but you will certainly do it when X is not present so you expend energy for nothing and even make things worse in some cases<p>2. you observe point 1 and stop doing Y, but you will stop doing it even when X is present, at least until you start noticing X reappearing as a problem and the X-&gt;Y pattern is again understood<p>Now you may say: just rethink everything before doing it. But that is not possible, it would several lifetimes just to discover the absolute basics of every day life. Most things you can not deduce, you must go through trial and error for significant periods of time.<p>So what do we do about tradition? Do we follow it blindly? Do we reinvent the wheel at every step? Clearly those are just the extremes but I do want to mention that if I would have to chose just between them I would follow tradition blindly. 20 year old me would absolutely think I am an idiot for this! But I payed the price of thinking I can outsmart past generations so many times that I became very skeptical about how smart I am in reinventing things. And this is not me being stupid, it&#x27;s just that most cycles of pattern recognition do take generations to observe and optimize for, no one person can do it.