For Further Reading
The seminal paper that brought us the debt metaphor is the often-cited OOPSLA 1992 experience report, “The WyCash Portfolio Management System,” by Ward Cunningham.
Steve McConnell (2007) provided one of the simplest and most accessible definitions of technical debt: “a design or construction approach that is expedient in the short term but that creates a technical context in which the same work will cost more to do later than it would cost to do now.” Our current definition of technical debt was devised in a week-long workshop in Dagstuhl, Germany, in April 2016 (Avgeriou et al. 2016).
The software crisis was well described in 1994 by Wayt Gibbs, who interviewed many software pioneers and practitioners in industrial organizations, including Larry Druffel, Vic Basili, Brad Cox, and Bill Curtis.
A must-read is Fred Brooks’ “No Silver Bullet” paper (Brooks 1986), which is also a chapter in the 10th anniversary edition of his famous book The Mythical Man-Month (Brooks 1995). Brooks reminds us that “There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity.”
A durable software engineering principle should be a simple statement that expresses some universal truth; is “actionable” (that is, worded in a prescriptive manner); is independent of specific tools or tool vendors, techniques, or practices; can be tested in practice, where we can observe its consequences; and does not merely express a compromise between two alternatives. There are two classic books on software engineering principles: 201 Principles of Software Development by Alan M. Davis (1995) and Facts and Fallacies of Software Engineering by Robert L. Glass (2003). In “Agile Principles as Software Engineering Principles,” Norman Séguin (2012) did a thorough analysis of what constitutes a good software engineering principle—as opposed to a mere aphorism, wish, or platitude—and he debunked a few myths about principles.