Came across this article titled Basic Critical Thinking for Software Developers at hacknot.info. The main point of the article seems to be obvious enough: vague statements (or non-falsifiable propositions) do not good. Bulk of the article is about explaining what makes a statement vague and how that vagueness could be removed with use of (a) defining terms that lack well accepted precise definitions; and (b) making things as explicit as possible.
Agree with the author's point that a lot of energy is wasted in flame wars which originate due to non-falisifiable propositions. However, I am not sure how much does it have to do with critical thinking required for developing good software. I can see how choice of a particular programming language or tool or API or library could be influenced by a developer's acceptance of a non-falfiable proposition (such as: Java is a better than, say, Perl), and hence, may result in sub-optimal choice. However, this connection is not even alluded in the article. Also, the author doesn't offer much in terms of referring to existing body of knowledge, in lines of built to last and good to great in the area of business managemet, to explore the topic further.
I have seen more of blind acceptance of non-falsifiable propositions by management and causing much more damage than by developers to produce low quality code.