(2021-12-21) GeePawHill MMMSS - The Shortest-distance Floptimization
GeePawHill: MMMSS - The Shortest-Distance Floptimization. The counter-case to MMMSS is supposed to be a set of optimizations — ways around the odd disorderly-seeming path forced on us by stride-limits. They are compelling, these optimizations. But false. I call them "floptimizations".
The common variation of this is to break that very long step into a sequence of actions, each of which is a different activity, but none of which is a step, because it doesn’t start ready and end ready. This is sleight-of-hand, it’s still one gigantic step.
Why, then, does it flop so often? For these reasons: 1) Perfect aiming is expensive and risky. 2) Big steps lack intrinsic step-benefit. 3) Business doesn’t take place on a two-dimensional plane.
Start by considering the cost of better aim: It costs effort to improve one’s aim, real time and real energy and real money.
Modern applications are built from many parts, some of which we control perfectly, others of which we bought and installed.
When we put them all together, though, we’re talking about dozens and dozens of them, arranged rather just so, quite delicately. The level of intricacy and complexity is staggering.
Two proposed changes, side by side, may seem to an outsider to be almost identical in scope. But one of these could take 15 minutes to implement, and the other could take 15 weeks. It’s because one of them fits the pre-made assumptions, and the other one doesn’t.
We make hundreds, even thousands, of these decisions. One thousand decisions, each with 99% accuracy, virtually guarantee an error. And at this level of avoiding change-blockers, a miss is as good as a mile.
That is, a 95% aiming accuracy is only slightly better than an 80% accuracy at avoiding these situations
Furthermore, because the steps are so large, the cost of each step is large, which means the cost of making a mistake in one of those decisions is far higher than with small steps, even as the cost of perfecting our aim also grows wildly.
Next, we have the loss of step benefit
The eight benefits we listed
Finally, we have non-planar business reality
The metaphor simplifies the reality so much it becomes useless to us.
Far from being a plane, professional software development takes place on an incredibly twisty, complicated, loopy, ever-shifting, high-dimensional, murky, and curved manifold, one we call "reality". (complex system)
the code, the target, and the route between the two undergo far more frequent change.
the route changes anyway, even when the target stands relatively still.
Because "the route" isn’t a universal objective permanent line on a flat map. It’s local to our team & its vision, and changes as they do.
in the geek trades, they don’t pay us to solve problems we’ve already solved for them
And finally, there’s the code. The code moves, like I do, between where it’s at now and where it’s going. But unlike me, it changes a lot as it moves.
Does it ever apply? Of course! There are situations in which our aim truly can be extraordinarily accurate at low cost
The key is in understanding how occasional these situations really are.
Edited: | Tweet this! | Search Twitter for discussion