I have consistently seen best software designers apply critical thinking ideas to their daily work, in particular, to their own design decisions. For example, I saw this: a seasoned software designer talked about why a design could be adequate for a particular