A little coaching theory today, eh?
Coaches seek to change how things go. They see what is here and they think it could be better. In fact, they usually think it could be rather dramatically better — not worth the trouble of being a coach if not. And our clients want us to make things better, too. Tho it must be said, they usually don’t understand what that better is or how it will work or the rather kind of wild cuckoo egg they’re planting when they bring us in.
I am a relentless quester after small incremental improvements. My policy is expressly this: find the nearest easiest simplest team-felt owwie and fix it.
Lather, rinse, repeat, ad infinitum.
There’s a tension here. On the one hand, like most coaches, I want great big change. On the other hand, I insist on tiny stepwise changes to get there. This policy has brought me into conflict with a whole lot of people over the years. 🙂
Growing coaches want big change now. Marketeers promise big change now. Product sold big change now. Managers are desperate for big change now. Executives order big change now. How, then, do I rationalize this strange insistence that we don’t try big change now?
In one sentence: I use small changes because big changes don’t work or don’t work very well. I spoze I could stop there. But, you know. It’s me. I’m not gonna. 🙂 An always-small always-improvement (ASAI) approach has lots in favor of it, and a couple of things opposing it. Always-small-always-improvement (ASAI) has a lot to recommend it, vs one-big-change (OBC). Let’s chase it down.
When I make a small change, I don’t have to be right, just right-ish, just "not immediately wrong". Small changes are easy to do, and they’re easy to undo — pretty much by definition. So if we’re off-target, whether a little or a lot, we’re still okay. we invest a little, we lose a little or win, we still have lots of room.
With ASAI I can avoid or mitigate the need for two of the most pernicious forces for corruption of intent: marketing and forcing. Always-improvement means I just don’t have to go further. People like "better". They don’t need to be sold on it or ordered to do it, they just have to experience it.
ASAI sidesteps cargo cults. This is again a combination of perceived-size and perceived-improvement over perceived owwie. Cargo culting comes from received but not integrated knowledge. Because one doesn’t grasp how a thing works, one simply goes through the motion of how one was told to do it. The size of what is to be learned increases the risk of cargo culting, and the distance-to-gratification does to. ASAI seeks to minimize both of these.
Acclimation to change. This one is grossly undersung, but it’s actually critically important in building orgs that wrestle with complexity day in and day out. The more routinely we change and deal with change, the better we get at it. The less often we change our "org", the less skilled we are at handling the change in our "problem". (Conway’s law, or a loose corrolary to it, fits in here somewhere.)
Sticky results. Small changes are easier to get right, which means they pay back sooner. That payback is what makes the change stick.
So there are plenty of arguments favoring ASAI approaches. let’s turn our attention to the counter-arguments.
The commonplace case against ASAI is the efficiency argument. "making 97 small changes is less efficient than making 1 big one".
BOO! (made you jump, yeah?)
This is idols of the schema at work. By ignoring inconvenient realities, we can hold the "1 change is more efficient than 97" canard. 1 change is more efficient than 97, provided only that … it’s right, it’s sold, it’s trained, it sticks. And one or more of those conditions always fail. It’s hard to be right, to teach people. It’s hard to convince people to try something they don’t believe helps them. It’s hard to get people to do a thing when they’re only doing it because they were told to. Really really hard. Hard.
The second argument against is more subtle. it is a variation on what we call the hill-climbing problem.
Consider the landscape of possible orgs & processes. It’s got hills, some tall, some low, some middle. a change is a movement of some kind across this landscape. ASAI is a policy that says we always make small moves and we always go up. That means if I’m at the top of a low hill, and there’s no taller hill within my movement range, I’m stuck.
So laid out, this counter goes like this: "there is no way to get to our big change by insisting on small AND better, because we will have to either do big OR we have to accept not-better for a while." This is coherent, and it has a nice logical math-y feel to it, so your smarter than average bear is very likely to go here and settle with it.
But there are a couple of problems with it: First, it holds "small" as a fixed distance, a permanent range limit. Second, it implies that the landscape is both known to us and stable.
Second one first: our knowledge of and the stability of the org landscape. It would be nice to have a perfect topo map of possible organizations & processes. We could pick out the tallest height and head straight for it.
There’s an implicit idea embedded here: "there is a tallest height." That’s neo-platonic sleight of hand in action. If you truly believe that there is one best organization or process for all possible groups of people, then you are prolly already lost to me. 🙂 And if you don’t believe that — I hope you don’t — then it’s trivial to admit that no such map can exist. instead, there are only local viewings. "Where I’m at and what I can see".
Which moves us to stability. "Where I’m at and what I can see" is not a stable arrangement. It can change dramatically with only very slight steps. So this landscape argument is weak because: there’s no tallest mountain, there’s no map, and as our location changes so does what we can see.
And now on to the "fixed small" idea. I’ve been saying small small small. What’s small? What’s the range of a possible change? Here we come to one of my most treasured insights: The definition of "small" depends on us, on where we are, on what we can see, on how we feel. I learned this lesson from XP: from finally understanding why user stories aren’t just requirements written another way, and from seeing the kind of astonishing results I got from refactoring. I’ll use the latter for my analogy here.
I’m pretty expert at unraveling legacy code. Most of your hardcore geek coaches are, actually, and nearly all of us love to do it. When I first see a 2000 line method or a 20,000 line class, I quake just like everyone else on the planet: How can I ever untangle this unspeakable shite?!?
The answer is of course: find the cheapest safe change you can make. lather, rinse, repeat. Stupid shit: rename a variable. Extract that four-liner into a method. Don’t re-use that variable. Invert that if’s condition. I just keep focusing on the smallest step, over and over again. And an astonishing thing happens. Arrange all the problems in order of increasing "difficulty-of-fix". After the first thirty, there’s thirty more, and thirty more.
Let’s say the first thirty are at difficulty 1, the second tranche at difficulty 2, and so on. or at least, that’s my opinion when I start. And the astonishing thing: after the first thirty are done, the second thirty just don’t seem like 2’s anymore. they seem like 1’s, or nearly 1’s. and after the second thirty, the "third" thirty seems like 1’s, or nearly 1’s.
Before long I am making dramatic changes in the large-scale structure of the code, and they are creating huge improvements. Clearing the easy ones doesn’t just make the hard ones more visible, it makes them easier. So, too, with org & process change. when we fix the easy problems, the hard problems get markedly easier to fix. Markedly.
To sum up this incredibly long screed (even by my debased standards) :
Always-small-always-improve mitigates or elides entirely a host of difficulties that big-change invariably involves. It produces reliable results in equal or better inefficiency. The arguments against are flawed
Always-Small-Always-Improve is the mantra of my coaching practice just as it is the mantra of my coding practice.