skip to content

Two designs meet the requirement, one on components you could move anywhere and one on a proprietary managed capability — why might the harder-to-leave option still be right?

level: principalimportance: nice to knowfreq 33%

answer

  1. portability is a cost, not a goal
  2. recurring against one-off
  3. weight the exit by its probability
  4. lowest-common-denominator tax is invisible
  5. cap the dimension that grows unattended

basics

~20 s

Portability is one cost among several, not the goal. Staying portable is paid every month forever; leaving is paid once, if ever. The proprietary option wins when the work it removes, compounded over years, outweighs an exit cost discounted by the chance of exiting.

solid answer

~50 s

Because the two costs have different shapes. Keeping the portable option costs something **every month**: the work the managed capability would have done, the people to do it, and the features you decline in order to stay on the lowest common denominator. The lock-in of the proprietary option is paid **once, and only if you leave** — and most systems never do. So the comparison is the recurring saving over the expected life of the design against the exit cost multiplied by the probability of actually exiting, with the value of the capability itself on top. Choosing the portable design by reflex is how teams end up paying a permanent tax to insure against an event that never happens. The mature version of the answer is not "accept lock-in", it is: accept it knowingly, cap the dimension you could not afford to grow, and put a date on revisiting the decision.

go deeper

for a junior

Take away that the most portable option is not automatically the best one, because staying portable costs something every month while leaving costs something only if it ever happens.

for a middle

Be able to name both sides concretely: what the proprietary capability saves in ongoing work, and what accepting it would add to the code and data dimensions of the exit cost.

for a senior

Show the comparison with its assumptions stated — expected lifespan, recurring saving, exit exposure, realistic probability of moving — rather than a preference presented as prudence.

for a principal

Own the exposure deliberately: choose which dimension the decision may grow, cap the ones you could not afford, and set the date and trigger for re-arguing it on new numbers.

## Portability is a cost, not a virtue It is easy to argue for the option that is easiest to leave, because the argument sounds like prudence and costs nothing to make in a review. But portability is not free and it is not the objective. The objective is the system doing its job at an acceptable total cost, and "could be moved" is one input to that, competing with the others rather than outranking them. The two options in this question have costs of genuinely different shapes, which is why comparing them directly is the whole skill: | | Portable design | Proprietary managed design | |---|---|---| | Recurring cost | the work the managed capability would have done, the people who do it, and the capabilities declined to stay on the lowest common denominator | the price of the capability | | One-off exit cost | low | the rewrite, plus whatever data it accumulated | | When it is paid | every month, for as long as the system lives | once, and only if a move actually happens | | Certainty | certain | probabilistic | ## The comparison that decides it Stated plainly: compare the **recurring cost of staying portable, over the expected life of the design**, with the **exit cost, discounted by the probability you ever exit**, and add the value of what the capability actually does for you. 1. **Estimate the recurring side honestly.** It is not only the bill. It is the engineer-time to run the self-managed equivalent, the on-call burden it creates, and the features you decline because only one platform offers them — the lowest-common-denominator tax, which is invisible in a budget and very visible in a roadmap. 2. **Estimate the exit side as an inventory, not a fear.** What would this decision add to the code row, and what would it add to the data row? A capability that will accumulate years of data adds far more than one that holds transient state, even if both are equally proprietary. 3. **Put an honest probability on leaving.** Most systems are decommissioned on the platform they were built on. If the organisation has never moved anything and has no reason to, a low probability is the truthful input, and pretending otherwise just dresses a preference up as arithmetic. 4. **Say the assumptions out loud.** The numbers are invented; the assumptions are what the room can actually argue with. A decision recorded as "we accepted this much exit exposure because we valued this much recurring saving, assuming this lifespan" is reviewable later. "We chose the portable one to be safe" is not. ## Cap the exposure you could not afford Accepting lock-in knowingly is not the same as accepting it without limit. The useful discipline is to pick which of the four dimensions this decision is allowed to grow, and cap the rest: - **Keep the data extractable.** The data dimension is the one that grows every day without anyone deciding, so it is the one worth capping first: keep retention deliberate, and keep at least one path to the bytes that does not depend on the proprietary interface. - **Keep the commitment shorter than the architecture's expected life.** A term that outlives the design turns a reversible decision into an irreversible one on someone else's schedule. - **Keep the operational dependency from becoming one person's specialism.** A capability that exactly one engineer understands is an availability risk long before it is a portability one. - **Keep the code surface countable.** Not abstracted away — just known, so that the technical row of the inventory can be produced without a research project. ## When the portable option genuinely wins The reflex is wrong as a reflex, not as an answer. Reach for the portable design when there is a concrete reason the probability of moving is not low: a customer or regulatory requirement for a second source; credible doubt about the provider's willingness to keep the capability alive; a workload that must run somewhere the platform does not reach; or a commercial position where signing any term commitment is not acceptable. In those cases the recurring tax is buying something real, and it should be named as insurance with a premium rather than presented as good engineering hygiene. ## Saying it in a review The sentence that lands is roughly: *this option is harder to leave, here is the size of that exposure in the dimensions it grows, here is what we avoid paying every month by taking it, and here is when we look at it again.* That answer survives the follow-up question. "It is more portable" does not, because the first thing an experienced reviewer will ask is what that portability costs and what it is insuring against.

  • Which dimension is most worth capping when you do accept a proprietary capability?
    The data one, because it is the only dimension that grows as a side effect of the system working rather than at a decision point. Keeping retention deliberate and keeping one path to the bytes that does not go through the proprietary interface holds it flat. The code and contract rows only move when somebody writes or signs something.
  • What is the lowest-common-denominator tax, and why is it hard to see in a budget?
    It is what you give up by restricting yourself to what every candidate platform implements: the capability you did not adopt, the operational work you kept in-house, the design you simplified to stay neutral. None of it appears as a line item, because it is spending that did not happen and value that was never captured — so it loses arguments against costs that do appear.
  • How do you keep this decision from going stale?
    Record it with its assumptions — expected lifespan, the recurring saving claimed, the exit exposure accepted, the probability of moving — and attach a review date, typically a commitment renewal or a major rearchitecture. When an assumption changes, the decision gets re-argued on the new numbers instead of being defended as precedent.

saying these in an interview costs you the question

  • Treats portability as a goal that outranks every other cost
  • Prices the exit but never prices staying portable
  • Assumes the system will certainly be migrated one day
  • Counts the lowest-common-denominator tax as zero
  • Accepts lock-in without capping any dimension of it
  • Records the choice with no assumptions and no review date