It’s been four years since – sadly – Gerald M. “Jerry” Weinberg passed away. Ever since then, I struggled with some public mourning about him, until recently I had just the right idea. On a weekly basis, I will publish a review of a book I read that Jerry either wrote himself or is about some of his work. Today, we are going to take a look at what I consider the first book in Jerry’s seminal series on managing quality software: Quality Software Management Volume 2 – First-order Measurement published by Dorset House Publishing in 1993.
Review on Amazon
A while back, I reviewed this book on Amazon:
Introduction to measurement systems in Software Development
In the second volume of the series, Jerry continues to dig deeper into the cultural model of software development organizations. Jerry presents a thorough discussion of the Satir Interaction Model. The Satir Interaction Model splits up communication into four major steps: intake, which is how I take in information; meaning, which is derived by making interpretations from the received message; significance, which is whether I start to bother or not; and finally the response on the initial message. All these steps happen in a fraction of a second in human communication.
The Satir Interaction Model is useful in situations where you start to make meaning too soon based on fractions of the data that you got. Often, this leads to misinterpretations about the intentions of your communication counterpart and therefore not only to poor dialogue but also to a big misunderstanding. That’s why Jerry raises the Rule of Three:
“If I can’t think of at least three different interpretations of what I received, I haven’t thought enough about what it might mean.”
In parallel to the discussion of the Satir Interaction Model, Weinberg continues to show the relevance of first-order measurements in management. Using systems thinking as introduced in the first volume of this series, he explains management actions and their results. He continues to dig into metrics that are useful for managing. Finally, he discusses zeroth-order measurements, that each management should be aware of. These measurements tell you which things to keep an eye on in order to manage your software project.
A blast from the past
Let’s see what changed in the 10+ years since then. Jerry structures the whole book around the Satir communication model. So, it basically separates into four main parts: Intake, Meaning, Significance, and Response. In the fifth and final part, he goes deeper into what he calls zeroth-order measurements and what kind of zeroth-order measurements he deducts from software teams and companies.
As the title suggests, Jerry distinguishes between different orders of measurement. Third-order measurements are “the kind of measurement that supports the physicist’s search for universal laws.” Second-order measurements “are used to optimize systems to make them faster or cheaper, to tune a machine to its most efficient performance.” First-order measurements “are just adequate to the task of getting something built.” They are “the measurements that allow us to build a machine in the first place.” Zeroth-order measurements are “a set of activities needed to start on a sure path to quality management of quality software.”
For the zeroth-order measurements, Jerry offers the following four steps:
- Knowledge of how to compose a project of well-defined and measurable tasks to produce a quality product.
- a system of creating and maintaining a public view of progress on the project toward the quality desired
- a system of requirements that document what is meant by quality
- a consistent system of reviews to measure every result of the progress toward quality.
He also adds the Zeroth Law of Software Engineering:
If you don’t care about quality, you can achieve any other objective.
Quality Software Management – Volume 2: First-order Measurement, Gerald M. Weinberg, Dorset House, 1993, page 255
From this viewpoint, it makes sense for Jerry to mention so many things around the observation of people and helping organizations to look for the right things in their processes.
Just skimming through the mere three pages of laws and principles in the back, gives me chills. Almost every one of them is a gem on its own. Jerry managed to put together a deep resource here that is close to impossible to represent well enough. I sense, there are so many laws and principles I have come to value on their own and know by heart, that I oftentimes don’t even put the name to it or recalled I learned these lessons from him.
Quality Software Management Volume 2 is not only my most often-cited source of The Rule of Three Interpretations:
If I can’t think of at least three different interpretations of what I received, I haven’t thought enough about what it might mean.
Quality Software Management – Volume 2: First-order Measurement, Gerald M. Weinberg, Dorset House, 1993, page 90
but a whole bunch of others.
The Rationalization Principle
Quality Software Management – Volume 2: First-order Measurement, Gerald M. Weinberg, Dorset House, 1993
You can design a measurement system for any conclusion you wish to draw. (page 35)
The Information Rule
No matter what else it is, everything is information. (page 58)
The Physician Principle
Every process is created by people, and thus can be changed by people. (page 59)
The Quality Problem
Every software problem is a quality problem. (page 111)
Chinese Saying
When you point a finger at somebosy, notice where the other three fingers are pointing. (page 161)
Satir’s Dictum
The problem is nothing. The coping with the problem is everything. (page 211)
The Acting Crazy Principle
When somebody is acting crazy, go to the empathic position and find a logical reason for the craziness. (page 230)
Some personal gem
I’ll conclude this review with a personal gem that I posted as well on my Quality Software Management Volume 1 review.
After finishing the first or maybe second Quality Software Management Volume, I figured that Jerry kept a list of all the reminders for the readers in the book of the books. At some point, I decided to write them up and keep them for my personal reference. In case you wondering, this is how I can relate to particular pages whenever I cite something from Jerry. I thought it would be neat to share this collection. I did not separate the different volumes into different files. So, here is the full list of laws, rules, and principles from the four Quality Software Management volumes. (And in case you are wondering, yes, I noted these down in LaTeX and compiled them into a pdf.)
These lists will probably only make sense to you if you read the books. Also note, that Jerry, later on, published an updated version of Quality Software Management, and I think he basically split each of the books into two or three smaller ones at the time. If you read those, the page numbers will not fit, and I don’t know how much he changed between the Dorset House and the later published ones.
Surely, shouldn’t the Zeroth Law read “If you don’t care about quality, you can’t achieve any other objective”?
Well, if you don’t care about quality, you can achieve any other objective, just in poor or absent quality, or as Jerry put it in the Zeroth Law of Softwre on page 111:
If the software doesn’t have to work, you can always meet any other requirement.