In the Tidy First? world we focus on structure investments since folks consistently under-invest in structure. But which structure investments? And that’s where play comes in.
First, the payoff for structure investments is no more predictable than the payoff for behavior changes. You add a button. Will anyone press it? You add an element & adjust relationships. Will that make future behavior changes cheaper or more expensive?
You might have informed opinions about which features will be easier & harder after a structure change, but you don’t know know. More importantly, you don’t know what further structure changes will be revealed when you have completed this one. Often, a small change leads to a small change leads to oh would you look at that a small change with big consequences. You may have a nose for these kinds of jackpot changes but you won’t know until you do it.
Second, there are always a bewildering myriad of possible structure changes available. You always have too much to do (or you’re being paid too much). You can’t try everything.
Just because perfectly rational design decisions are impossible doesn’t mean we’re stuck. It just means we have to engage other styles of thinking besides logical thought to navigate the space.
I found this concept of a design space liberating. I’m always in some point in that space. These kinds of features are hard. Those kinds of features are easy. I want to navigate to a new point where these kinds of features are easier. How can I get there from here.
A classic mistake when navigating an optimization surface like this is always taking the smallest possible steps. That’s what happens when we unbalance development towards behavior changes. Add a feature. Add a feature. Oh crap we better adjust the structure but don’t spend any more time on it than absolutely necessary because we need more features now.
Too much of this and we’ve designed (or not-designed) ourselves into the proverbial corner. All features have become hard/expensive/risky. No structure changes seem possible.
Here is where play comes in. We always have the option to improve the structure. We may not choose to exercise that option but it always exists. If we have become deeply embedded in our local minimum the only way out is a big change.
Big changes are risky. What if you pack everything in your covered wagon, you cross the plains with contracting cholera, you get to California, & you don’t like it?
Make a habit of playing with structure. Give yourself an hour to just try going in a new direction. After an hour you’ll know for sure why you can’t get there in an hour. Take a rest. Then play with whatever blocked your progress. (We’ll talk more later about developing plasticity of design.)
Effective development swings between exploring which new options to create & exercising those options to fund the next round of exploration. Don’t just make coldly rational design decisions. Those seldom create unexpected options. Play too.
I think you mean, "you cross the plains with[out] contracting cholera".
Also, my favourite line in the article is one you have duplicated — either intentionally or mistake — "Give yourself an hour to just try going in a new direction. After an hour you’ll know for sure why you can’t get there in an hour. Take a rest. Then play with whatever blocked your progress."
"All features and no structure make Jack a dull boy"