Build-vs-buy is a recurring architectural choice. Frameworks help.
Three options:
1. Salesforce native — out-of-the-box features.
2. AppExchange / managed package — third-party app installed.
3. Custom build — your team writes Apex/LWC/integration.
Decision criteria:
1. Does Salesforce native solve it?
If yes: STOP. Use it. Cheapest, most maintainable, evolves with the platform.
2. Does an AppExchange solution exist?
Evaluate:
- Functionality fit: does it cover 80%+ of the requirement?
- Vendor health: financially stable? Active development? Recent reviews?
- Security review: Salesforce Security Reviewed? When?
- Customer references: comparable customers using it successfully?
- Pricing: total cost of ownership over 3-5 years.
- Customisability: does it allow the customisations you'll need?
- Exit strategy: can you migrate off it later if needed?
If yes to most: BUY. Faster to market, robust, supported.
3. Custom build when:
- Highly specific business logic — generic packages don't fit.
- Integration with proprietary systems that no package supports.
- Compliance / security requires code your team controls.
- Cost over time of licensing exceeds dev cost.
- Customisation depth needed that packages don't support.
Hidden costs:
Buying:
- Licensing — recurring cost.
- Lock-in — switching costs.
- Customisation limits — vendor's roadmap, not yours.
- Upgrade pain — vendor's release cadence.
- Knowledge concentration — fewer people understand the package.
Building:
- Maintenance — ongoing cost forever.
- Salesforce platform updates — code may need updates as platform evolves.
- Talent risk — knowledge walks out the door if developer leaves.
- Security obligation — your team owns security audits.
Decision framework:
> Default to native > AppExchange > custom, in that order. > Build only when you've validated that neither native nor AppExchange fits. > Always prototype the AppExchange option before deciding to build.
Senior consultant insight: bias toward configuration / packages, not custom. Many orgs are 80% custom code that could have been native or packaged — the cumulative cost is enormous.
Hybrid approach (often best):
- Use AppExchange for the heavy lifting (charts, signature, document gen).
- Wrap with custom configuration / light LWC for branding and business logic.
A skilled consultant resists the engineer's "we can build it" instinct unless the case is clear.
