You hear it everywhere in the Agile and Lean Software Development Community: Embrace Change. Change is not the Enemy. Change is inevitable, what matters is how you deal with it.
So how well or poorly do we deal with it?
I recently had the opportunity to play the Product Owner role in an XP/Scrum team. The product we were making was a consumer-facing mobile information service aimed at commuters in the UK. There was a big fuzzball of uncertainty around the billing system that we would use. The UK mobile industry was in the process of introducing a new standard, but vendors weren’t quite there yet with solutions, and the mobile industry was also doing other things that seemed to be contrary to their new standard. In other words, business as usual.
All of this plus some other business factors led to me making a decision that we were heading down the wrong path, and directing the team to do what could only be described as an about face in what they were building for billing. They had already spent a fair amount of time going in a direction that, through no fault of theirs, turned out to be the wrong one.
On Planet Perfect, they would have responded to this with: “Oh good! Now we have a chance to build something closer to what the business actually needs!” This is what all the Agile gurus say that we should be doing.
Down here on Earth, where I live, that’s not exactly what happened.
What happened was more akin to what I’ve done when in their shoes many times. And this is despite walking around intoning “Embrace Change” with the best of them.
I mean no disrespect to the development team- they were (and are) a fantastic team of people who generally can find a solution to anything.
But they reacted with something like: “How dare you mess up our lives? We’ve spent our valuable time working on doing billing the way you said you wanted it. Now you want something else. Why can’t you make up your stupid mind?”
My reaction to this situation was “Oh good! Now I have a chance to understand the customer’s point of view more closely when this sort of thing happens.”
Or more precisely, “Hell’s bells, is this how I’ve made my customers feel when they have to change something for the sake of the business?!!! Small wonder that they don’t trust IT!”
This led to some reflection on the problem of change in software development. It is, I believe, a fundamental problem in the IT industry. I distinguish the IT industry from Computer Science. Computer Science deals with problems such as “is P=NP?”, the Halting Problem, and how to make more efficient compilers. The IT industry deals with how to use computing technology to solve problems of business, government and other human activities.
In short, the IT industry has to deal with Hundred-Million-Year-Old Legacy Liveware, otherwise known as “Humans.” Hence we are told by our thought leaders to Embrace Change.
I’m reminded of Russell’s Paradox – a problem in set theory that came up at the end of the 19th century that in a nutshell goes like this: Consider the set S that consists of all sets that are not members of themselves. Is S itself a member of S?
A minute or two of thought will reveal the paradox. If S is a member of itself, then it isn’t a member of itself. If S isn’t a member of itself, then it is. Contradiction.
What’s really interesting about Russell’s Paradox is not the thing itself, but the reaction of the mathematical world to it. It was almost a classic grieving pattern… Denial, Anger, Guilt, Acceptance, etc.
(You can study formal logic as much as you want, but you can’t get away from the vagaries of Hundred-Million-Year-Old Legacy Liveware.)
One immediate reaction was to re-write the rules of set theory so that this couldn’t happen – in essence to forbid a set being a member of itself. Problem solved. You just can’t do that. Now go away, and behave yourself for a change.
In old-school IT, we have a similar thing. It’s called Waterfall. You deal with change by forbidding it. Requirements freezes, code freezes, formal sign-offs of horrendously unreadable documents and “you stupid customer, why didn’t you have the sense to tell me what you wanted in the first place?”
In set theory and formal logic, once people stopped denying the problems that were exposed by Russell’s Paradox, it eventually led to the beautifully mind-blowing Incompleteness Theorems of Kurt Godel.
This is the equivalent in IT of “Embrace Change.” Change, or Russell’s Paradox, is inevitable. What matters is how we deal with it. Accept it, and see what wonderful things result.