Eu acho que programadores que tem contato apenas com a programação, acabam tendo dificuldade com esse pensamento critico.
Como alguem vai desenvolver um bom sistema de gestão, se eu não sabe nada de administração de empresas?
Acaba se tornando um programador qualquer, incapaz de ver que algo pode ser feito de forma melhor (do ponto de vista do usuário, do processo da empresa). Apenas vai saber escrever bons codigos.