I have this concept that no one seems to like. Whenever I start to describe the concept, people interrupt me before I’ve finished in order to tell me how stupid I sound. I usually begin with a non-controversial opening statement like, “Funny that people insist on choosing pain (or failure, or high costs, or long lead times, etc.).” That’s when the interruptions begin.
Now I’m typing, not talking, so friends can’t protect me from my own words before it’s too late. Nevertheless, I choose to proceed.
The concept is this: We make choices because we think the choices will fulfill our intentions. In one of those cruel twists that the Universe seems to enjoy so much, it turns out that choices and intentions are not connected with one another. Instead, choices are connected with consequences. Each choice has its own natural consequences. The consequences apply regardless of our intentions and regardless of whether we properly understood the consequences of our choices at the moment we made them.
I see it as consistent with daoist thinking. Dao translates into English as way. The word way can be understood in a couple of different senses. It can denote the nature of something, as in: “What’s up with John?” “Don’t worry, it’s just his way;” or it can denote a path or road, like a highway or a railway line.
Thinking of the notion of choices and natural consequences in the sense of “the nature of things,” the association of consequences with choices is part of the way the Universe works. It isn’t something we can change just because we wish it were otherwise.
Thinking of choices and consequences in the sense of a “path,” we can consider the act of making a choice as analogous to starting to walk along a path. Our intention is to reach some destination that we have in mind. We think the path we have chosen will lead us there, based on the information we have at the moment, interpreted according to our experience and knowledge to date. However, the path itself doesn’t know anything about our intentions, and doesn’t care. Like a physical roadway, each path leads to its own destination regardless of our intentions and regardless of whether we properly understood the path’s destination beforehand.
It is pointless to deny this reality and insist that the path ought to lead to our intended destination instead of to its own destination, just because we wish it did. We can’t change the destination to which any given path leads. But there is something practical we can do. As we progress along any given path, we are able to perceive more and more about what its destination looks like. If we begin to realize that the destination isn’t what we thought it would be, we can choose a different path. We can choose different paths as frequently as we please. What doesn’t make sense is to remain doggedly on the same path and believe we can arrive at a destination other than the one at the end of the path.
Angler Fish. Photo from http://tech4educ.blogspot.com/, not attributed.
Here’s an example of what I mean: Consider the angler fish, a deep-sea predator that lures its prey by dangling a bioluminescent lure above its mouth. When a fish takes the bait, the angler opens its mouth forcefully, drawing the fish in. One could say that the fish chooses to take the bait. Its intention is to eat what appears to be a morsel of food. The consequence of its choice, however, is to be eaten by the angler. In a sense, the fish chooses to be eaten.
This is the aspect of the concept that people reject. They seem to want to insist that they can connect their choices with their intentions instead of with the natural consequences of their choices. They can’t. The Universe just doesn’t work that way.
Ah, but maybe a human can consider the implications of his choices more effectively than a fish can do. Consider the poorly-educated man who needs money. He sees a bank. He knows banks contain money. He chooses to rob the bank. His intention is to acquire money. But the natural consequence of robbing a bank is to be sent to prison. When the door of his cell snaps shut, he is just as surprised as the fish caught in the jaws of the angler. In a sense, the man chooses to go to prison.
But this blog isn’t about aquatic life forms or bank robbers. It’s about effective development and delivery of software. What does all this have to do with the subject of the blog?
That brings us back around to the part where I sound stupid. In the same sense as the fish and the bank robber, many people who work in software development choose failure when they choose their software development and delivery methods. They don’t intend to choose failure; they just mis-read the road signs on the path they have taken. They believe they are on a path to success. That’s okay as long as they are able to learn from their experiences and choose a different path. It’s not okay when they remain doggedly on the same path and believe they can arrive at a destination other than the one at the end of the path.
Intention: Deliver more product in less time. Choice: Start many projects (or tasks) and multi-task across all of them (that is, high work-in-process). Consequence: Deliver less product in more time.
Intention: Deliver more product in less time. Choice: Maximize batch sizes (for traditional projects, include too much scope under the same initiative; for adaptive projects, accept too much work per development cadence or iteration). Consequence: Deliver less product in more time.
Intention: Deliver more product in less time. Choice: Don’t bother with much software testing, as it takes up a lot of time. Consequence: Deliver less product in more time.
Intention: Cope with many unexpected problems effectively. Choice: Yank people off their primary assignments helter skelter whenever a problem comes up. Consequence: Deliver less product in more time while simultaneously failing to cope with many unexpected problems.
Intention: Ensure a software product aligns well with the needs of its users. Choice: Identify every requirement and every risk in advance, and work from a highly detailed plan. Consequence: Ensure the software product will not align well with the needs of its users.
My friends may be right: I may be stupid. After all, if that were true I would be the last one to know. But I’m not stupid enough to remain on a path that isn’t taking me to my intended destination, once I realize where I’m headed.