Cost Governance and Decision-Making - Patterns

Learn more about Well-Architected Resource and Cost Optimization → Cost Monitoring and Governance

Patterns

Where to lookWhat good looks like
Setup → Company Settings → System Overview
Reports & Dashboards → Cost Utilization Folder
✅ Pattern: Create executive dashboard showing $2.1M annual Salesforce investment distributed across 1,200 licenses (68% active weekly), 450 GB storage (72% capacity), and 15 sandboxes (11 actively used)
✅ Dashboard reveals $400K optimization opportunity in inactive licenses and unused sandboxes through operational metrics
Reports & Dashboards → Investment Dashboard
Setup → Company Information
✅ Pattern: Investment dashboards show spending by business unit or cost center, sandbox and environment costs by development team, add-on product costs with utilization metrics
✅ Project spending based on current growth trends enabling budget accountability and allocation discussions

Anti-Patterns

Where to lookWhat bad looks like
Accounting System → Invoice Records Only⚠️ Anti-Pattern: Finance team has invoice visibility showing total spending but no operational metrics revealing utilization patterns or optimization opportunities
⚠️ Cannot identify inactive licenses, unused sandboxes, or capacity waste without operational dashboards

Patterns

Where to lookWhat good looks like
Reports & Dashboards → License Budget Alerts
Setup → License Allocations
✅ Pattern: License budgets establish allocation targets by department with alerts when approaching capacity
✅ Prevent uncontrolled provisioning creating budget overruns discovered only at renewal time through proactive monitoring
Setup → Storage Usage → Alert Rules
Flow → Storage Warning Automation
✅ Pattern: Automated alert triggers at 70% storage utilization providing 4-month lead time to implement archival strategy before hitting limits
✅ Prevents emergency data deletion or expensive overage charges through proactive notification with adequate response time
System Overview → API Usage Alerts
Event Monitoring → API Threshold Warnings
✅ Pattern: API budgets track consumption against limits with alerts at example utilization thresholds such as 70% and 85%
✅ Enable proactive optimization rather than reactive emergency responses after limits cause integration failures or user disruption
Setup → Sandbox Management → Budget Controls
Flow → Sandbox Request Approval
✅ Pattern: Sandbox budgets control environment proliferation through allocation limits and approval processes for additional environments
✅ Prevent teams from creating unlimited temporary environments that transition to permanent status without justification

Anti-Patterns

Where to lookWhat bad looks like
No Budget Controls → Uncontrolled Spending⚠️ Anti-Pattern: No license budgets or approval workflows allowing unlimited provisioning across departments without visibility to spending patterns
⚠️ Budget overruns discovered at renewal when aggregate spending exceeds planned investment by 30-40% due to uncontrolled growth
No Storage Alerts → Reactive Overages⚠️ Anti-Pattern: Storage overage discovered during renewal negotiation requiring immediate purchase at premium pricing without time for archival evaluation
⚠️ Missing advance warning that would enable archival implementation before overages occur, resulting in 2-3x higher costs

Patterns

Where to lookWhat good looks like
Reports & Dashboards → Showback Report
Reports → Cost by Business Unit
✅ Pattern: Quarterly showback report shows Sales Cloud consuming 45% of license investment, Service Cloud 30%, and Operations 25%
✅ Enables executive discussion about whether investment distribution aligns with business value priorities and strategic focus areas
Financial System → Chargeback Allocation
Reports → Department Cost Allocation
✅ Pattern: Allocation rules distribute costs appropriately: license costs by user department assignment, sandbox costs by owning development team
✅ Integration costs allocated by business process consuming integration services, development costs by requesting project funding source
Reports & Dashboards → Sandbox Cost Report
Setup → Sandbox Usage by Team
✅ Pattern: Sandbox and environment costs allocated by owning development team creating direct accountability for environment management
✅ Teams see their sandbox investment enabling informed decisions about environment requests and lifecycle management

Anti-Patterns

Where to lookWhat bad looks like
IT Budget Only → No Business Unit Visibility⚠️ Anti-Pattern: All Salesforce costs allocated to IT budget without business unit visibility
⚠️ Business stakeholders treat platform as “free” and make requests without cost awareness or investment prioritization discussions
No Usage Attribution → Cannot Optimize⚠️ Anti-Pattern: Total spending visible but no attribution to business units, projects, or teams making optimization decisions impossible
⚠️ Cannot identify which investments deliver value and which consume budget without proportional returns

Patterns

Where to lookWhat good looks like
Collaboration → FinOps Team
Meetings → Monthly Cost Review
✅ Pattern: Cross-functional collaboration between finance, architecture, and business stakeholders ensures cost decisions consider business value alongside spending impact
✅ FinOps brings finance expertise to architecture discussions and technical understanding to budget planning creating balanced decisions
Calendar → Optimization Reviews
Process → Regular Cadence
✅ Pattern: Continuous optimization cadence with monthly anomaly review, quarterly utilization audit, and annual comprehensive TCO assessment
✅ Regular review cycles prevent cost drift and validate that spending growth corresponds to business value growth through systematic analysis
Tools → License Cost Calculator
Architecture → TCO Models
✅ Pattern: FinOps team provides architects with license cost calculator showing TCO implications of different license type selections
✅ Enables cost-aware design decisions during architecture phase rather than discovering costs after deployment when changes are expensive
Training → Cost Awareness Program
Documentation → Cost Impact Guidelines
✅ Pattern: Cost awareness education ensures teams understand how architectural decisions affect total cost of ownership
✅ Architects design better solutions balancing capability and investment; developers write more efficient automation respecting governor limits and API consumption
Automation → Cost Monitoring Scripts
Dashboards → Auto-Generated Reports
✅ Pattern: Automated monitoring of utilization, optimization opportunities, and spending reports reduces manual effort
✅ Scales with organizational complexity without linear headcount growth, enabling cost awareness across growing platform footprint

Anti-Patterns

Where to lookWhat bad looks like
Annual Only → No Feedback Loop⚠️ Anti-Pattern: Cost visibility limited to annual renewal discussions providing no feedback loop
⚠️ Architecture teams cannot understand or optimize spending patterns during design phase when changes are least expensive
Siloed Decisions → No Cross-Functional Input⚠️ Anti-Pattern: Architecture decisions made without finance input, budget decisions made without technical understanding
⚠️ Results in solutions that exceed budget without business justification or budget cuts that eliminate capabilities delivering critical value
No Cost Education → Uninformed Decisions⚠️ Anti-Pattern: Teams make architectural decisions without understanding cost implications because no training or visibility exists
⚠️ Accumulates waste through thousands of micro-decisions that individually seem minor but compound to significant spending

Patterns

Where to lookWhat good looks like
Documentation → Architecture Decision Record
Process → ADR Template
✅ Pattern: Architecture Decision Record for customer portal includes license analysis: 10,000 external users with Customer Community Plus licenses ($6 per user monthly = $720K annually)
✅ Compares versus custom web application with API integration ($250K initial + $50K annual maintenance), recommending custom application with 2-year payback
Governance → Architecture Review Board
Process → Cost Review Criteria
✅ Pattern: Architecture Review Board includes cost perspective alongside functional and non-functional requirements producing better-aligned investment decisions
✅ Cost is one input to architectural decisions ensuring organizations invest appropriately in capabilities that matter while avoiding waste
Documentation → ADR Cost Section
Templates → TCO Projection
✅ Pattern: Include cost impact assessment in Architecture Decision Records documenting major design choices
✅ Require TCO projection for solutions exceeding defined investment thresholds ($100K or organizational policy) with documented assumptions
Process → License Impact Review
Architecture → Premium Feature Analysis
✅ Pattern: Evaluate license implications during solution design determining whether design requires premium licenses or add-ons
✅ Assess integration cost implications before committing to patterns affecting API consumption or middleware licensing requirements

Anti-Patterns

Where to lookWhat bad looks like
No Cost Consideration → Emergency Redesign⚠️ Anti-Pattern: Architecture designed without cost consideration, discovering at implementation planning that proposed approach requires $720K annual investment
⚠️ Causes emergency redesign under time pressure with inferior outcomes compared to cost-aware design from start
Post-Design Cost Discovery → Wasted Effort⚠️ Anti-Pattern: Architecture complete before cost analysis revealing approach exceeds budget by 3x
⚠️ Wasted design effort and delayed delivery while team redesigns within budget constraints that were known from project start

Patterns

Where to lookWhat good looks like
AppExchange → Solution Evaluation
Analysis → TCO Comparison
✅ Pattern: Document generation solution evaluation: AppExchange option at $15 per user monthly ($18K annually for 100 users) versus custom development at $80K initial build + $15K annual maintenance
✅ AppExchange breaks even in 5 years with faster deployment and lower risk for commodity capability
AppExchange → Strategic vs Commodity
Architecture → Capability Classification
✅ Pattern: Commodity capabilities (document generation, e-signature, address enrichment) purchased from AppExchange where solutions are mature with strong reviews
✅ Proprietary pricing algorithm providing competitive advantage built custom with full control over roadmap and differentiation
Spreadsheet → 3-5 Year TCO Model
Analysis → Cost Projection
✅ Pattern: Build TCO models projecting 3-5 year total costs revealing complete investment picture beyond initial expenses
✅ AppExchange carries compounding annual subscription but includes maintenance; custom requires one-time development plus 15-20% annual maintenance
Integration Analysis → Custom vs Platform
TCO → Integration Comparison
✅ Pattern: Custom integration development: $150K initial build + $30K annual maintenance + team learning curve versus MuleSoft license: $75K annual + faster integration delivery
✅ MuleSoft provides reusable patterns across all integrations reducing per-integration cost as portfolio grows
Documentation → Build vs Buy ADR
Process → Evaluation Framework
✅ Pattern: Architecture Decision Record documents build vs buy evaluation with scoring matrix weighting strategic value, TCO, timeline, capability, and exit costs
✅ Creates audit trail for future reassessment when requirements evolve or vendor landscape changes

Anti-Patterns

Where to lookWhat bad looks like
Always Build → Wasted Development⚠️ Anti-Pattern: Building custom document generation solution because “we have developers available” without modeling 5-year TCO
⚠️ AppExchange delivers better value for commodity capability; custom development wastes capacity on undifferentiated functionality
Always Buy → Missing Differentiation⚠️ Anti-Pattern: Purchasing all capabilities from AppExchange including strategic differentiators because “faster to deploy”
⚠️ Competitors using same AppExchange solutions gain same capabilities eliminating competitive advantage from platform investment
Single Meeting Decision → No Analysis⚠️ Anti-Pattern: Build vs buy decision made in single meeting based on initial cost comparison without systematic evaluation or documentation
⚠️ Missing strategic value assessment, TCO projection, timeline requirements, capability evaluation, and exit cost analysis
Incomplete Cost Model → Hidden Costs⚠️ Anti-Pattern: Building custom integration because “we already have developers” without modeling 5-year maintenance burden
⚠️ Maintenance typically consumes 15-20% of initial development cost annually plus platform compatibility effort not visible in initial decision

Patterns

Where to lookWhat good looks like
Process → Strategic Value Assessment
Analysis → Differentiation Matrix
✅ Pattern: Systematize build vs buy decisions through consistent evaluation preventing ad-hoc decisions based on incomplete analysis
✅ Assess strategic value first: core competitive differentiators warrant custom investment; commodity capabilities favor purchasing proven solutions at lower total cost
AppExchange → Solution Maturity Review
Analysis → Vendor Stability Check
✅ Pattern: Evaluate available AppExchange options reviewing solution maturity, customer ratings, ISV stability, feature alignment, and pricing models
✅ Immature solutions with few customers carry higher risk; prioritize proven solutions with strong reviews and stable vendor financials
Spreadsheet → Sensitivity Analysis
TCO → Assumption Documentation
✅ Pattern: Model 3-5 year TCO for viable options including all cost categories: licenses/subscriptions, implementation effort, maintenance burden, enhancement development, platform compatibility
✅ Use spreadsheet enabling sensitivity analysis on assumptions showing how outcome changes if growth rates or utilization differs from projections
Timeline → Market Timing Analysis
Strategy → Time-to-Value Assessment
✅ Pattern: Assess timeline requirements showing custom development requires months to years depending on complexity while AppExchange deploys in weeks
✅ Market timing may drive buy decision despite higher long-term cost when competitive pressure or business opportunity requires immediate capability
Analysis → Exit Cost Evaluation
Risk → Vendor Lock-In Assessment
✅ Pattern: Evaluate exit costs and vendor concentration risk asking how difficult is switching if chosen option proves inadequate
✅ Consider vendor acquisition or discontinuation risk and solution portability if requirements change, preferring lower exit costs providing strategic flexibility
Capability → Honest Assessment
Team → Maintenance Capacity Review
✅ Pattern: Consider organizational capability honestly evaluating whether custom solutions can be maintained long-term
✅ Custom solutions require ongoing internal expertise for maintenance and evolution; organizations lacking this capability should purchase despite potentially higher cost

Anti-Patterns

Where to lookWhat bad looks like
No Framework → Inconsistent Decisions⚠️ Anti-Pattern: Build vs buy decisions vary by project team preferences without consistent evaluation criteria
⚠️ Some teams always build, others always buy, creating architectural inconsistency and suboptimal total investment across platform
Build Everything → Undifferentiated Effort⚠️ Anti-Pattern: Building everything custom because “we want control” without distinguishing between commodity capabilities and strategic differentiators
⚠️ Wastes development capacity on undifferentiated functionality that mature AppExchange solutions provide at lower total cost
Initial Cost Only → Incomplete Analysis⚠️ Anti-Pattern: Decision based solely on initial cost comparison: “AppExchange is $20K, custom build is $15K, so we’ll build”
⚠️ Missing 3-5 year TCO showing custom solution costs $15K initial + $3K annual maintenance while AppExchange includes all maintenance in subscription
Optimistic Capability → Failed Maintenance⚠️ Anti-Pattern: Choosing custom development assuming team can maintain solution despite no current capacity or expertise
⚠️ Technical debt accumulates as maintenance is deferred; solution eventually becomes unmaintainable requiring expensive replacement