In the past year or so, I’ve come across three books that I think complement each other nicely, and taken together outline a program for improving IT management. The books are:
The Principles of Product Development Flow: Second Generation Lean Product Development by Don Reinertsen
Analytical Network and Systems Administration: Managing Human-Computer Systems by Mark Burgess
With How to Measure Anything, Doug Hubbard challenged my acceptance of “intangibles” and “qualitative” benefits. Too often in IT we think that unless we can precisely quantify something to several decimal points, it’s “qualitative” or an “intangible.” Hubbard points out that by definition, a measurement is any reduction in uncertainty, and that we: 1) need less data than we think, and 2) have more available than we realize to reduce our uncertainty. He covers a practical approach to estimation and leveraging your subject-matter experts, covers the research on human limitations and tendencies in estimation, and gives an accessible intro to Monte Carlo analysis among other benefits. I really appreciated his presentation of the “Expected Value of Perfect Information” – worth the read just for that.
The book is readable and highly applicable; it is not an exercise in dry theory. You can go to Amazon and see all the great reviews and summaries, so I won’t say more other than this book fundamentally changed my thinking. How is it relevant to the IT practitioner? It takes some work on your part, but if you apply his thinking you’ll find you have powerful tools for understanding IT value.
Don Reinertsen’s The Principles of Product Development Flow is completely different, and yet similar. First, his work is relevant to IT, especially on the development side. It is a deep exploration of “Lean,” which is a word that can easily be misconstrued. In its origins, Lean represents a set of specific and important concerns around value, flow, waste, and human motivation. Reinertsen gets beyond vague imagery and explores the quantifiable issues surrounding Lean philosophy. In particular, he examines how Lean, which is often incorrectly seen as applying merely to manufacturing production, also applies to the problem of developing any product, including software.
In software and product development broadly, work is more variable and uncertain, and cannot be managed via naive “assembly line” metaphors; yet this does not mean that product development need be considered a mysterious craft. Like Hubbard, Reinertsen is deeply knowledgeable regarding quantitative methods and research, and uniquely able to summarize and translate this depth into practical guidance. His book presents an accessible application of economics, queuing theory, batch sizes, work in progress, flow, feedback, and even military doctrine on the question of decentralized control.
You’ll come away realizing that you’re not alone in the challenges you face and that there are sophisticated tools available to you in your search for development excellence. Hopefully you’ll also start thinking about the problems of unmanaged queues in your organization and the promise of Lean IT more generally.
While both Hubbard and Reinertsen have deep familiarity with IT (judging by their references and backgrounds), neither has written a book specifically for IT management per se. Mark Burgess, on the other hand, in Analytical Network and Systems Administration presents a tour de force examination of systems management through the eyes of a scientist.
Science is, of course, a dreadfully misused term, and I seek to use it here correctly. Burgess (who wrote cfengine) got his Ph.D. in theoretical physics and developed a keen interest in applying deep and rigorous analytical methods to the problems of the IT systems he was tasked with administering. His landmark work can be summarized in this provocative quote: “The field of system administration meets an unusual challenge in computer science: that of approximation. Modern computing systems are too complicated to be understood in exact terms.”
This, of course, runs counter to the deeply held worldviews of many IT professionals, who are steeped in the deterministic, axiomatic aspects of computing. But just as cellular automata generate complex behavior from simple rule sets, so must IT systems be understood as complex entities. Burgess weaves a masterful narrative starting with fundamentals of the scientific method (just enough for his purposes) and takes the reader through a variety of interesting dimensions: systems, sets, graphical models, fundamental examinations of concepts such as change, information, and stability, and much more.
Of the three books, there’s no doubt Burgess is the most difficult intellectually – the book is characterized as based on “undergraduate math” but we’re talking at least the first three years of an engineering curriculum, and I have to admit I found some of the material required more effort than I was willing or able to devote. But whenever I found myself starting to wonder if Burgess’ coverage was too “theoretical,” I was able to think of practical applications based on my own experience. Burgess liberally sprinkles the abstract discussions with such real world examples. Even just scanning the more challenging chapters should present new avenues for the imaginative IT manager. (Assign it to that person on your team with the math degree.)
Again, these are books for the next ten years, not for this year’s fads. All are rich and challenging and merit deep, repeated reading. Applying them to your particular problems will take work on your part. While so much one reads is the intellectual equivalent of junk food, these volumes provide true sustenance for the long journey of improving the human race’s management of its increasingly powerful and critical infrastructures of information technology.
Postscript: One notable coincidence across the three books — all cite Claude Shannon, the originator of information theory.