Reading List
- has informed me in the way that I work
- give technical background to improve how to do the job.
-
Agile Manifesto
Whenever someone says they are doing agile, go back to this, and check. My experience is most places don't understand what is agile.
-
Accelerate
A great book that validates some of the thinking that we have had for a long time regarding some of the technical practices that we like to implement. The biggest issue is that the dataset and the questions used to create the dataset are not public, therefore, there is a lingering question about the results (as much as I think they are into the right thing).
-
Pragmatic Programmer
One of the books that opened my eyes about what the profession really entailed. The book is full of great recommendations and wisdom
-
The Toyota Way
The book talks about the lean methodology championed by Toyota, and is easy to find where the thinking is similar to agile.
-
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.
- Continuous Delivery Another eye opener book. A continuous delivery pipeline has been one of the great improvements on the code that I was doing when I read it. Full of really good knowledge and advise.
- Release It!
- Extreme Programming Explained
-
Refactoring
A myriad of useful techniques to improve your code. Really useful tool to have
-
Growing Object-Oriented Software Guided by Tests
This book was my introduction to the Outside-In technique of TDD. The focus on the exposed api as the driver of the work to be done was a mayor change over the classicist approach.
-
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.
- Peopleware
-
Reinventing Organizations
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)