Sources of Power: How People Make Decisions by Gary Klein is a very interesting study of the crisis decision making process. Klein and his team have ‘slept in fire stations, observed intensive care units, and ridden in M-1 tanks, U.S. Navy AEGIS cruisers, Blackhawk helicopters and AWACS aircraft’. From that experience, author disputes the traditional, rational choice paradigm and presents his own model of judgement, based on pattern recognition.

Most of the books on similar subjects are filled with dull academic conclusions drawn from lab experiments, but this one is packed with case studies about firemen saving people from burning buildings and airplane carrier commanders deciding to shoot down unknown aircrafts in war-zones. The central argument of the book is that pattern recognition drives decision making, and that real experts do not waste time on comparing all available actions, but match options to the situation at hand and choose the first suitable solution by evaluating each option on it’s own merits.

Klein argues that stories are archived in our brains and used for pattern matching, so his “Recognition Primed Decision Making” model is built gradually through the chapters, carefully mixing the scientific content with stories, making this book very interesting to read. Torn arteries, Silkworm missiles, weapons detectors and AEGIS cruisers will stick with you long after you send your copy of the book on a trip around the world by lending it to someone.

Though I would not call this book an “eye opener”, I strongly recommend it to everybody involved in any decision making. For me, this book provides a real-world justification of pragmatic techniques that obviously produce results, but could not be previously explained without sounding too much like a black art. Hidden gems in this book are case studies of communication between tank commanders and their teams and suggestions how to improve it, which I’ve found very useful and applied successfully to software development.

A lot of ideas described in this book are also readily applicable to software design and processes. The analysis of radar operators provides an interesting insight into the mind of ‘users’, with a few interesting hints on how to improve usability of user interfaces. This book preaches pragmatism consistent with many ideas that are now widely accepted, like KISS and avoiding premature optimisation, so it will appeal to fans of Agile processes. I think that this book has yet to reach a wider programming audience, and I strongly recommend it to team leaders, project managers and serious programmers.