User Avatar

Milo Todorovich

2y ago

Coaching software engineers to more frequent software delivery | Software Engineer | Engineering Management | Leadership | PhD Candidate

Think really hard before you commit to "rewriting" your system.

Sometimes it's called a re-architecture, a re-platforming, or a modernization.

Whatever you call it, THINK REALLY HARD before you go down this path.

I've been down this path a few times in my 27 year career, and each trip is a unique adventure.

It is going to take a lot longer than you think.

No matter how much up front planning you do, you will learn about something gnarly along the way. And it will slow you down.

Imagine a system that's been built up over 8 years? How long would it take to rebuild that system? Definitely not 6 months. There's two much detail that has accumulated along the way.

What if the system is 15+ years old? And running a profitable business with thousands of employees? This takes YEARS. Can you go for years without any new business value?

Rebuilding a system that runs your business takes a long time!

Sponsors will run out of patience.

In the start-up world, my experience is that executive teams can handle 1-2 months without releasing new value. Anything beyond that starts to cause tension in the organization.

Tension leads to speeding up, leads to cutting corners, leads to a new system that's in worse shape than the original.

Think REALLY hard!

How can you make it successful?

- Understand what you are trying to achieve.

- Take things in small, incremental steps.

- Prove out your new architecture.

- Continue Delivering Daily.

Finally, be sure to manage expectations. Go through your initial planning and estimating, to come up with a conservative estimate.

Now, use your conservative estimate as "the ideal scenario, if everything goes perfectly."

Multiply your conservative estimate x3, and call that your likely estimate.

Finally, multiply your conservative estimate x6, and report that as "if we discover a lot along the way.

Always report all three estimates!

That bears repeating. Always report all three estimates. Reporting a range shows that there is uncertainty that will be discovered along the way.

And hold your ground. Executives will latch on to the low estimate. Continue to repeat all three, so that you are always communicating the uncertainty in the endeavor.

Then, show your work, keep your sponsors updated on progress, and regularly revisit your estimates.

Your primary tools are the right mindset, managing expectations, showing your work, and a lot of refactoring.

I can help you on your journey. DM for details.

The all-in-one writing platform.

Write, publish everywhere, see what works, and become a better writer - all in one place.

Trusted by 80,000+ writers