Over last weekend I read the book Freakonomics by Steven D. Levitt and Stephen J. Dubner. It was a quick, interesting read, and I highly recommend the book for anyone developing software. While the book doesn’t discuss any software development topics directly, the underlying themes of the book are very applicable to anyone programming computers.

If I were to summarize the book in an equation, it would be:

interesting questions + statistical data = surprising conclusions

The book asks a number of interesting, sometimes off-beat questions, and then proceeds to answer them by using statistics and economics. The answers are often surprising because they are counter-intuitive at first glance. It’s a fun read just for the conclusions it draws in areas of life such as homelessness, racial tensions, real estate, baby names, and lots others.

One premise of the book is that conventional wisdom is often wrong. Freakonomics explains that conventional wisdom often is formed from ideas that have the following two properties:

1) The idea is easy to understand and explain to others
2) The idea aligns closely with self-interest

In other words, if an idea is simple enough to be internalized by many people, and that idea seems to be in the self-interest of the average person, then that idea often becomes conventional wisdom, whether it’s true or not. Of course, the point is not that all conventional wisdom is wrong, but simply that conventional wisdom needs to be scrutinized and not accepted at face value.

Another theme of the book is that when statistics are collected and analyzed, the results are often surprising and contradictory of intuition. This principle resonated with me as a software developer, as it is the reason why premature optimization hardly ever works. Relying on intuition instead of measurements is usually wrong - but often seems attractive.

My main takeaway from this book was a reminder to always measure and look at data before drawing conclusions. Reading it was a good encouragement to question conventional wisdom, whether in social issues or software development.