I am in the process of revising one of the prior books (The Art of ‘Ware), greatly expanding and revising another one (Pitfalls of Object-Oriented Development, which is becoming Pitfalls of Modern Software Engineering), and finishing what I consider the 3rd volume in my ‘semi-planned’ trilogy on software engineering and IT project management (Surviving Complexity).
The Art of ‘Ware (version 2.0)
Back in the early 1990s, I wrote and published The Art of ‘Ware (M&T Books, 1995), a reinterpretation of Sun Tzu’s The Art of War, a 6th century BC treatise on conflict and warfare. My reinterpretation of Sun Tzu’s maxims applied to developing and marketing information technology products, most particularly software. Here’s an example:
- Sun Tzu (Chapter 2, ‘Doing Battle’, Sonshi.com translation): When weapons are blunted, and ardor dampened, strength exhausted, and resources depleted, the neighboring rulers will take advantage of these complications. Then even the wisest of counsels would not be able to avert the consequences that must ensue.
- The Art of ‘Ware (Chapter 2, ‘Supporting Development’, 1995 edition): When your developers are burned out, your technology aging, your resources diminished, and your advantages gone, then others will take advantage of your weaknesses and cut into your market. Even expensive consultants and new CEOs won’t be able to turn things around.
The Art of ‘Ware is long since out of print, but I have planned for some years to write an updated version. Since I wrote the original version, a number of new (and more complete) translations of The Art of War have come out; I am in the process of analyzing these and making appropriate changes to my reinterpretation, as well as update the real-world examples of the maxims. I made some posts on this web site sometime back and will likely make more in the future.
Pitfalls of Modern Software Engineering (PMSE)
Back in the mid-1990s, I wrote and published Pitfalls of Object-Oriented Development (M&T Books, 1995). The book captured lessons learned from five years of full-time commercial software development using object-oriented technology, as well as cautions and observations gleaned from books and articles on the subject. Shortly after the book went into publication, I started plans to do a second edition, but M&T Books lost interest in the book itself and let it go out of print, which (according to the publishing agreement) meant that the publication rights reverted back to me.
In the years since Pitfalls came out, most of my professional career has been focused on why information technology (IT) projects fail (and succeed). I have conducted reviews of major IT projects within corporations, some with budgets in the hundreds of millions of dollars. In some cases, after presenting my findings, I have then been asked to help get the project back on track. Also, since 1999, I served as a consulting/testifying expert in lawsuits involving disputed, troubled or failed IT projects, in some cases with budgets over $1 billion.
As a result, I decided a few years back that a second edition of Pitfalls focused solely on object-oriented development would be of less use than a more comprehensive work focused on all aspects of modern software engineering and IT project management. So this book project has now become Pitfalls of Modern Software Engineering (PMSE for short, pronounced “PimSee”). PMSE will follow the format of the original Pitfalls, but will cover a wider range of topics. Some of the revised entries can be found over at the BFWA.com website.
Surviving Complexity represents the third work in my “semi-planned” trilogy on software engineering and IT project management.
While PMSE is, in effect, a wide-ranging and detailed collection of specific anti-patterns that can occur in IT development, Surviving Complexity tackles a relatively small set of fundamental — and, to a certain extent, intractable — problems that face any organization seeking to develop, deploy and/or market information technology. There is inevitably some overlap between the two, but the approach and level of detail is quite different. PMSE can be thought of as a Merck Manual for IT projects — look up the symptoms, figure out the root causes, apply the recommended treatment.
Surviving Complexity, by contrast, deals with foundational issues surrounding IT — issues by and large ignored or glossed over, yet causing billions of dollars of losses each year in delayed and failed IT projects, as well as in market failures, litigation, and legal issues. I deal with such issues day in and day out, both as a consultant and as a consulting/expert witness, and it troubles me to see how utterly predictable most of the troubles and failures are.