How do you decide which platform versions to drop from a support matrix, and what do you owe users when you drop one?
answer
- Your telemetry, not market-wide statistics
- Sessions, revenue and contracts are three answers
- The vendor's own end of support helps
- Representative sampling beats exhaustive
- Deprecate, announce, pin, verify, then remove
basics
~20 sWeigh your own usage telemetry and the revenue behind it against the cell's cost, honour stated commitments and the vendor's own support dates, then drop with announced lead time, a pinned last-supported release, and a check that the tail migrated.
solid answer
~50 sStart with evidence you own: usage share from your product's telemetry, not market-wide statistics, segmented by revenue and customer type, because a platform used by 0.4% of sessions can carry a regulated customer you cannot drop. Set that against the cell's cost — pipeline minutes, devices or images, and the defect tail it generates. Then check the constraints: contracts, published statements, and the vendor's own end of support — the strongest external argument you have. Prefer **representative** over exhaustive: one version per engine generation or API level, plus the oldest and newest supported, rather than every point release. Dropping is a process, not a flag flip: announce with lead time proportional to switching cost, warn in-product on the affected platform, pin a last-supported release, then verify from telemetry that the tail moved before the code is removed. Avoid claiming a universal usage threshold — the number is a business call, not an industry constant.
go deeper
Be ready to say that the matrix is pruned deliberately, and that usage data and existing promises both feed the decision. Knowing that dropping a platform needs an announcement is a good start.
An interviewer expects the inputs named — your own usage telemetry, commitments, the vendor's end of support, the cell's cost — and the difference between representative and exhaustive version selection.
Show how you would run it: quantify the cell's cost from pipeline time and defect history, choose the representative sample, and describe the deprecate-announce-pin-verify sequence rather than a flag flip.
Own the policy and the reconciliation across functions. Be ready to defend the threshold as a business call rather than an industry constant, and to say how the matrix stays bounded as new versions arrive.
### Why this is a judgement call A support matrix compounds. Each new platform version usually arrives without an old one leaving, so a matrix that is never pruned grows monotonically — more pipeline minutes, more devices, more images, more one-platform defects competing with feature work. Pruning is therefore continuous portfolio management, and the reason it is a lead's problem is that the inputs sit in different departments: engineering knows the cost, product knows the commitments, support knows who is still there, and only telemetry knows the truth about usage. ### The inputs, in the order that settles arguments **1. Your own usage share.** Measure from the product's own telemetry — sessions, active accounts, and the requests behind them — not from published market-wide statistics, which describe a population that is not your customer base. Segment it: share of *sessions* answers a different question from share of *revenue* or share of *enterprise accounts*. **2. Stated commitments.** Contracts, published support policies, procurement answers, and anything sales said in writing. A platform with a tiny share and a signed commitment is not droppable this cycle, and finding that out after the announcement is the expensive path. **3. Upstream support status.** When the platform's own vendor has ended support for a version, that is the strongest external argument available and the cleanest thing to communicate, because it is also a security argument rather than a convenience one. **4. The cost of the cell.** Be concrete: pipeline minutes per run, device or image inventory, the count of defects in the last few releases that reproduced only there, and the engineering hours those consumed. A cell with a heavy defect tail is more expensive than its run time suggests. **5. Switching cost for the people on it.** A browser generation is a same-day upgrade; a locked-down desktop fleet in a regulated environment can be a procurement cycle. The lead time you owe scales with this, not with your release cadence. ### Representative versus exhaustive Within what remains, the second lever is depth. Exhaustive coverage — every point release, every device model — buys far less than it costs, because most point releases share a code base and behave identically for your purposes. A defensible **representative** selection covers the axes of real difference: - one version per engine generation or platform API level, not per point release - the **oldest** supported version and the **newest**, because boundaries break first - the lowest-capability device class in the matrix - one member of each vendor build family that has historically diverged and then a periodic wider sweep, less often, to catch what the representative set misses. The honest framing in an interview is that this is sampling: it trades a known, bounded risk for a large cost reduction, and the way you manage the risk is by re-choosing the sample whenever the field-defect evidence says the sample missed something. Be careful with popular claims here. There is no industry-standard usage threshold at which a platform becomes droppable; teams that quote a specific percentage are quoting their own policy. Similarly, the evidence about how many defects are unique to a single platform varies enormously by product type, so quantify from your own defect history rather than a remembered figure. ### What you owe the people you drop Dropping is a withdrawal of a promise, and the process is where reputations are made: - **Announce with lead time** proportional to switching cost, in the release notes, in-product, and directly to accounts identified from telemetry. - **Warn in place.** A banner shown only on the affected platform reaches exactly the people concerned and nobody else. - **Pin a last-supported release** and say how long it will receive security fixes. This is what turns "we dropped you" into "you have a supported option while you plan". - **Move the tier before removing it.** Fully supported → deprecated → unsupported, over at least one release, so the change is visible before it bites. - **Verify from telemetry.** Watch the tail migrate. If it does not move, that is data about switching cost, and the deadline may need to move with it. - **Only then remove the code** and the compatibility branches. Removing them while users remain is what makes the drop irreversible at the worst moment. ### A worked example A hotel booking channel manager finds that engine generation N-3 accounts for 0.42% of console sessions but 38 properties, of which 6 sit under contracts with an explicit support clause, and their connectors carry part of a 1,200-request-per-minute promotion peak. The cell costs roughly 34 pipeline minutes per release and produced 5 of the last 19 client defects. The decision that survives scrutiny is not "drop it, it is under half a percent": it is to deprecate this release, notify the 38 properties with named dates, honour the 6 contracts to their term with a pinned last-supported release, and remove the cell after the tail has been observed to move — with the cost figures on the record so the next review starts from evidence rather than argument.
- Product wants to drop a platform that 0.4% of sessions use; support says two large accounts are on it. How do you decide?Reframe from share to exposure. Identify those accounts from telemetry, check contractual and published commitments, and price both sides: the cell's pipeline, device and defect-tail cost against the revenue and renewal risk. Usually the answer is neither "drop now" nor "keep forever" but a dated plan with a pinned last-supported release and a migration conversation with those accounts, so the cost stops growing while the commitment is honoured.
- How do you keep the matrix from growing every time a new platform version ships?Make addition and removal one decision. Adopt a stated policy — for example, support the current generation and a fixed number back, aligned to the vendor's own support dates — so a new arrival automatically deprecates the oldest, and the review happens on a schedule rather than when someone complains about pipeline time. Publish the policy, because a predictable rule is far easier for customers to plan against than case-by-case decisions.
- What evidence would tell you your representative sample is too small?Field and late-stage defects that reproduce only on cells the sample does not cover. Track, per release, which platform-specific defects were caught by the sample, which by the periodic wide sweep, and which by customers. A rising share in the last bucket says the sample has drifted from the matrix and needs re-choosing — usually because a new engine generation or device class entered without the sample being revisited.
saying these in an interview costs you the question
- Quotes a universal usage percentage as an industry rule
- Uses market-wide statistics instead of the product's own telemetry
- Counts sessions but never revenue or contractual commitments
- Drops a platform with no announcement or pinned last release
- Removes compatibility code before the tail has migrated
- Treats exhaustive version coverage as the safe default