<story><title>The Birth of Legacy Software – How Change Aversion Feeds on Itself</title><url>https://software.rajivprab.com/2019/11/25/the-birth-of-legacy-software-how-change-aversion-feeds-on-itself/</url></story><parent_chain><item><author>seren</author><text>In my open office next door, people have been refactoring a cpp98 monolith into more interdependent components to be able to have a better test suite, better CI integration, better deployment story. That sounds about right.&lt;p&gt;Well, the issue is that they have done it a bit sneakily, they removed all the legacy code they haven&amp;#x27;t understood. So the code is much more elegant, it has been moved to cpp11 or 14, it ticks every good practice. There is only one slight issue : it does not work. It somewhat work, but is not reliable and fails regularly in unexpected ways. And they&amp;#x27;ve started 5 years ago, and haven&amp;#x27;t been delivering any business value since then.&lt;p&gt;At the beginning, it was okay because they had some leeway but now they are blocking the release of new products, and our market share is in free fall.&lt;p&gt;Heads have started to roll.&lt;p&gt;To be fair, a few years down the line, their team will likely be more productive and efficient, but I am still not sure that the cost of the rewrite was justified. Still the article is very on point on the risk of not paying your technical debt.</text></item><item><author>vearwhershuh</author><text>I&amp;#x27;ve seen plenty of projects blown up with massive, fearless refactors to do thing &amp;quot;the right way&amp;quot;.&lt;p&gt;Careful with that axe, Eugene.</text></item></parent_chain><comment><author>matwood</author><text>&amp;gt; they removed all the legacy code they haven&amp;#x27;t understood.&lt;p&gt;This is exactly why rewrites or huge refactors typically fail. The new programmer sees code and doesn&amp;#x27;t understand why the code is there and thinks the last programmer was an idiot and deletes said code. Unknown to the new programmer is that code handles some weird edge case.&lt;p&gt;A rewrite should spend 80% of the time understanding the old code and 20% writing the new. But, that&amp;#x27;s no fun for most programmers who just want to code in the latest shiny so the new code ends up broken.</text></comment>
<story><title>The Birth of Legacy Software – How Change Aversion Feeds on Itself</title><url>https://software.rajivprab.com/2019/11/25/the-birth-of-legacy-software-how-change-aversion-feeds-on-itself/</url></story><parent_chain><item><author>seren</author><text>In my open office next door, people have been refactoring a cpp98 monolith into more interdependent components to be able to have a better test suite, better CI integration, better deployment story. That sounds about right.&lt;p&gt;Well, the issue is that they have done it a bit sneakily, they removed all the legacy code they haven&amp;#x27;t understood. So the code is much more elegant, it has been moved to cpp11 or 14, it ticks every good practice. There is only one slight issue : it does not work. It somewhat work, but is not reliable and fails regularly in unexpected ways. And they&amp;#x27;ve started 5 years ago, and haven&amp;#x27;t been delivering any business value since then.&lt;p&gt;At the beginning, it was okay because they had some leeway but now they are blocking the release of new products, and our market share is in free fall.&lt;p&gt;Heads have started to roll.&lt;p&gt;To be fair, a few years down the line, their team will likely be more productive and efficient, but I am still not sure that the cost of the rewrite was justified. Still the article is very on point on the risk of not paying your technical debt.</text></item><item><author>vearwhershuh</author><text>I&amp;#x27;ve seen plenty of projects blown up with massive, fearless refactors to do thing &amp;quot;the right way&amp;quot;.&lt;p&gt;Careful with that axe, Eugene.</text></item></parent_chain><comment><author>adrianN</author><text>Deleting legacy code you don&amp;#x27;t understand is the best way to remove fixes for bugs you didn&amp;#x27;t know you had.</text></comment>