<story><title>Red Flags Signaling That a Rebuild Will Fail</title><url>http://www.pkc.io/blog/five-red-flags-signaling-your-rebuild-will-fail/</url></story><parent_chain><item><author>maxxxxx</author><text>&amp;quot;Red Flag #4: You aren’t working with people who were experts in the old system.”&lt;p&gt;I think this is most important. A lot of people want to rewrite because they don&amp;#x27;t understand the current system and don&amp;#x27;t want to bother learning. Before you rewrite you really should understand the current state deeply.</text></item></parent_chain><comment><author>majormajor</author><text>The way I&amp;#x27;ve phrased something similar before is &amp;quot;don&amp;#x27;t do a full rewrite if you couldn&amp;#x27;t write up a plan for refactoring in place to fix the problems with the old system.&amp;quot;&lt;p&gt;If you can build that plan, and make the case that it will be easier to do the full rewrite, go for it. But if you couldn&amp;#x27;t put together the fix-in-place plan, you might not understand everything the old system does well enough to actually estimate the size of a rewrite...&lt;p&gt;(This isn&amp;#x27;t solely for full-parity rewrites: if you&amp;#x27;re dropping features, what does that look like dropping from the old system?)</text></comment>
<story><title>Red Flags Signaling That a Rebuild Will Fail</title><url>http://www.pkc.io/blog/five-red-flags-signaling-your-rebuild-will-fail/</url></story><parent_chain><item><author>maxxxxx</author><text>&amp;quot;Red Flag #4: You aren’t working with people who were experts in the old system.”&lt;p&gt;I think this is most important. A lot of people want to rewrite because they don&amp;#x27;t understand the current system and don&amp;#x27;t want to bother learning. Before you rewrite you really should understand the current state deeply.</text></item></parent_chain><comment><author>ebikelaw</author><text>Yep, seen that. I worked on a system where the company did not really want a reimplementation but they destaffed a project in one site and reconstituted it with all new people at another site. The new people decided to rewrite from scratch. A year and a half later I start getting questions by email from the new people, questions indicating that not only do they not understand the implementation of the legacy system, they also do not clearly understand the business requirements that resulted in that implementation. Meanwhile, the maintenance of the old system had been neglected to such an extent it had fallen behind critical company-wide mandates. This was more of a lesson about why you shouldn’t destaff a project over some petty geographical squabbles, but also quite clearly about why you should always incrementally reimplement software rather that rewriting it.</text></comment>