There are a handful of books that I know of that deal with the topic of cognition with respect to software development. Andy Hunt's Pragmatic Thinking & Learning: Refactor your Wetware is one that stands out for me.
Lately, I've also been reading about metaphors and cognition. I've seen a lot of references to George Lakoff and Mark Johnson's Metaphors We Live By which I first heard about from Ward Cunningham's video where he explains The Debt Metaphor. As a coach, I find myself consistently using certain metaphors to explain techniques like TDD and pair programming. Another book, Clean Language by Judy Rees and Wendy Sullivan asserts that we use metaphors all the time and that how we experience anything is greatly influenced by the metaphors we use.
I don't see any mention of metaphors in the promo book's description but the last four bullet points are encouraging:
- Writing code that is easy for others to read
- Picking the right names for your variables
- Making your codebase more understandable to newcomers
- Onboarding new developers to your team
These are things I often discuss with the teams I coach.
The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck