Throw Away

My team's ability to sustain shipping velocity and contributor energy and enthusiasm is proportional to our ability to move forward while throwing out old code and systems.

Continuous learning is useless if you can't apply it. Think back to the most impactful insight you can recall in your work—didn't it feel like a breakthrough?

If you have too much weight to integrate breakthrough ideas when they happen, not only is it unfortunate for your product, it's demoralizing to your team.

What's the point? Why am I here?

On the flip side, being responsible means validating that what you think is a breakthrough is indeed one. Otherwise, you risk disorienting your team and causing whiplash.

Is anything sacred?

So how do you create the conditions for comfortable stability while making room for integrating breakthroughs?

Don't overinvest in what you assume you'll need. Get what you need done by constructing it from no more than its essence, in substance and concept. Then, throw away the old when you have a better way. Done right, this also means not over investing in the throw-away-and-rebuild (refactor) phases as they come. They're part of business as usual.