I agree with every word, with a single big caveat: context. While these are all common mistakes (or, in design language "anti-patterns", each and every one of them can boast a particular set of circumstances where they are the right thing to do. But that's an exception, which bounds the rule. On the other hand, in the case of "best practices" it is often the exceptions that are presented as rules. Even a broken watch is right twice a day, and a watch that is 5 minutes early helps you catch the bus. No solution is always good or always bad - a solution is effective per certain problems in a certain context. I propose a change of language. Instead of best and worst practices, lets talk of design narratives and design patterns. A design narrative tells the story of a problem and how it was solved (or attempted to be solved) in full detail, including all the contextual information, misfires, recoveries and lessons learnt. A design pattern identifies recurring triplets of problem, context and solution across narratives.