The list below comprises the books that we found beneficial and now recommend to others.
Software Craftsmanship
Clean Code – A Handbook of Agile Software Craftsmanship
Another must read that explains your responsibilities as a professional software engineer
A really readable and thought provoking book, so many lessons that I wish I had been able to read about rather than learning the hard way. How to move from being an expert beginner to a craftsman. Should be compulsory reading for all software engineers
Clean Coder – A Code of Conduct for Professional Programmers
A focus on what your responsibilities as a software engineer are. Again should be read by all software engineers. It helps with such useful topics as how to behave as a professional, when and how to say no, how to avoid burnout and how to deal with conflict
Clean Architecture – A Craftsman’s Guide to Software Structure and Design
How to design and deliver robust flexible and reusable architectures
The Pragmatic Programmer, your journey to mastery (20th Anniversary Edition)
A recent update of the classic title, still full of great tips and advice
Working Effectively With Legacy Code
A practical guide on how to get a legacy codebase under control
“To me, legacy code is simply code without tests.”
- Michael C. Feathers, Working Effectively with Legacy Code
Refactoring – Improving the Design of Existing Code
A collection of different refactoring patterns to help improve existing code
Design Patterns
The seminal work from the gang of four. There are other newer books on design patterns, but this is still well worth reading. Watch out for the Singleton Pattern though – I would now consider this an antipattern, a global in disguise.
Test Driven Development for Embedded C
An excellent book that shows in detail how TDD can benefit embedded systems. I find the examples are just as relevant for those working in C++, a must read for those in the embedded industry.
Note: See our Test Driven Development training for more on this topic
Lean Agile
The Scrum Guide
Actually a PDF, rather than a book. Scrum is remarkably simple – read the guide! (free)
Lean from the Trenches – Managing Large Scale Projects with Kanban
My current favorite lean agile book. The book is structured in two parts, the first a real world example and the second part a closer look at the techniques used.
Scrum and XP from the Trenches – How We Do Scrum (2nd Edition)
Possibly the best introduction to how SCRUM practically works. Extremely readable and full of practical examples of practical application of SCRUM XP principles. (Free PDF available). The second edition is particularly good as it shows how ideas on the application of SCRUM have evolved over time.
Kanban and Scrum – Making the Most of Both
Very practical book showing real examples of both methods, really useful when moving beyond scrum (Free PDF available)
Lean Software Development – An agile toolkit
Lean thinking has been key in manufacturing organizations for decades now. This book explores how the same principles work for software development. The book shows principles for scaling agile beyond the development team. One of my favorites. Mary and Toms other books on lean are also well worth reading
Clean Agile – Back To Basics
Back to the original principles behind Agile. Agile, SCRUM as originally intended is a development practice for small software teams. This book reminds us what agile is and explains principles, tools and techniques.
Agile Estimating and Planning
Agile is not an excuse for not planning or estimating projects. This book provides lots of examples on how agile planning and estimating works both at the team level and scaling into large projects
Agile Retrospectives – Making Good Teams Great
Retrospectives are arguably the most important of the scum ceremonies. This book is full of ideas on how to ensure that your retrospectives are effective, fresh and generate ways of improving
Fun Retrospectives
Activities and ideas for making agile retrospectives more engaging https://www.funretrospectives.com/
DevOps
Docker Deep Dive – Zero to Docker in a Single Book
Docker is one of the key tools of software development. This book clearly covers everything you need to understand containerisation and docker in particular
Accelerate – Building and Scaling High Performance Technology Organisations
A rigorous look at what high performing organizations are doing technically and in their development processes. The book provides scientific, statistical analysis of what works, I have found this to be extremely useful when trying to justify changes in the development processes at organizations.