Our office engineering reading group just went through The Logic of Failure: Recognizing And Avoiding Error In Complex Situations by Dietrich Dorner, and I really liked it. It illustrated quite vividly how humans fail to deal with complex situations (in other words, anything worth doing in real life).
The book is from a while ago, but its lessons are still completely relevant, and perhaps even more so given how much more complex and interconnected the current problems we face have become. I found many of the anecdotes of poor thinking resonating with my past experience in companies and groups (and by myself).
The book is very good at being harsh and realistic about our failings. However, I wish it did more to teach how to work against those. Its chief recommendation are self-reflection (thinking about your thinking and process) and simulation (practicing being in complex situations and analyzing your performance) make sense, though I wish they were fleshed out in more detail.