My library
This is a list of books I have read in the first decade of my professional career. I started quite late so most if not all were read in the latter half. Those included here I would pass on as recommendations, the means by which I have come across most books myself. I am in gratitude to everyone who has shared something to read.
The other means by which I have come across books is the trail of references each completed book leaves behind. If I like a book, I have found to usually enjoy the titles it references. If you are not a regular reader (like myself a few years ago), finding one book that resonates with you may lead you to another, then another, then another, and so on. It won’t be long after that first book that you might find yourself reading regularly.
Organisational strategy
- The Good to Great series. Jim Collins studies why some companies outperform the market, last decades spanning multiple CEOs and get through recessions while others don’t. I’d recommend reading Good to Great at the very least. The other titles in the series are superb too but after the second or third book you may start seeing some repeating ideas.
- The Art of War by Sun Tzu. I read it while standing in a bookshop (and purchased it afterwards). The translation is only a 30-minute read, commentaries are longer. My copy is by John Minford.
- The Leader’s Handbook by Peter Scholtes. Scholtes taught with Deming at W. Edwards Deming Institute. I read this book particularly for Chapter 9: Performance without Appraisal and the rest of the book turned out to be as great.
People development
- The Five Dysfunctions of a Team by Patrick Lencioni. A leadership fable about an organisation plagued by distrust and conflict and how it turns itself around.
- Trillion Dollar Coach by Eagle, Schmidt, and Rosenberg. Lessons from Bill Campbell, the coach of the likes of Steve Jobs, Jeff Bezos, Larry Page, Sergey Brin and Sundar Pichai.
- Turn the Ship Around! by David Marquet. The turn-around story of Sante Fe, an under-performing submarine, and turning followers into leaders.
- Drive: The Surprising Truth About What Motivates Us by Daniel H. Pink. Studies where ideas like carrots and sticks come from and why it might be time to think beyond them.
- Training From the Back of the Room!: 65 Ways to Step Aside and Let Them Learn by Sharon Bowman. A couple of key takeaways were not to speak for more than 10 minutes and letting learners teach one another.
- Multipliers by McKeown and Wiseman. It was recommended to me by several colleagues before I finally read it, and it was worth it. It tells how some leaders (Multipliers) make those around them smarter whereas others (Diminishers) drain intelligence.
Software engineering
- Agile Technical Practices Distilled by Marco Consolaro and Pedro M. Santos. Not as well known as others in this list. It is however my go-to book for learning SE techniques like TDD, Refactoring, Code Smells, SOLID and Object Calisthenics. It is concise and includes exercises a.k.a. katas. A lot of the content for Software Crafters meet-ups is borrowed from here.
- The Pragmatic Programmer by Andy Hunt and Dave Thomas. One of the first tech books I read. Filled with many memorable anecdotes like the stone soup and broken windows.
- Clean Code by Robert C. Martin. A must-read if you are writing code and second guessing things like whether variable names should be short or descriptive.
- Refactoring by Martin Fowler. Refactoring is the practice of changing the structure of code without altering behavior (usually to make it easier to add new behaviours). It is an essential skill for software developers given changeability is a key characteristic of software. I learnt many new techniques and names for a few I was already unknowingly using.
- Working Effectively with Legacy Code by Michael Feathers. Defines what is Legacy Code and strategies to go about tackling it. I’d recommend reading at least the first few chapters, and referencing the rest when required.
- Growing Object-Oriented Software, Guided by Tests by Nat Pryce and Steve Freeman. A walk-through of the development of an end-to-end application. Very useful for understanding how to apply TDD at all levels of the architecture, i.e. beyond the unit level.
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans and Implementing Domain-Driven Design by Vaughn Vernon. A topic I am still learning about with back-and-forth between these two books. The one by Eric Evans (known as the Blue Book) is the original work on DDD, whereas Vaughn Vernon walks us through building a sample application using DDD principles.
- Release It! by Michael T. Nygard. Strategies for building resilient, scalable and secure production-grade applications
- Site Reliability Engineering: How Google Runs Production Systems by Beyer, Jones, Petoff, and Murphy. Read this while building an SRE team for the first time. One of my favourite chapters is Chapter 14: Managing Incidents. The book is available online on sre.google/books.
Extreme programming
- Clean Agile by Robert C. Martin. I read this as a refresher for Agile. Includes the story of signing of the Agile Manifesto at the Snowbird resort in Utah.
- The Art of Agile Development by James Shore. I’d recommend reading this if you want to implement XP in a team. James suggests implementing all the XP rules and practices in concert for a sustained period before going on to adapt them for your circumstances.
- Extreme Programming Explained by Kent Beck. The original work on XP published in 1999.
Engineering strategy
- Peopleware by Timothy Lister and Tom DeMarco. The premise is that the success of software projects depends more on sociological than technical factors. A couple of my favourite chapters are Teamicide and Competition. I find myself referring to a lot of other parts of the book as well.
- Accelerate: The Science of Lean Software and DevOps by Jez Humble and Nicole Forsgren. A compilation of years of research on what makes high performing teams. It discusses everything from architecture and technical practices to leadership styles and culture. One of my favourite chapters is Chapter 2: Measuring Performance which makes the argument against using story points and velocity to measure performance and proposes alternatives.
- Lean Software Development: An Agile Toolkit by Mary and Tom Poppendick. A brilliant book that borrows ideas from Lean Manufacturing and applies them to software development.
- The Phoenix Project by Gene Kim, Spafford, and Behr. A modern rendition of The Goal: a manager in an IT company has three months to turn things around or get shut down.
- The DevOps Handbook by Gene Kim, Jez Humble, Debois, and Willis. Describes the idea and principles behind DevOps. A good accompaniment to The Phoenix Project. I particularly like the first few chapters which discuss value stream mapping and the Three Ways: Flow, Feedback and Continuous Learning.
- The Manager’s Path by Camille Fournier. Describes roles and challenges from being a mentee to a CTO and everything in between. The book was consolation for me when I first stepped into an engineering manager role. I realized what I was going through many others have gone through before.
- Smart and Gets Things Done: Joel Spolsky’s Concise Guide to Finding the Best Technical Talent by Joel Spolsky. Joel is the creator of Stack Overflow and Trello. Great read if you are hiring.
- Fearless Change by Linda Rising and Mary Lynn Manns. Discusses why change is hard and describes patterns for introducing change.
- Managing Humans: Biting and Humorous Tales of a Software Engineering Manager by Rands. Lessons from Michael Lopp, a.k.a. Rands, an engineering leader who has served Palantir, Apple, Pinterest and Slack. Quite an enjoyable read as the title suggests.
- Team Topologies by Manuel Pais and Matthew Skelton. Describes how to organise teams for fast delivery of software.
- Dynamic Reteaming: The Art and Wisdom of Changing Teams by Heidi Helfand. Patterns for making and breaking teams.
- Mythical Man Month by Fred Brooks. Brooks said in 1975 that adding people to a late software project only makes it later. Sadly he passed away recently (in 2022).
Lean
- The Goal by Eliyahu Goldratt. Tells the fictional story of a manager who has three months to turn around his flailing factory or get shut down. Brilliant book and a great way to learn about The Theory of Constraints.
- Toyota Kata by Mike Rother. How Toyota built a continuously learning and improving organisation.
- Toyota Production System by Taiichi Ohno. Taiichi, a manager at Toyota, is considered the father of TPS. This is the story of lean manufacturing in his words.
- Principles of Product Development Flow by Donald Reinertsen. Slightly advanced reading, but highly recommended. It builds on top of lean manufacturing (maybe study lean theory first) with ideas from economics, telecommunication, queueing theory and military science. I am reading it for the second time at the time of writing.
Personal Development
- How to Win Friends and Influence People by Dale Carnegie. Simple lessons that, when I read for the first time, I wished I had known earlier. Smile, call people by their name, make eye contact, and so on.
- Ikigai: The Japanese Secret to a Long and Happy Life by Francesc Miralles and Hector Garcia. The study of Japanese village, Okinawa, where people in their 90s are considered young, and there are more super-centenarians than anywhere else in the world.
- Rich Dad Poor Dad by Robert Kiyosaki. A great starter book to personal finance. Learnt the basics, like what an asset really is. I wish I had a dedicated section on personal finance, but this is it for now.
Philosophy
- Meditations by Marcus Aurelius. The personal diary of a Roman Emperor containing his thoughts on how to live a good life. It is one of the passages from this book that got me studying the stoic school of philosophy.
- Ego is the Enemy, Obstacle is the Way, Stillness is the Key by Ryan Holiday. Holiday rekindles the wisdom of philosophers of old by presenting their work in an easy-to-read and relatable form for modern readers.
- The Daily Stoic by Ryan Holiday. A short passage for every day of the year. I read it with several colleagues at work.
Miscellaneous
Not sure where these titles fall, so adding them here for now.
- Outliers by Malcolm Gladwell. A study of how our circumstances shape us. Helped me reflect my own journey.
If you would like to recommend something to read based on the list above, please reach out to me or drop a message below.
Relevant
How I started reading books
My reading journey started quite late in life. I was that kid in the 1990s and 2000s who had never read Harry Potter. And for much of my early career...
Recent posts
A worked example of Value-Stream Mapping
Value-stream maps can be daunting at first glance like these maps on Google Images. ValueTech (a made-up software company for the purpose of our example) thought so too until they...
Test pyramid and ice-cream cone
The test ice-cream cone is a strategic anti-pattern. It indicates excessive reliance on expensive and flaky forms of testing, such as manual and end-to-end, especially for components that could otherwise...
Notes on Value-Stream Mapping
A value stream is the sequence of activities required to design, produce, and deliver a good or service to a customer. – Value Stream Mapping by Karen Martin and Mike...