Newton said we stand on the shoulders of giants and that’s certainly true for me. Many of the ideas that I have drawn on for Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software came from a range of other sources both within the software industry and outside of it.
I’ve developed and tested these ideas over the last thirty years teaching classes in Agile software development. I have no shortage of material or ideas, but organizing them was the main challenge. I asked myself: “What if I only had a few hours to explain to the top executives of the world why these technical practices are valuable, and how to support their teams in doing work for them?” From that I came up with a set of seven and then nine practices I most wanted to share. I encourage readers to skip around and focus on what’s most important to them, but there is also a through line that makes reading the book from start to finish a satisfying experience.
I felt the practices offered great solutions, but I wanted to clearly state the problem first, which I have rarely seen done. So I wrote part one, which first covers my own personal experience of failures in the industry and then looks at how the industry as a whole is doing. I found that my experiences were pretty typical. I also introduce many of the concepts of Agile software development and talk about how it has been incorrectly or incompletely implemented in many organizations so they aren’t getting the results they hoped for.
It’s not enough to just do the practices, we also have to understand the principles that underlie them so we can use them effectively and get the most out of them. This is what I wanted to focus on in the book because I felt like other books don’t deal with these ideas in the depth that help people connect with why these practices are important. And without knowing the why, we can’t use them effectively.
I wrote the book in the first person, as narrative non-fiction, so that I could convey some of the stories and experiences that I’ve had in my career as well as offer some advice and analogies.
Basically, I wanted to convey the same energy and enthusiasm and information-rich conversations I have when I teach classes. We’re doing it in a different medium. It’s a very different experience and requires different considerations, but the goal is the same: Don’t just “do this,” “do this because.”