- has informed me in the way that I work
- give technical background to improve how to do the job.
Whenever someone says they are doing agile, go back to this, and check. My experience is most places don't understand what is agile.
- Pragmatic Programmer
- The Toyota Way
A Philosophy of Software Design
This book I read it because I knew it had a bit of a contrarian view to quite a few things that I liked. And there is really good thinking behind it.
The Secrets of Consulting
A great read from Gerald Weinberg. You can find my review here
More Secrets of Consulting
A second part to the above book. More insightful comments. With my review here
The Bottleneck Rules
A very quick introduction to the Theory of Constrains. Enjoyable to read.
The Principles of Product Development Flow
While the previous book has a very accessible approach, this is more of a Tour de Force of Queue Theory, with a lot of maths involved. It was difficult to read. But helped understand better when queues are bad, and when they are not as bad
- Building Microservices
Architectural Styles and the Design of Network-based Software Architectures
A mouthful of a name, but that is the dissertation that gave us REST. Whenever you want to learn about something, go back to the root. Because as time goes by, people completely distort the original idea.
- Extreme Programming Explained
A myriad of useful techniques to improve your code. Really useful tool to have
- Growing Object-Oriented Software Guided by Tests
Domain Driven Design
It is a difficult book to read. Eric Evans has a very dry style. But the amount of insights within the book is fascinating. When used correctly, is a very powerful approach
TDD in 3 easy steps (blog)
I find the thinking of Samir Talwar very incisive. And this provides a better representation of what TDD is than just saying Red, Green, Refactor (still the core, though)
- Working Effectively with Legacy Code
Clean Code: A handbook of Agile Software Craftsmanship
Though some of the recommendations I may not follow today, and I think it fails in a few things (naming, for example), this book was the first that made me think more about micro design. Also the book that convinced me to try TDD.
A great analysis of how organizations work from very high level perspective. A teal company is a an extreme version of the self-organizing principle of the Agile Manifesto (though the development of that type of organization has nothing to do with agile).
- Team Topologies
The Phoenix Project
Blockers, hero complex, analysis of what is not working. The Phoenix Project is excellent because it represents what I have seen
- 5 Dysfunctions of a Team
- Pair Programming by Billie Thompson (blog)