A bit of inspiration most weekdays for exploring your mindset .

Rewrite or fix and improve

Khem Raj January 07, 2025 #meta

A common problem we often see in software development world is rewrite or improve and maintain existing implementation.

Rewrite, certainly is an option, but it should be not taken lightly, teams change, people move. It is possible that a lot of "why it is done this way" know-how goes away over time. Newer team members may then bias towards rewriting that reading the code and understanding it. As a developer that is an appealing option. We may add more reasons like "we will use new programming language" and "modernize the software", "it will be better for hiring new developers" ...

All these are good arguments, but they should be quantified and discussed in detail. All of these assertions are subjective gains. We should bring a product mindset also into picture. Most of the time rewrites are not user visible, so any regression will upset the user since they may care less if it is written in X or Y or if you can debug it better than before. Stakes are high, it is a purely technical debt work.

Improving upon existing implementation may have become very costly, knowledge base and communities might have disappeared, these could play towards rewrite as well.

We should respect what came before us. Understanding "why" beneath a project can give enough objectivity in making a good decision when it comes to rewrite or not.