Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Managing technical debt : reducing friction in software development
Kruchten P., Nord R., Ozkaya I., Addison-Wesley Professional, Boston, MA, 2019. 272 pp. Type: Book (978-0-135645-93-2)
Date Reviewed: Nov 13 2019

Although technical debt has existed in software systems ever since there was software, the term “technical debt” and the metaphor comparing it to financial debt are more recent. This book is intended for practitioners. Its purpose is to provide them with practical advice on recognizing, analyzing, and actively managing technical debt in real-world development projects.

The book consists of 13 chapters divided into four parts. The first chapter of Part 1’s three chapters introduces the technical debt metaphor and situations where technical debt exists, and gives the authors’ definition:

[T]echnical debt consists of design or implementation constructs that are expedient in the short term but set up a technical context that can make a future change more costly or impossible.

The first chapter also lists nine software engineering principles for technical debt management, which are expanded on and referenced throughout the rest of the book. These are things like, “all systems have technical debt,” “all code matters,” and “technical debt has no absolute measure.”

Chapter 2 expands on the forms of technical debt in code, architecture, and infrastructure. The third chapter introduces three fictional case studies, which are used as examples throughout the book. Three mythical companies are used: a small startup with a single e-commerce product; a medium-sized agile company in health information with an established product; and a large, global multi-business corporation supporting a 15-year-old safety-critical embedded avionics product line. It uses the differences in the cases to highlight the importance of context in discussing technical debt.

The second part contains four chapters focusing on technical debt itself. A chapter on recognizing technical debt describes the symptoms and consequences of technical debt and introduces the notions of a technical debt item and the technical debt description for recording technical debt items. The following three chapters discuss, in turn, each of the three sources of technical debt: source code, architecture (one of the nine technical debt principles is “architectural technical debt has the highest cost of ownership”), and the environment (or production).

Part 3 emphasizes how to decide which technical debt to fix. One chapter describes how to figure the cost of technical debt items so the most critical items can be addressed first. The second chapter discusses how to service technical debt so the cost does not become too high.

The fourth and final part is devoted to managing technical debt, both strategically and tactically. The first of its four chapters discusses causes of technical debt. The second gives a quick method of running a credit check to determine any existing levels of technical debt. The third chapter describes ways of avoiding unintentional technical debt. The final chapter is on living with technical debt.

Each chapter ends with a further reading section that provides annotated recommendations pertinent to the chapter. These roughly 100 items are collected in a bibliography at the end of the book. A short 26-entry glossary and a 21-page index are also included.

This book is well written and organized, and does what it sets out to do. I can recommend it to anyone looking for practical advice on technical debt.

More reviews about this item: Amazon

Reviewer:  Andrew R. Huber Review #: CR146772 (2003-0043)
Bookmark and Share
  Featured Reviewer  
 
General (D.2.0 )
 
 
Distribution, Maintenance, and Enhancement (D.2.7 )
 
 
Management (D.2.9 )
 
 
Software Management (K.6.3 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Development of distributed software
Shatz S. (ed), Macmillan Publishing Co., Inc., Indianapolis, IN, 1993. Type: Book (9780024096111)
Aug 1 1994
Fundamentals of software engineering
Ghezzi C., Jazayeri M., Mandrioli D., Prentice-Hall, Inc., Upper Saddle River, NJ, 1991. Type: Book (013820432)
Jul 1 1992
Software engineering
Sodhi J., TAB Books, Blue Ridge Summit, PA, 1991. Type: Book (9780830633425)
Feb 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy