The most important single aspect of software development is to be clear about what you are trying to build.
Mental processes are means to ends in the struggle for existence.
The science shows that our minds lie to us about what will make us happy.