When technical debt in Salesforce accumulates and diminishes the platform’s capabilities, the total cost of ownership increases and reduces the value of investing in Salesforce. What do Salesforce owners need to know about the impact of technical debt on Total cost of ownership?
The total cost of ownership (TCO) for Salesforce refers to the overall long-term cost of owning the platform. It includes expenses for the implementation and management of the software throughout its lifecycle, and expenses for hiring skilled staff such as developers and IT personnel, hardware, licenses and renewal fees, security, onboarding users, and training.
What is Technical Debt?
Technical debt is the result of adding customizations or processes for the needs of one department or to solve one specific issue instead of strategically addressing the needs of the organization as a whole. While a little technical debt is acceptable, when debt builds up in platform, the system becomes more complex and the performance of the platform slows down.
When more complexity is added to the system without addressing technical debt, the more the system slows down, and platform stops being a powerful CRM. Technical debt is also known as design debt or tech debt.
Salesforce Technical Debt
Salesforce Technical debt used to be a developer’s problem, When taking shortcuts with code without understanding the platform. However, Salesforce is a low code platform but technical debt now appears as a result of clicks and as well as code. In Salesforce technical debt extends beyond the code and includes overlapping processes, multiple automation with workflow, to many process builders on single object, and to many custom fields with a wrong relationship which may cause row lock errors.
Technical debt occurs when coding or customization decisions are made with time, budget, and simplicity as the priority, instead of planning strategically to address the needs of the entire organization. When changes are made to Salesforce based on the needs of individual departments or to resolve issues as they occur, the technical debt continues building up.
You might hear about Salesforce issues like SOQL 101 errors, Too many DML issues, CPU time limits, and Row locks due to that you are not able to extend the Salesforce implementation. In short Tech, Debt is the Silent killer of your org. Let’s learn about the impact of Salesforce Technical Debt on the Total Cost of Ownership (TCO).
How Does Technical Debt Affect TCO?
The more technical debt accumulates in Salesforce, the more organizations will spend addressing issues with the platform instead of supporting customers and developing revenue opportunities. What is the impact of technical debt on Salesforce?
1. Increases Total Cost of Ownership
Technical debt has a major impact on the TCO and the return on investment (ROI) organizations envision when purchasing the platform. Adding customizations to Salesforce increases the TCO because of not only the cost to develop the customization, but also the cost to maintain it.
Often when technical debt accumulates, the system becomes more complex, with overlapping customizations and processes. As a result, the system begins to break down and organizations are required to spend more time, money, and resources to fix Salesforce, adding further to the TCO.
2. Reduces the Value of Salesforce
Organizations purchase Salesforce because it’s a powerful platform offering tools for customer relationship management. However, to get the most value from a Salesforce investment, organizations need to be using the platform for sales and marketing campaigns, engaging and supporting customers, collaborating, and gaining data insights.
Instead, technical debt results in unplanned downtimes and fixes, tasks that are time-consuming and complex, and an inability to introduce new features or technology that would help organizations stay innovative and agile. When organizations aren’t using Salesforce as they originally intended, the investment in the technology is wasted.
3. Loss of Revenue
Technical debt in Salesforce can limit an organization’s ability to remain agile and respond to market changes, or disruptions like the pandemic. Organizations stop being competitive when they need to spend large amounts of time and resources fixing problems in Salesforce instead of closing sales and winning new customers. Technical debt prevents organizations from delivering high-quality products and services leading to a loss of revenue.
4. Saving the Total Cost of Ownership
A little bit of technical debt in Salesforce is acceptable, but a build-up of debt can have a major impact on the TCO. The more technical debt accumulates, the less ROI organizations receive from their Salesforce investment.
Examples of Salesforce Technical Debt
So in the context of Salesforce, technical debt will typically mean any of these things:
- Poor code quality: Writing the Apex code multiple times rather than consolidating in a shared helper, or hard-coded variables rather than custom metadata, Writing SOQL and DML inside the for loop. Poor unit tests written to meet only code coverage rather than actually assert a valid result.
- Duplicate component: different styles of approvals for similar business processes, or multiple email templates for essentially the same communication
- Click and Code Together: To much automation on single object with workflow, process builder and Trigger will lot of code recursion issues. Creating a new custom object rather than tweaking the requirement to use standard objects. Hard-coded references in your configuration or code.
- Redundant cruft: having unused packages, inactive workflows, half-built validation rules, never-executed code, and remnants of proofs-of-concepts and prototypes may kill you org over the time.
- No Framework. Writing multiple trigger on single object and to many salesforce flow on single object.
- Not scalable : Solutions that are not scalable, leverageable, or easy to maintain.
How to resolve the Salesforce Technical Debt?
Let see how you can take a deep dive look on technical debt in your Salesforce Org. The conventional wisdom is that technical debt is caused by too many customizations.
1. Governance Model required in SF Projects
Salesforce has promoted the concept of a Center of Excellence (CoE) for years as part of the overall governance body. The importance of introducing a process to validate the design of key user stories should not be underestimated.
Setup the Salesforce COE or Design Authority which will look like below. It will help you with A good level of standardization in the design process.
We should define and implementing a Salesforce governance model and Governance at scale.
2. Have a Strategy
Next step to resolve the technical debt is to have a right strategy. Having the discipline to be aware of the design choices you’re making, and to track the debt as you become aware of it. Here are some step we can follow.
- Make your product owner responsible. It is important that the debt is owned by someone with long term goals beyond the release.
- Include Architect. Having a Technical Architect in project is every important for any project. A good architect always think about bigger picture, think Strategically and communicate effectively.
- Assign and track cost. The cost is the effort required to remove the debt, and will typically increase with every incremental change made on top of the imperfect configuration; that is, every release that passes without repaying the debt increases it.
- The the big Pictures. Value is the gain to be made from fixing the debt. This may be a business impact of increased usability or better adoption, or it may be technical value in increased velocity, improved agility or reduced support costs.
3. Create backlog
Most of the Salesforce implementations are following Pro methodology, especially using the most powerful framework ‘Scrum’. To avoid being overwhelmed, it’s important to create a backlog. This can be captured like you do it by creating user stories that list the specific areas that need to be addressed. In order to get a holistic overview. Invest in improvements technical debt alongside new delivery.
4. Prioritize the clean-up
We always focus on developing new features but forget to resolve the technical debt. So it is very important to prioritize your technical backlog and create a plan to clean up. Some little technical debt is acceptable but make a loss of all high-priority debt builds up in the platform which may introduce the performance of the platform slows down. So make some space for technical debt in your sprint planning and development.
Most effective delivery teams spend 20 to 30% of their time on long-term improvements to the solution.
The image is taken from an Apex hours session on “Agile in Salesforce“.
5. Click Vs Code
You might have heard clients complaining about ending up with 80% of their functionalities custom developed instead of the promised 20%. Focus on out-of-the-box functionality and tool for automation. Drive the productivity of your business and transform complex processes into apps with Lightning Flow and OmniStudio. Will developing anything on the platform keep the following point in mind for Click vs Code?
- Availability of Options without Code
- Governor Limits
- Long-Lasting Maintenance
- Business Need
- User Impact & Adoption
There are many advantages to leveraging an AppExchange app versus building a custom solution in Salesforce. So always consider the build Vs Buy as well.
6. Documentation
Code quality are important for any Salesforce Enterprise implementation. Before getting started with Salesforce Development it is every important to document the best practices and code standard. This document checklist will help how a customer, Project manager, administrator and developer make sure whether the code written for their uses are followed Apex coding standard as well as avoid vulnerabilities Security issues.
7. Setup Code review process
Code review is a software quality assurance process. It can be manually by a team or by using an automated code review tool. The motive is to find bugs, resolve errors, and improving code quality. Check this session to learn about code review in Salesforce.
8. Use Strong patterns
Good patterns avoids the unhealthy divergence that happens when the same thing is built multiple times in different ways by people who don’t talk regularly. So it highly recommended to follow design patterns in Salesforce.
- Trigger Framework in Salesforce
- Apex Enterprise pattern
- Design pattern and best practices for lightning flow.
9. Use Salesforce Health check tools
Frequency of performing Salesforce org health checks on your org to ensure scalability of the system. The Heath Check tools scans your instance of Salesforce and compares your security settings & Salesforce Code to that of the Salesforce Industry standard. Check this post to learn about Tools to check Salesforce Org Health.
- Salesforce Health Checker
- Salesforce Optimizer
- Apex PMD Tool
- Checkmarx Apex Code Scanner
- Salesforce Accelerator
10. Connect with Salesforce Consulting partner
A Salesforce Consulting Partner has the expertise and experience to help your organization develop a strategy for tackling technical debt. They can provide guidance on reducing debt, cleaning data, and optimizing Salesforce to get the most value from the platform.
Bonus
I did not include the Salesforce test automation in this list but that is also very important past of resolving the technical debt. Check out the our CTA Playlist YouTube, and don’t forget to subscribe to our channel, so that you’re notified right away when a new video is available
Summary
No system in use is completely free of technical debt, since no single technology or process is completely future-proofed. But can use some technical dept best practices to put that in under control. Not all technical debt are the same, so all technical debt require a different plan of attack. Through regular process for code review and maintenance can help us to make technical debt manageable.