My only quibble: "Argue against something you believe" is not a special, part-time exercise. It should be a tightly-integrated element of your ongoing mindset, even in 'damn the torpedoes' dev mode.
Have you ever tried arguing against this quibble of yours?
I don't mean to sound snarky; that just feels like the best way to express my reaction to your statement. I don't disagree with the sentiment; I just don't think you have any idea what you're talking about.
arguing against what you believe applies to a lot more than just programming. it is a pretty good way of arriving at what you really believe. guess you believe X0, try to argue against it arrive at X1 as a result of the arguments, argue against X1, ...
My only quibble: "Argue against something you believe" is not a special, part-time exercise. It should be a tightly-integrated element of your ongoing mindset, even in 'damn the torpedoes' dev mode.