TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Red Flags Signaling That a Rebuild Will Fail

289 pointsby pkcsecurityalmost 7 years ago

18 comments

nostrademonsalmost 7 years ago
#5 has a converse - oftentimes, the only way to get a rebuild to <i>succeed</i> is to drop features, and it&#x27;s a major red flag if management insists on 100% feature parity.<p>The way to distinguish this from the #5 situation in the article is to ask if you&#x27;re dropping features <i>because they&#x27;re hard</i> or <i>because nobody uses them</i>. The former is a red flag; the latter is a green flag. Before you embark on a rebuild, you should have solid data (ideally backed up by logs) about which features your users are using, which ones they care about, which ones are &quot;nice to haves&quot;, which ones were very necessary to get to the stage you&#x27;re at now but have lost their importance in the current business environment, and which ones were outright mistakes. And you should be able to identify at least half a dozen features in the last 3 categories that you can commit to cutting. Otherwise it&#x27;s likely that the rewrite will contain all the complexity of the original system, but without the institutional knowledge built up on how to manage that complexity.
评论 #17511180 未加载
评论 #17511175 未加载
评论 #17512597 未加载
评论 #17511197 未加载
评论 #17511144 未加载
评论 #17512504 未加载
评论 #17513314 未加载
评论 #17512857 未加载
评论 #17512604 未加载
评论 #17511177 未加载
maxxxxxalmost 7 years ago
&quot;Red Flag #4: You aren’t working with people who were experts in the old system.”<p>I think this is most important. A lot of people want to rewrite because they don&#x27;t understand the current system and don&#x27;t want to bother learning. Before you rewrite you really should understand the current state deeply.
评论 #17511756 未加载
评论 #17511649 未加载
评论 #17511760 未加载
评论 #17510989 未加载
评论 #17511350 未加载
评论 #17511078 未加载
评论 #17513304 未加载
评论 #17511122 未加载
tomeldersalmost 7 years ago
I’ve carved a career out of rebuilds. I’m working on a rebuild right now. There’s a ton of companies out there who’ve done very well with their home grown antiquated systems from the late 90’s and early 00’s that are now facing stiff competition from young upstarts who had feature parity from day one and are knocking out new features at break neck pace because they’re leveraging the latest and greatest in tools, technology, and thinking.<p>I’ve always been a big believer in rebuilding your product from the ground up. I think it’s something you should always have going on in the background. Just a couple of devs whose job it is to try and rebuild your thing from scratch. Maybe you’ll never use the new version. But I think it’s a great way to better understand your product and make sure there’s no dark corners that no one dare touch because they don’t understand what it does, how it does it, or why it does it the way it does.<p>And I’ve always believed that if you don’t want to rebuild your app from scratch, then don’t worry, a competitor will do it for you.<p>So I agree with every point raised in this article. And I think it does a great job of articulating the issues that often go unspoken. But I’d like to add one more. And for me, this is the biggest issue for any company wanting to rebuild it’s product.<p>If your sales team has more clout than your designers and developers, then you’re fucked. And in the enterprise software world, this is the norm. An uncheked sales team that get’s whatever it wants has already killed your product and made it impossible to rebuild. Their demands are ad-hoc, nonsensical, and always urgent. So urgent that proper testing and documentation are not valid reasons to prevent a release. Their demands are driven by their sales targets, and the promises they make to clients are born out of ignorance of what what your product does, and how it does it.<p>This is not true of all companies. Many companies find a reasonable balance between the insatiable demands of a sales force and the weary cautiousness of their engineers. But if your company submits to every wish and whim of your sales team, and you attempt to rebuild your product, then you’re screwed.
评论 #17511464 未加载
评论 #17518334 未加载
评论 #17512807 未加载
评论 #17512727 未加载
评论 #17518305 未加载
评论 #17511272 未加载
Ensorceledalmost 7 years ago
Red Flag #6: Key stake holders keep moving the goal posts.<p>If your goal moves from feature comparable but on a modern platform, to new features, to a complete reinventing of the product all without actually shipping ... you might be in trouble.<p>I had a rebuild go 6 months over. In the heated executive meeting at t+3 months I was called to defend my team and pointed out that the VP Product had just delivered “final” specs literally the day before. How could we be on track with development if PM is 3 months past “end of development” with design specifications. The fact that the specs were changing weekly because “we’re agile” is a whole other issue.
评论 #17511125 未加载
评论 #17511418 未加载
评论 #17513328 未加载
alkonautalmost 7 years ago
The truth I think is more often that the legacy system is too old and brittle to improve, and customers are demanding ever more complicated features from it.<p>So you rebuild as a new system as a gamble, because even though it shows all the traits described, the new system is at least one that anyone is willing to develop, and one where features can be added, and to which people can be recruited.<p>We know big rebuilds have small chances of sucess. But that doesn’t mean you shouldn’t do big rewrites. You are in a bad place if you even consider. Maybe the big rewrite means the company has an 80% risk of going under. Still could be that safe bet.
bkovacevalmost 7 years ago
This is yet another article where there&#x27;s a clear managerial-only approach. Sorry, but I dont dig this.<p>As a developer you&#x27;re constantly fighting managers who want to rush things to get them out and who will eventually blame you for a bug&#x2F;non-defined behavior once you hit a certain milestone.<p>To me it seems the author of the article doesn&#x27;t understand the tech debt. If you&#x27;ve ever worked in a startup you&#x27;d know that the requirements are ever-changing, thus that if a certain payment system is put in place, it might evolve to the point where you really need to refactor it and in order to enable the refactor you have to refactor the whole business flow as well. If there&#x27;s more than 2-3 features affected by a new feature, a big refactor is definitely needed.<p>Only one solution offered, which I dont think is adequate because why would I leave something in that was only meant to provide value for short term and then build on top of it till I kill the old system?
评论 #17513885 未加载
gaiusalmost 7 years ago
Missing the biggest red flag of all, engineers wanting to just play with new toys and pad their CVs. Ask the engineers why they want to rebuild and listen carefully to the answer and if it’s vague handwaving and buzzwords (microservices! Containers! New JS framework!) and no hard numbers to justify it, just say no.<p>For example “we spend X&#x2F;year on AWS but if we spend Y to rewrite in C++ we need fewer VMs and can cut that to Z&#x2F;year” is simple calculations. If your engineers can’t even do that, their motives are suspect.
评论 #17512928 未加载
评论 #17512875 未加载
评论 #17512888 未加载
pspeter3almost 7 years ago
I think people also deeply underestimate the time it will take. We&#x27;ve undergone an incremental rewrite for ~4 years at Asana.
评论 #17512980 未加载
solox3almost 7 years ago
With this good article I think I have a good question.<p>The reference to Martin Fowler’s strangler pattern (<a href="https:&#x2F;&#x2F;www.martinfowler.com&#x2F;bliki&#x2F;StranglerApplication.html" rel="nofollow">https:&#x2F;&#x2F;www.martinfowler.com&#x2F;bliki&#x2F;StranglerApplication.html</a>) was mentioned in the article to grow the new system in the same codebase until the old system is strangled. In my case (Ionic 1 to 2) however, both the entire framework and the language are different. How should the strangler pattern work in this case?
评论 #17511401 未加载
评论 #17511001 未加载
评论 #17511009 未加载
评论 #17511106 未加载
lyqwydalmost 7 years ago
This article really captures the risks of a rebuild. I’ve been through a number of them, all but 1 abject failures. The one success was driven by the executive understanding that the company would fail without a rebounds, and it was still 6 months late, resulted in one of the cofounders being fired, an extremely painful rollout, and the company still failed, due to other problems.<p>My firm belief is that when you need a rebuild, you are already well into a fail state as a company. Not to stay there can be no recovery, but it is an indication of some deep problems for the company, beyond anything the engineering department alone can resolve... and if the rebuild is not coming from the executive leadership, it is an even bigger issue as it will more likely lead to bigger problems than it will solve.
ellimilialalmost 7 years ago
This is gold.<p>I&#x27;ve become a member of a team the company scrambled to deal with a `legacy` python&#x2F;SQL - based ingestion&#x2F;storage system in an effort to &#x27;harden&#x27; it. Despite my best efforts, we are going for a full rewrite into java&#x2F;spring&#x2F;avro&#x2F;mongo&#x2F;es. We have internal users talking SQL and utilising the system at the moment, a fair amount of data is relational.<p>I have run out of ideas how to convince the team and stakeholders, will have a one-shot chance to talk to VP. Any ideas how to voice the concerns about the full re-design (perhaps I&#x27;m just being difficult)?
评论 #17513293 未加载
评论 #17513413 未加载
rwmjalmost 7 years ago
Is &quot;rebuild&quot; new jargon for &quot;rewrite&quot;, or does it mean something different? I thought the article was going to be about builds failing.
评论 #17516716 未加载
wellpastalmost 7 years ago
Red Flag #1 should be that you’re doing a rebuild.
评论 #17512720 未加载
评论 #17511992 未加载
评论 #17511542 未加载
jpeeleralmost 7 years ago
Firefox seems to be doing pretty well with their incremental rewrite into rust. I do wonder how long it will take to complete the transition versus doing a complete rewrite instead.
nerdponxalmost 7 years ago
Another red flag not mentioned here: the old system doesn&#x27;t have an end-to-end suite of functional test cases you can rely on.
lgleasonalmost 7 years ago
I recently left a project that demonstrated most of these traits. Usually these things are the top of the ice-burg.
评论 #17511548 未加载
kazishariaralmost 7 years ago
¯\_(ツ)_&#x2F;¯:&#x27;Dual commits&#x27; to the rescue! -pun intended
Chyzwaralmost 7 years ago
The rewrite is usually when it is too late for the project. Need for re-write mean that project maintenance was ignored and technical debt reached critical levels.<p>I would start by firing people that led to this situation.
评论 #17511084 未加载
评论 #17511158 未加载
评论 #17511089 未加载
评论 #17510956 未加载
评论 #17512750 未加载