CEO to CTO: What Is Your RewriteRatio?
codemonkeyism.com
codemonkeyism.com
Uh, all of these are supported quite well. Each has a place in the ecosystem and will be around for a long time. Anyone who considers rewriting an app because a new one of these comes out has a serious problem. My old apps use older ones and my new use newer. What is the problem?
In additon, this number has no intrinsic value component. What is the value of being able to migrate to another system? Who cares? Rewrite for what? Does code rot? Are there bad spots like an apple? Does recreating the apple keep bad spots from being created next time?
There are only 4 states for a rewrite value judgement:
1. App is small and provides little business value..so who cares.
2. App is big, but low values so what's it matter.
3. App is huge and high value so better be very very careful.
4. App is small and high value, so why?
Your ratios restate that and provide no additional information in the only state that matters which is number 3.
Some thoughts
"Is low good or bad?"
As it is a risk in your book, first it's good to know. Is low good or bad? Depends on your strategy. Fast time to market with a rewrite after Series-A, low seems good. Low growth, tight margins low seems a high risk to me.
"What is the value of being able to migrate to another system?"
I don't know why people migrate or are forced to migrate, it depends on your situation I guess. From following HN people seem to rewrite their systems all the time. From working at startups as CTO, one reason to rewrite seems you can't get the current technology stack stable (e.g. Web Framework does not scale for your type of business) or you can't migrate your tech stack to a new version.
"In additon, this number has no intrinsic value component."
Often when talking to CEOs they are suprised that they need to pony up some millions to completly rewrite a system because it can't be upgraded to a new version of X, which they haven't got in their budget and planning of their long term margin growth.
You're right about the 'improve' wording, I'll think about a more neutral term. Same I'll rethink the KPI wording.
OTOH, the cost to migrate can never be greater than the cost to rewrite from scratch, since rewriting from scratch is a method of migrating.
And I'm not sure this ratio is ever meaningful. I get that the idea is to have a simple, scale independent measure of the impact of technical debt, but the proposal here is neither objectively measurable nor meaningful, IMO, in that role.
"OTOH, the cost to migrate can never be greater than the cost to rewrite from scratch, since rewriting from scratch is a method of migrating."
Interesting point. I need to work on the definitions as obviously 'migration' is not clear cut enough.