skip to content

A team estimates that building an in-house feature-flagging system will take six engineer-weeks, versus paying a SaaS feature-flag vendor a few thousand dollars a month. Why is comparing 'six engineer-weeks' to the monthly subscription price the wrong comparison, and what should be compared instead?

level: middleimportance: must knowfreq 72%

answer

  1. TCO not just build time
  2. opportunity cost = next best use of engineers
  3. recurring maintenance dwarfs initial build
  4. fully-loaded engineer cost

basics

~20 s

Six weeks isn't the real cost. After launch, someone must keep fixing and running it forever, and those engineers could've built something else instead. Compare the full years-long cost, including that lost opportunity, not just build time.

solid answer

~40 s

Comparing initial build time to a subscription price undercounts two things: total cost of ownership, meaning the ongoing maintenance, on-call burden, security patching, and feature-parity work needed to keep a home-grown system viable for years, which for infrastructure-adjacent tooling routinely dwarfs the initial build; and opportunity cost, meaning the value of whatever the same engineers would have produced had they been assigned to the core roadmap instead. The right comparison is build cost plus several years of maintenance cost plus opportunity cost of diverted capacity, versus subscription cost plus integration cost plus the eventual cost and risk of migrating away if needed. Since engineer time is priced at fully-loaded cost, six weeks alone is often already comparable to a year or more of subscription fees before a single hour of maintenance is counted.

go deeper

for a junior

Should recognize that a subscription fee is not the only ongoing cost and that engineers building something aren't free, even at a basic conceptual level.

for a middle

Should be able to construct a rough TCO comparison with real numbers (fully loaded engineer cost, estimated maintenance percentage) for a concrete proposed build.

for a senior

Should proactively surface opportunity cost in planning discussions and push back on 'it's only N weeks' framing when a comparable vendor exists for a commodity capability.

for a principal

Should institutionalize TCO/opportunity-cost analysis as a standard input to build-vs-buy decisions across the organization, not just apply it ad hoc to one proposal.

## Why the usual comparison fails Build-vs-buy cost comparisons fail most often because they compare a one-time number (build effort) against a recurring number (subscription cost) without normalizing the time horizon or accounting for what happens after launch. The correct comparison requires two additional concepts: 1. **total cost of ownership (TCO)** 2. **opportunity cost** ## Total cost of ownership TCO is the sum of every cost a system generates across its useful life, not just the cost to bring it into existence. For an in-house feature-flagging system, TCO includes the initial build, then ongoing costs every subsequent year: - **on-call response** when the flag service has an incident during a critical rollout - **security patching** as dependencies age - **feature work** to keep pace with what the team actually needs (targeting rules, percentage rollouts, audit logs, SDKs for every language the company uses) - **the cost of onboarding new engineers** to a bespoke internal tool with no external documentation or Stack Overflow answers None of this shows up in the initial six-week estimate, yet it is real spend that recurs every year the system is in production. Industry experience with internally built infrastructure tooling (queueing systems, feature flags, internal admin panels) repeatedly shows that ongoing maintenance cost across three to five years is several times the initial build cost, because the initial build only has to reach 'works for the demo,' while production operation has to reach 'works reliably under every edge case the business throws at it, forever.' ## Opportunity cost **Opportunity cost** is the value forgone by using engineers on this project instead of the next-best alternative. If the six-week build pulls two senior engineers off the core product roadmap, the real cost is not their salary for six weeks -- it is whatever feature, bug fix, or performance improvement those two engineers would otherwise have shipped, weighted by its value to the business. Because most engineering organizations are capacity-constrained (there is always more valuable work than people to do it), this forgone alternative is rarely zero, and for capabilities that are commodity rather than differentiating, it is almost never worth paying. ## The trade-off The trade-off is not simply 'buying is always cheaper.' Buying introduces its own recurring costs: - **subscription fees** that scale with usage or seats and can grow faster than a fixed engineering cost would have - **integration effort** to wire the vendor's SDK into every service - **switching cost** if the vendor's pricing or product direction later becomes unacceptable But for a genuinely commodity capability like feature flagging -- which several mature, well-funded vendors already sell as a polished product with SDKs across languages, audit trails, and enterprise support -- the vendor's fixed cost is spread across thousands of customers, so even a monthly fee that looks large in isolation is usually far below the fully-loaded cost of building and then indefinitely operating an equivalent in-house system. ## The failure mode in practice The failure mode this miscomparison produces in practice is a familiar one: a team greenlights the in-house build because 'it's only six weeks,' ships it, and then eighteen months later that system has become a load-bearing piece of infrastructure with no dedicated owner, an accumulating backlog of feature requests, and an on-call rotation nobody signed up for, while the original six-week estimate has been dwarfed many times over by unplanned maintenance work -- work that was never budgeted because it was never counted as part of the original decision. This is sometimes visible in postmortems where an incident traces back to 'our internal tool for X' rather than a named, supported vendor product, and the fix requires pulling engineers off planned work yet again. ## A concrete illustration **A concrete illustration.** a fifty-engineer company estimates six engineer-weeks (roughly $15,000-$25,000 in fully loaded cost) to build feature flagging, against a SaaS vendor charging $2,000 per month ($24,000/year). On the surface the build looks cheaper. Once TCO is added -- say, four engineer-weeks per year of ongoing maintenance and feature work, plus one engineer-week per year of on-call/incident time, both at the same fully loaded rate -- the in-house system costs roughly $12,500-$21,000 every year after the first, quickly exceeding the vendor subscription, before counting the opportunity cost of what those maintenance hours could otherwise have produced. This is why mature engineering organizations default to buying commodity infrastructure tooling and reserve in-house builds for capabilities where the differentiation value clearly outweighs a multi-year TCO plus opportunity-cost comparison.

  • How would you actually estimate the ongoing maintenance cost of a proposed in-house build before deciding?
    Look at comparable internal systems the organization already operates and measure their actual ongoing engineer-hours per quarter for on-call, bug fixes, and feature requests, then use that as a proxy. If no comparable exists, a common rule of thumb is to budget 15-25% of the initial build effort per year in ongoing maintenance, and adjust upward for anything customer-facing or security-sensitive.
  • Does opportunity cost ever argue in favor of building rather than buying?
    Yes, when the alternative use of engineering time is lower-value than owning the capability -- for example, if the team has slack capacity between major releases, or if the capability being built is itself going to become a source of competitive advantage, the forgone alternative may be worth less than what building produces.
  • How does this analysis change for a company with very few engineers versus a large platform team?
    Opportunity cost is proportionally higher for a small team, since diverting two of five engineers for six weeks is a much larger fraction of total capacity than diverting two of two hundred; small teams should weight the opportunity-cost side of the comparison more heavily and default to buying commodity capability even more aggressively.

It's like comparing the price of a puppy to a stuffed toy and concluding the puppy is cheap because the adoption fee is low -- the real cost shows up over years in food, vet bills, and the time you're not spending on other things, not in the sticker price on day one.

saying these in an interview costs you the question

  • Only compares initial build effort to subscription price, ignoring years of maintenance
  • Cannot explain what opportunity cost means in this context
  • Assumes engineer time is 'free' because it's already salaried headcount
  • Never asks what else the engineers could have worked on
  • Treats the subscription fee as pure cost without weighing integration/maintenance cost on the buy side too

context