Yes, we rewrite

We decided to rewrite our entire hosting platform. Here is more on the process and how we are doing so far.

A few years back, we faced a critical decision: iterate on our existing codebase or embark on a big bang rewrite. Common advice is to iterate:

They did [...] the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch. -Joel Spolsky 2000 (Things You Should Never Do)

A tough decision

We did not took it lightly. In fact, it was one of the reasons making my co-founder Oliver leave.

I really do see the benefits of incremental updates: Ship features sooner, deal with a system that isn't perfect, but you know very well. Refactor, don't rewrite.

Yet, I thought and think a rewrite is necessary for us: As DHH phrased it, we need to leap not skip ahead to achieve our vision and turning a chair into a table is maybe not most sane thing to do. I wanted to unburden ourselves from technical constraints and legacy compatibility concerns. The existing code base is to hard to maintain and extend. A new abstraction model is required.

Halfway there

It's a very ambitious project and of course it takes much longer than anticipated. Rebuilding the entire platform while simultaneously improving it's feature set is a monumental task.

There are many loose ends still. Every day new details emerge (unknown unknowns). It's hard to plan ahead. I can see from first principle now why big rewrite projects fail.

We are writing new bugs instead of fixing old ones.

It's recommended to put out a minimum viable product to gauge user interest and gather early feedback. But I feel our platform is the sum of all tightly interconnected parts and so I can not see what an MVP would look like for us.

Despite a somehow sticky business model, the rewrite remains a very big gamble. This new platform needs to be the bedrock of our business for years to come.

My take now

Experience breeds wisdom, and past mistakes make us cautious. Risk aversion increases with age. However, there's also a certain naiveté that can be advantageous when embarking on a daunting endeavor. As Mark Twain quipped:

They did not know it was impossible, so they did it.

The road ahead is long and the finish line is not in sight yet. We have recently restructured our roadmap, so we can better see the long road ahead. I am not even certain that we will launch this year any more.

Yet, i am proud of our progress and what we have achieved so far and i'm incredibly fortunate to work with such a talented and dedicated team. Time will tell if we will be able to finish this, or if our ambitions have been to high.


Share & discuss this: