Technical debt represents the additional effort required for subsequent rework due to opting for a quick solution over a more comprehensive approach during development. It aligns with the concept of “Shift Left,” emphasizing the cost-effectiveness of addressing issues early in the process.
In the realm of Salesforce, technical debt is an inevitable aspect, akin to a necessary evil. Repaying this debt is crucial to prevent the accrual of “interest” that could impede agility in the long run.
Traditionally associated with developers taking code shortcuts, the rise of low-code platforms like Salesforce has expanded the sources of technical debt to include configurations made through “clicks” in addition to code.
This guide recognizes that Salesforce technical debt often becomes substantial enough to involve architects, shedding light on how it has evolved into a collective concern.
Understanding Salesforce Technical Debt:
Technical debt arises from choosing expedient solutions (quickly built without a thorough understanding of business requirements) instead of more time-consuming, superior alternatives. It can also result from solutions initially designed to function in a specific way but require adjustments due to evolving business needs.
A comprehensive view of technical debt encompasses both code and declarative customizations, addressing instances where standard functionality was impractical or unavailable.
Considering everything as technical debt, the concept is labeled as such because it necessitates repayment. Levels of “interest” paid on this debt can be categorized:
- Low Interest (e.g., borrowing from family):
- 0.0% ARR
- Limited or no changes in projects
- No impact
- Medium Interest (e.g., car loan):
- 5% ARR
- Future projects affected by debt
- Increased development times
- High Interest (e.g., credit card):
- 29% ARR
- Impact on ongoing projects
- Extended development times
- Delays during refactoring projects
- Affects performance, potentially leading to release rollbacks
Excessive technical debt might compel a business to discard the entire Salesforce org and commence anew, resulting in the loss of years of investment.
Causes of Technical Debt:
Multiple factors contribute to the accumulation of technical debt in organizations:
- Changed or Outdated Design:
- Retaining unnecessary functionality due to changes in business needs.
- New Releases:
- Platform updates rendering prior features or custom developments obsolete.
- Deliberate Tech Debt:
- Intentional decisions to expedite development, acknowledging higher long-term costs.
- Accidental Tech Debt:
- Accumulation of shortcuts due to time constraints or concurrent work streams.
- Bolt-On Tech Debt:
- Incremental extensions and “bolted on” adjustments to maintain functionality without proper rebuilding.
Managing technical debt entails navigating the trade-off between “delayed gratification” and anticipating future costs.