I admit I rarely read professional literature, but I found this one after watching Greg Wilson’s recent YouTube lecture Cocaine and Conway’s Law. Conway’s Law states that the structure of software reflects the organizational structure of the company developing it. If there’s one big team working on it, the result is a monolithic software, but if multiple teams are involved, the software is likely composed of interconnected services.

Marianne Bellotti’s book Kill It with Fire – Manage Aging Computer Systems (and Future Proof Modern Ones) deals with a topic that, in my experience, is very common but hasn’t been written about much: the modernization of old systems. The topic is usually only touched on at conferences, where someone might give a presentation on how old technology X was heroically replaced with new technology Y, and now service response times and costs have decreased. However, this approach overlooks all the pain the organization experiences in terms of definitions, requirements, assembling teams, etc.

One of Bellotti’s messages is that an old system cannot be used as a specification for a new one. Its design documents, if they ever existed, are likely lost, and the modernizers cannot, for example, know whether something was implemented a certain way due to the technical constraints of its time or if there was another good reason for it. Nor does it make sense to carry out the modernization all at once; it should be done in small pieces, as in agile development in general.

Ultimately, the focus is on people: what motivates them, for example. Managers and subordinates often have conflicting incentives for their actions, and Bellotti offers advice on how to identify and align them.

All in all, a good book for anyone who has been in the software business long enough to have experienced at least one legacy system. 📚