Software Design: Tidy First?

Share this post

Delay Versus Friction

tidyfirst.substack.com

Delay Versus Friction

Kent Beck
Jan 24
25
Share this post

Delay Versus Friction

tidyfirst.substack.com

When I built my dream house (long, sad story), there came a day when we started moving out of our trailer & into the house. We moved all the important, daily-use stuff. Then the weekly-use stuff. Then monthly. Then the trailer sat there for a few years with just enough stuff in it that we couldn’t get rid of it, but no real motivation to move that stuff because it was per definition not all that important. It wasn’t until the county told us we couldn’t have 2 dwellings on the property that we finished emptying the trailer & got rid of it.

Matt Basta makes an excellent point that software development organizations just aren’t very good at finishing migrations. The last bit of the migration gets harder & harder, the benefits of the migration seem mostly realized, & the opportunity cost of finishing the migration seems to grow. So we leave an archeological layer of old technology, only stumbling over it occasionally.

3X: Explore/Expand/Extract adds to this analysis. Recall the risks:

  • Explore—nobody cares

  • Expand—you can’t grow in time

  • Extract—you can’t operate sustainably

The expand→extract transition is particularly tough. You go from the cost of delay being high (you can’t fix a bottleneck in time) to the cost of friction being high (you can’t sustain the throughput necessary to finish growing).

What does this mean for finishing migrations? During expansion, you may need to adopt a new framework, say, to support scaling. You replace the bottleneck uses of the old framework. Your scaling problem is solved for the moment. You genuinely have better uses for your time than finishing the migration. You’re on to the next looming bottleneck.

Now you move to extraction. Those toe-stubbing moments on the old framework become relatively more expensive. You aim to reduce friction, improve throughput. If this feature takes a little longer to complete, that doesn’t actually cost the business that much. The tradeoff shifts.

I’ve only ever seen this shift handled gracefully by combining two forms of leadership:

  • Executive—explicitly creating incentives in extraction for removing friction.

  • Technical—senior technical folks just going & finishing migrations even with weak incentives to do so.

Share this post

Delay Versus Friction

tidyfirst.substack.com
Comments
TopNewCommunity

No posts

Ready for more?

© 2023 Kent Beck
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing