In software development, technical debt is understood as something in software design that slowly reduces the speed of development. To mix metaphors, technical debt causes friction in the development process. Over time, work arounds cause “interest” to accrue on the principal of bad design. The business and software development are negatively impacted, and eventually a “tipping point” is reached. Then a plan is made to pay down some (but usually not all) of the technical debt, and much like a mortgage, the code and the business around it become more manageable.
These three authors explore these themes in depth in this work in the field of software engineering. It’s not necessarily a fun topic, but it’s one that any experienced software developer can relate to. The central metaphor of debt repayment also provides a concept that is relatable to the business-people around software. Jumping from new feature to new feature without addressing issues of architecture has a cost, and this book explicates a language and a framework to deal with it more effectively.
The book explores nine principles about technical debt. Each one of these seems basic, yet they explain a more profound point.
- Technical debt reifies an abstract concept.
- If you do not incur any form of interest, then you probably do not have actual technical debt.
- All systems have technical debt.
- Technical debt must trace to the system.
- Technical debt is not synonymous with bad quality.
- Architecture technical debt has the highest cost of ownership.
- All code matters!
- Technical debt has no absolute measure—neither for principal nor interest.
- Technical debt depends on the future evolution of the system.
This topic is not sexy (and I don’t know of any topic termed “debt” that would be considered “sexy”). Nonetheless, this book provides specific ways to tackle the debt and to raise awareness of these concepts in software teams. Reading an in-depth analysis on this topic is necessary for all software developers who aim to achieve mastery of their craft. This book will certainly help them take such a step.
Managing Technical Debt: Reducing Friction in Software Development
by Philippe Kruchten, Robert Nord, and Ipek Ozkaya
Copyright (c) 2019
Addison-Wesley Professional
ISBN13 9780135645932
Page Count: 272
Genre: Computer Science, Software Engineering
www.amazon.com