unplanned planning: the magic of fluid tech strategy
package strategy
type Strategy interface {
Plan() error
Execute() error
Adapt() Strategy
}
bruce lee knew his truth: “be like water.”
and honestly, if your tech strategy can’t flex like that, you’re already dead.
in a world where everything shifts on a dime, planning isn’t about locking down every detail—it’s about creating a framework that bends without breaking.
darwin said the adaptable survive. tyson said everyone has a plan until they get punched in the mouth.
stop pretending your perfectly planned roadmap will save you. it won’t.
what will?
the ability to adapt when everything breaks loose.
the basic rhythm:
plan -----> execute -----> adapt ---.
^ |
'---------------------------------'
plan -> execute -> adapt -> repeat.
that’s the rhythm of survival.
but sometimes you’ll be stuck here:
reality hits harder:
plan -----> execute -----> adapt -----> adapt -----> adapt ---.
^ |
'-----------------------------------------------------------'
adaptation isn’t failure. it’s pure momentum.
over-planning is the real killer. you’ll waste time obsessing over details while missing the magic of improvisation.
the best moves happen when you’re not following the script.
focus on the outcome, not the implementation.
what are you trying to build?
forget the nitty-gritty for now. keep it simple. a cluttered strategy kills creativity. use a monorepo, a single file—whatever keeps things focused and easy to shift.
roadmaps should inspire, not chain you down. leave space for unpredictability, because that’s where innovation lives.
fluid strategy isn’t just about survival—it’s about evolution.
and when stability is needed—when you’re shipping a polished product—that’s when you tighten things up.
until then, let your strategy flow.
want more? check out “forkability: software’s key to evolution” and “software species: a darwinian perspective”.
perfect plans die on paper. fluid strategies ship.