Kill it with fire (review)
Bibliographic information
Bellotti Marianne (2021) Kill it with fire - Managing aging computer systems (and future proof modern ones), No Startch press, San Fransisco, ISBN 13: 978-1-7185-0118-8
Introduction
Written in 2021 by Marianne Belotti a software developer with several years of experience. Most of these as she says herself within the field of software modernization. This book as she describes it is her attempt at bringing together her experience and making it available for other software developers and technology leaders so as to help avoid the most common mistakes.
Readers Intent
I started this book with very little preconceived notions of what it was about. It was recommended to me by a friend with a track record of good recommendations. As such my intent was one of open curiosity. Without spoiling too much I soon found that my intent changed. As a Data Engineer/scientist who has spent the majority of his career within modernization projects myself, I started to read it in order to compare notes with Marianne and to learn from her wisdom.
Discussion
The initial parts of the book take up the discussion on what legacy code actually means, and how this term is used within the tech world. This was an enjoyable and humorous jaunt through the history of software development, highlighting both how we got here, and challenging some of our most cherished preconceptions for why the world is as it is. I especially enjoyed the way Marianne explains how legacy code became a thing.
She then carries on a diagnostic discussion on how to diagnose the state of your ongoing modernization project. She provides both entertaining and enlightening examples, that anyone involved in modernization will recognize themselves and, either sigh in sympathy, nod knowingly, or feel their heckles rise as old memories are triggered. I found this and the following sections especially useful for technology leaders stuck in modernization projects that go nowhere or are at risk of failure.
If I were to lever a small criticism at this point it would be a slight over-emphasis on the software development side. The author is a software developer, but there is in my experience a subgroup of legacy modernization that deals with legacy data, and data systems that have a habit of spilling into software modernization that I feel would deserve more attention. But that is an understandable omission.
Following on the diagnostic section she sets off on an attempt to explain why modernization is hard stuff. Again I find myself nodding in understanding and sympathy as I read. While I feel this is the best-published description of why modernization is hard, I find myself also feeling that there is an undercurrent that I have been unable to articulate. I can see it from within the text but find it hard to explain to anyone not involved in modernization. As such chapter 4 I feel is a must for any tech manager contemplating a modernization project, in my opinion, might not have reached it's fullest potential impact, unless you have prior experience.
The next couple of chapters address those in the trenches, and provide tools and techniques for managing a modernization project both when start out, or when you are airdropped in the middle of the campaign. As a whole, there were some that I already knew and have employed, others were wholly new, and I feel my toolbox has grown a comfortable amount. While the book assumes you to be in a position of authority in its recommendation, I would advise trench workers to not be dissuaded. You never know when it is your turn to be in charge. And understanding these techniques will make you better at your job regardless.
The final section of the book consisting of the final two chapter address when to call a halt, and how to avoid having to do the modernization dance again. These are probably some of the most impactful chapters in the book. Simply by telling how to avoid going on forever, but also how not to need any of the previous chapters. The chapters on future-proofing are deceptively short for the amount of business value it presents. Again manager takes note. And ground people, here is wisdom to be taken to your leaders.
Final comments
Kill It with Fire recounts and synthesizes Marianne’s experience working on "Legacy" Modernization. She claims that she now has made a career out of this. This statement created an initial bond between the author and myself. I think however even if you have been so "lucky" and not worked within a modernization setting, after reading this book I think you would agree that that is both unlikely and not necessarily positive, that this book brings to bear valuable insight.
It is simultaneously an entertaining and deep reading. As someone who sees his career dominated by modernization and legacy work, it was a signal in the fog of a kindred soul. It was an opportunity to learn from another's experience and has made me better at my job for it.
This book has made it into my must-read list for anyone working in the tech industry in this age of modernization.