Every PM Faces This Decision
At some point, every product team confronts the same question: should we build this ourselves, or buy an existing solution? The answer seems simple until you try to calculate it. Vendor pricing looks cheap until you account for integration work. Building looks expensive until you account for the vendor's yearly price increases.
The build vs buy decision, as ThoughtWorks describes it, is really a bet on where your team's time creates the most value. Build when the capability is your competitive edge. Buy when it's commodity infrastructure that your users don't care about. The tricky part is distinguishing between the two.
Quick Comparison
| Factor | Build In-House | Buy (Vendor/SaaS) |
|---|---|---|
| Upfront cost | High (engineering time) | Low to moderate (subscription + integration) |
| Ongoing cost | 20-30% of build cost per year | Predictable subscription + usage fees |
| Time to deploy | Months to quarters | Days to weeks |
| Customization | Unlimited | Limited to vendor's configuration options |
| Data control | Full ownership | Subject to vendor's data policies |
| Maintenance burden | Fully on your team | Handled by vendor |
| Vendor lock-in | None | Moderate to high (data migration, API coupling) |
| Competitive differentiation | High (unique to your product) | Low (competitors can buy the same thing) |
| Team learning | Deep domain expertise | Surface-level integration knowledge |
| Scaling risk | Your problem | Vendor's problem (usually) |
When to Build
Build when the capability directly contributes to why customers choose your product over alternatives. This sounds obvious, but teams regularly misjudge what counts as differentiation.
Build when:
- It's your core differentiator. If your product's value comes from doing X better than anyone else, you can't outsource X. A recommendation engine for a discovery platform. A real-time collaboration layer for a design tool. A pricing algorithm for a revenue management system. These are worth the engineering investment because they're why customers pay you.
- Vendor integration is more work than building. Sometimes the vendor's API is so limited, their data model so different from yours, or their authentication so clunky that the integration project rivals the effort of building the feature from scratch. If the integration estimate exceeds 60% of the build estimate, strongly consider building.
- Data sensitivity is paramount. Healthcare, finance, and enterprise B2B products often have compliance requirements that vendor solutions can't satisfy. If your customers' contracts prohibit sending data to third parties, the vendor option disappears.
- You need to iterate fast on this capability. Vendor roadmaps don't bend to your priorities. If you need to ship changes to this capability weekly, owning the code is the only way. Waiting months for a vendor to add a feature you need is painful. Use the ROI Calculator to quantify the cost of that delay.
- The market lacks a good vendor. If existing solutions are immature, poorly maintained, or aimed at a different use case, building may be the only viable path. But verify this thoroughly before concluding the market is empty.
The Build Trap
The danger of building is underestimating ongoing costs. Building a feature takes 3-6 months. Maintaining it takes forever. A team of 3 engineers building a notification system for 4 months will need at least 0.5-1 engineer maintaining it indefinitely: bug fixes, scaling, new channel support, deliverability monitoring, compliance updates.
Before committing to build, answer these:
- Who maintains this after launch? Name specific people
- What's the on-call burden? Who gets paged at 2 AM when it breaks?
- What features won't get built because this team is maintaining internal infrastructure?
- Are you comfortable with this technical debt tradeoff for the next 3 years?
When to Buy
Buy when the capability is necessary but not differentiating. Authentication, payments, email delivery, monitoring, analytics. Your users don't choose your product because of your login page.
Buy when:
- It's commodity infrastructure. Auth, payments, email, SMS, error tracking, logging. These are solved problems. Building your own auth system is almost never worth the security risk and engineering cost. The PM Tools Directory covers the best options across categories.
- Speed matters more than control. If you need the capability in weeks, not months, buying is the only option. A competitor launching a similar feature next month doesn't give you time to build from scratch.
- Your team lacks domain expertise. Building a search engine without search engineering experience produces a bad search engine. Building a payments system without payments expertise produces a risky payments system. Vendors have specialist teams that your generalist engineers can't match.
- The vendor's scale gives you advantages. Email deliverability, fraud detection, and CDN performance all improve with scale. A vendor serving thousands of customers has better deliverability reputation, more fraud data, and more edge nodes than your single-product infrastructure ever will.
- Total cost is genuinely lower. Compare 3-year total cost of ownership, not just year-one pricing. Include: vendor subscription, integration engineering, ongoing integration maintenance, and the opportunity cost of engineering time. For guidance on evaluating market fit and sizing, the TAM Calculator can help quantify the business opportunity you're enabling.
The Buy Trap
The danger of buying is vendor lock-in. Every vendor integration creates a dependency. The deeper the integration, the harder and more expensive it is to switch. Lock-in manifests in three ways:
- Data lock-in. Your data sits in the vendor's system in their format. Exporting it is painful or impossible. Always verify data export capabilities before signing
- API lock-in. Your codebase is coupled to the vendor's API. Switching requires rewriting every integration point. Use an abstraction layer to minimize coupling
- Process lock-in. Your team's workflows depend on vendor-specific features. Switching requires retraining and process redesign
Mitigate lock-in by:
- Wrapping vendor APIs in your own abstraction layer
- Ensuring you can export your data in standard formats
- Avoiding vendor-specific features when standard alternatives exist
- Negotiating data portability terms in the contract
- Reviewing the vendor's financial health. Acquisitions and shutdowns happen
The Decision Framework
Run through these questions in order. The first "yes" answer is usually your answer.
Build if:
- Is this your core product differentiator? If yes, build. No exceptions
- Would buying create unacceptable compliance or security risk? If yes, build
- Is the integration effort >60% of the build effort? If yes, build
- Do you need to iterate on this capability weekly? If yes, build
Buy if:
- Is this commodity infrastructure? If yes, buy
- Do you need it deployed in <4 weeks? If yes, buy
- Does your team lack domain expertise to build it well? If yes, buy
- Is the 3-year TCO of buying <50% of building? If yes, buy
Dig deeper if:
- The build and buy costs are within 2x of each other
- The capability is moderately differentiating
- You're uncertain about vendor stability or roadmap fit
The product strategy framework covers how build vs buy decisions fit into broader strategic planning.
Cost Comparison Template
When you need to present this decision to leadership, structure it as a 3-year total cost comparison.
Build costs:
- Initial engineering (headcount x months x fully loaded cost)
- Infrastructure (hosting, monitoring, CI/CD, staging environments)
- Ongoing maintenance (20-30% of initial cost per year)
- Opportunity cost (what the team would have built instead)
- Security and compliance (audits, penetration testing, certifications)
Buy costs:
- Subscription or license fees (year 1, 2, 3 with expected increases)
- Integration engineering (initial build + ongoing maintenance)
- Data migration and setup
- Training and change management
- Switching cost (estimated cost to replace the vendor if needed)
Most teams discover that building costs 2-5x what they initially estimated. As Martin Fowler describes in his analysis of technical debt, the first estimate always underweights maintenance, on-call, and opportunity cost. The technical debt guide explains why these hidden costs accumulate.
Hybrid Approaches
Not every decision is binary. Three hybrid patterns work well:
Build on top of a platform. Use a low-level vendor (database, cloud functions, message queue) and build your differentiating logic on top. You get infrastructure reliability without the lock-in of a feature-complete SaaS tool.
Buy now, build later. Use a vendor to ship quickly, learn from real usage, then build a custom replacement once you understand the requirements. This works when speed-to-market matters more than long-term efficiency. Set a timeline for the "build later" decision so it actually happens.
Build the core, buy the edges. Build the differentiating core yourself and buy the commodity pieces around it. A product analytics company might build its own event pipeline and query engine but buy Stripe for payments and Auth0 for authentication.
Common Mistakes
Underestimating maintenance. The feature you built in Q1 needs a full-time engineer by Q4. If you wouldn't hire an engineer to maintain this indefinitely, don't build it.
Overvaluing customization. "We need full control" is often an emotional argument, not a business one. Ask what specific customization you need that the vendor can't provide. If the answer is vague, buy.
Ignoring opportunity cost. The 3 engineers building internal tooling could have been building customer-facing features. Every build decision is also a decision not to build something else.
Choosing based on current needs only. Your requirements will change. A vendor that fits today may not fit in 18 months. A system you build today may need capabilities you can't predict. Evaluate both options against your 12-18 month product roadmap, not just today's requirements.
Making the decision alone. Build vs buy requires both business judgment (PM) and technical assessment (engineering). A PM making this call without engineering input will underestimate build costs. An engineer making it without PM input will underweight strategic importance.
Bottom Line
Build what makes your product unique. Buy everything else. When in doubt, bias toward buying first and building later, because you'll learn what you actually need from real usage. The worst outcome is spending 6 months building something, launching it, and discovering you needed different capabilities than you assumed.