"It's going to take too long, so let's do it later."
It's a phrase spoken in countless planning meetings. It sounds pragmatic, a reasonable deferral in favor of more immediate priorities. But on a long-running project or for a company with long-term ambitions, that math doesn't work out. It's a flawed logic that masks a deeper problem: a fear of necessary complexity.
The project that takes the longest is the one that never starts. It's a bitter truth that needs to be understood: some things—the most important things—take time, long processes, and multiple stages if they are to be done well.
The Myth of the "Right Time"
The most critical, value-generating projects are often the ones that are the most daunting. A full architectural refactor to pay down years of tech debt. A ground-up redesign to create a modern, cohesive user experience. A migration to a new data platform to unlock future business intelligence.
These initiatives are intimidating because their ROI isn't delivered in a single sprint. There is no quick, satisfying win. And so, leaders defer. They wait for a "slow period" that never arrives, for a "dedicated budget" that is never allocated, for the "right time" that is always just over the horizon.
The Power of Phased Execution
The only way to conquer these monumental tasks is to start. How? By breaking them into phases, piece by piece, with achievable milestones. Even if those initial milestones are just on the path to the final ROI, they are critical. They demonstrate progress, build momentum, and validate the investment.
An architectural refactor isn't a single, massive effort.
-
Phase 1: Isolate and Extract a Single Service. Start with a pilot. Identify a low-risk part of the monolith (like the PDF generation or email notification service) and extract it into its own independent microservice. The milestone is getting this first service running in production, which proves the concept and builds the team's muscle memory for a new way of working.
-
Phase 2: Implement the "Strangler Fig" Pattern. For a more critical domain, build the new service alongside the old one. Use a proxy to route a small percentage of live traffic (e.g., 5%) to the new service while the old system handles the rest. The milestone is battle-testing the new service with real production load, creating a safe, repeatable pattern for migration with zero downtime.
-
Phase 3: Accelerate and Decommission. With the pattern established, the team can accelerate the process, carving out more services and gradually "strangling" the old monolith until it can be safely shut down. The milestone is that key business domains now operate as independent, scalable services, enabling teams to deploy faster and more reliably.
This approach turns an overwhelming monolith of a project into a manageable series of focused efforts.
Don't Let Success Happen in Spite of You
Here is the hard truth: in many organizations, these projects still happen. Nearly every instance of these types of initiatives I've witnessed or been actively involved in were game-changers in terms of product offerings and value when completed. But they were done in the shadows.
They were championed by passionate senior engineers and determined middle managers who carved out time, begged for resources, and pushed the project forward without official endorsement because they knew it was the right thing to do. The company succeeded in spite of its leadership's lack of vision.
That is a profound failure of leadership.
Your job as a leader is not to shy away from the hard, long-term work. It is to recognize its critical importance, to provide the political and financial air cover for the teams on the ground, and to champion their progress. Show up for the things that are hard to do, and provide the resources and endorsements to make them easier. That is how you build a company that lasts.