Reading List

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.

Other

Team Topologies

Really interesting read considering how the structure of an organization impacts the structure of software and the efficiency of development.