Kill It With Fire

Author: Marianne Bellotti
Publisher: No Starch Press
Pages: 248
ISBN: 978-1718501188
Print: 1718501188
Kindle: B08CTFY4JP
Audience: Developers renovating aging systems
Rating: 4.5
Reviewer: Kay Ewbank

The subtitle of this book is "Manage aging computer systems and future proof modern ones". This sounds a tall order - can the author go beyond amusing anecdotes to provide useful advice?

The book title comes from the initial kneejerk reaction many of us have felt when faced with an old system that we've been asked to modernize. In the introduction, Bellotti admits many software engineers regard legacy modernization as slow-moving career suicide, but is clear that in her opinion there are better ways.

 

Banner

The initial chapters of the book look at modern computing trends and best practices, and considers how we decided to develop the legacy systems that the reader is being asked to modernize.

Chapter three uses the example of real (anonymous) computer systems to illustrate three kinds of common problems - technical debt, performance issues and system stability. By technical debt, Berllotti means existing problems such as earlier partial migrations, 'quick patches' that fixed a specific problem in the past, and out-of-date or unnecessary dependencies.
 

The next chapter discusses why it's hard to modernize legacy systems, and why the process fails so often. Bellotti then moves on to look at how to gain momentum for the modernization task, and how to keep things going. A useful part of this chapter is various conditions that can either bring a project to a halt or speed things up. 

In a tacit acknowledgement of how things go wrong, Bellotti next considers what to do if you have to come into a modernization project that is under way and stalled. This is followed by a chapter on design, and how to incorporate it into a modernization project.

Chapter 8 discusses the benefits of breaking systems, and not being afraid of failure, with a look at chaos testing and how to make these ideas palatable to reluctant managers.

A chapter on how to recognize success and how to define the criteria for when a project is 'finished' is followed by a final chapter on strategies to make the software you design more maintainable and hopefully future proof.

I enjoyed reading this book. The author makes the subject accessible and at times amusing, though some descriptions made me feel very glad I'm not responsible for the work of getting that system modernized. There are some good ideas that a reader could implement when working on modernizing legacy systems, but the reality remains that this is a tough task. Perhaps the best use of this book would be to make sure your managers read it so they don't think they can just say 'modernize it' and you'll be able to wave a magic wand.

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


The AWK Programming Language, 2nd Ed

Author: Alfred V. Aho, Brian W. Kernighan and Peter J. Weinberger
Publisher: Addison-Wesley
Pages: 240
ISBN: 978-0138269722
Print: 0138269726
Kindle: B0CCJ1N4X3
Audience: Developers interested in Awk
Rating: 5
Reviewer: Kay Ewbank

The name Brian Kernighan among the authors of this updated classic raises  [ ... ]



Beginning Rust Programming

Author: Ric Messier
Publisher: Wiley
Date: March 2021
Pages: 416
ISBN: 978-1119712978
Print: 1119712971
Kindle: B08WZ2D7WC
Audience: Developers wanting to learn Rust
Rating: 3
Reviewer: Mike James
Everyone seems to want to know what makes Rust special. Does this book give the answers?


More Reviews