Build1 distinct publisher3 min readUpdated
A dev.to essay traces a 1.4%-adoption feature whose real dependents were a webhook path, a departed engineer's billing script and $380k of contracts. None of it showed up in the dashboard.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
An essay published on dev.to under the handle dasdorf makes an unfashionable claim: you cannot decide whether to kill a feature from its usage metrics, because usage tells you who touches the front door and nothing about what is load-bearing in the basement [1]. It matters because the opposing belief, that low adoption is itself sufficient evidence of a small blast radius, is the assumption the author blames for six-figure incident cleanups [2].
The structural point is that adoption and dependency are orthogonal [3]. A feature can have poor end-user adoption and still be load-bearing, because the things depending on it are not end users at all: they are other systems, other teams' automations, and legacy contracts nobody re-reads [4]. The author reports watching teams sunset a feature at 2% monthly active users and take down three internal tools, a partner integration, and a compliance report finance runs quarterly, none of which appeared in any dashboard because none of them count as "users" in the analytics sense [5].
The worked example is a mid-size B2B SaaS company, anonymized by the author, who says the numbers are real [6]. A "Custom Export Templates" feature, built three years earlier, was touched by 1.4% of active accounts per month and cost an estimated 140 engineering hours per quarter in bug fixes, a recurring migration and on-call incidents [7]. On adoption-based scoring it was a top deprecation candidate, and the product team had a deck ready [8].
Someone ran a dependency trace before the kill-off rather than after [9]. The template engine turned out to feed a webhook system used indirectly by 9% of accounts, because a more popular feature, "Scheduled Reports," silently relied on the same engine for formatting [10]. That indirect exposure is roughly 6.4 times the direct UI share [11]. The billing team's invoice reconciliation script, internal and written by someone who had left two years earlier, parsed the engine's output to validate export completeness for enterprise contracts [12]. Two enterprise contracts worth roughly $380k ARR combined named the export format in their SOW as a deliverable capability, via the phrase "data portability," which sales had mapped to this feature during the deal [13].
The revised plan was not a kill. The team retired the direct-usage UI, worth about 20% of maintenance cost, and kept the template engine alive as an internal-only dependency under a smaller, clearer maintenance contract [14]. Net saving: about 30 hours per quarter against the 140 the deck had promised [15], which is roughly 21% of the projected figure and leaves about 110 hours per quarter that were never available to save [16].
The second-order failure is subtler. Teams that do map dependencies often map the technical graph and stop, and foreign keys, API call graphs and service dependencies miss the organizational and contractual layer almost every time, because those dependencies live in a sales engineer's Notion doc, a customer-built Zapier integration, or a CSV export scheduled into a customer's warehouse three years ago [17]. The author describes one team that traced every function call, API consumer and internal service, declared the feature clean, deprecated it, and was blindsided four days later by a partner's scraper hitting a public page the feature rendered [18]. The technical graph was accurate; it was not the whole graph [19].
Worth noting: this is one practitioner's account of an unnamed company, and the figures are not independently verifiable. What to watch in your own estimates is the coupling pattern rather than the anecdote: a popular feature quietly sharing an engine with an unpopular one, a revenue-recognition script with no living owner, and contract language that describes a capability rather than a product name. Each of those turns a savings number into a liability number, and none of them are visible from a spreadsheet sorted by MAU [20].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The essay argues you cannot decide whether to kill a feature by looking at its usage metrics, because usage metrics tell you who touches the front door and nothing about what is load-bearing in the basement.
A feature can have terrible end-user adoption and still be structurally load-bearing, because the things depending on it are other systems, other teams' automations, and legacy contracts nobody re-reads.
The author's stated failure mode is that teams map the technical graph and stop: database foreign keys, API call graphs and service dependencies are necessary but insufficient, because organizational and contractual dependencies live in a sales engineer's Notion doc, a Zapier integration a customer built without telling anyone, or a CSV export a customer's ops team scheduled into their own warehouse three years ago.
In that case the technical graph was accurate but was not the whole graph; the failure mode was checking the wrong layer and mistaking thoroughness in one dimension for completeness.
The counterargument, held sincerely by smart people according to the author, is that low adoption is itself sufficient evidence that the blast radius must be small; the author calls this the assumption that costs companies six-figure incident cleanups.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single self-published anecdote, fully anonymized
Everything rests on one dev.to essay by an author who sells a template for the process it recommends. The worked example is explicitly anonymized while asserting the numbers are real, so the 1.4% direct usage, 9% indirect exposure, 140-versus-30 engineering hours and $380k ARR figures cannot be checked against any artifact, dashboard, contract or postmortem. The two supporting stories (the 2% MAU sunset, the partner scraper) name no company or date. Only the conceptual claims — adoption and dependency are different graphs, technical tracing is not complete tracing — stand on their own internal logic.
No adoption signal in supplied sources
The cluster contains no release, deployment, benchmark, pricing, licensing or usage disclosure for any product, tool or practice. The percentages in the essay describe accounts touching an anonymized internal feature at an unnamed company; they are not evidence that any team, vendor or framework has adopted the three-layer blast-radius method the essay prescribes. No adoption observations could be recorded.
Sound thesis, overreaching numbers and a sales funnel
The core position is modest and defensible: adoption is a poor proxy for safety-to-remove, and the essay even concedes that ruthless pruning of zombie features is correct as a strategy. The overstatement is in the packaging — precise unverifiable figures presented as 'real', a generalization that this assumption 'costs companies six-figure incident cleanups', a claim that the technical graph misses the contractual graph 'almost every time', and a closing pitch for the author's paid template as the repeatable answer. Claims run ahead of the single anonymized case that supports them, but not extravagantly.
Author monetizes the prescribed process
The essay ends by directing readers to the author's paid Gumroad template for building the three-layer dependency map it argues is mandatory, on a self-publishing platform with no editorial gate. That gives the author a direct commercial interest in maximizing the perceived risk of adoption-based deprecation and the perceived inadequacy of existing technical tracing, and the anonymization of the case study conveniently removes any way to test the risk figures. The interest is disclosed by the link itself but never named as a bias.
Confident on the argument, not on the facts
Confidence is bounded by having one self-published, commercially motivated source and no adoption dimension at all. The reasoning about dependency layers is reproducible and would likely survive scrutiny, so the qualitative takeaway is fairly reliable; every number, company, contract value and hours figure should be treated as illustrative rather than established.
build
48 startups, 4 known by name, 28 recommended by category1 distinct publisher
build
Force the tool call, then hand Lightsail a long-lived key1 distinct publisher
build
AI-written code fails the same four ways, and every gate you own reports green1 distinct publisher
build
CSA's 2026 threat list is a flat line, so ask which threats a config snapshot can prove1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 15, 2026