What is technical debt, and how can you avoid it in Salesforce?
What is technical debt?
The easiest explanation is that hardware, software, or technical processes you implement now may not work in the future. This can manifest in many ways. When you're under pressure to put something together quickly, this can result in bugs that will take a lot of time to fix (possibly more time than doing it correctly the first time). Technical debt can also manifest when you move information over from a legacy system, or it can be something that needs to be fixed with better documentation to help user adoption or ensure people use the tools correctly.
Overall, companies try to avoid technical debt so that there isn't time or money wasted to fix, or completely redo, larger projects that have already finished.
Why is it so easy to have?
It should be pointed out that technical debt doesn't equal "bad." Like regular debt, sometimes it's necessary to accomplish what you need, like buy a house or car. Most technical debt is accrued when companies are smaller, and they start seeing the effects as they start scaling. Here are just some ways your company can create technical debt:
- Technology is advancing exponentially
Think of the childhood videos you had on VHS, or information stored on floppy discs. The items you originally stored were probably important or sentimental at the time. But if you want to keep that data you have to move it over to DVDs or CDs, and then over to Blu-rays, and now you probably don't even own a physical version — you save items directly to the cloud.
It almost seems inevitable that you can be left behind in at least one aspect of your company (software you use, servers, security protocol, moving your company from an office to remote, etc.).
- It's hard to plan for everything in the future
When technology is changing so rapidly, it's hard to even know what the future holds, let alone prepare for it. Again, this can be related to the physical hardware or software, but that can also be about processes. How your company functions and communicates as a team of 10 will be very different from a team of 100. Trying to find software or processes that work for all stages of your company (or can change easily) is difficult.
- Different employee styles
Each department leader and Salesforce® Admin will have different preferences. How one Admin set up a Flow may be different from how the next Admin would want to set it up. When there's employee turnover, it can be hard to catch up on what previous employees were doing. Or, new department heads might have completely different priorities that aren't related to a certain project at all, and all that work is scrapped.
- Tight deadlines
It's bound to happen eventually — you have a deadline to implement a new system, and to meet that deadline you have to cut something out. You can save time by not researching all of the alternatives (or negatives) of a system, but it could mean building something quickly while sacrificing on quality, or you're so deep in the project you're missing things out at the 20,000 foot level and need to take a step back.
How can you avoid technical debt?
- Start working on Salesforce updates early
Salesforce has pushed big changes in the last few years — moving Process Builder and Workflow rules to Flows, as well as transitioning users over to Lightning and enforcing Multi-Factor Authentication. Salesforce tries to give companies plenty of notice (usually months or even years!) before these changes because they know they're difficult to implement and usually require cooperation with multiple departments or users.
Similarly, you should try warning your users of these changes ahead of time, and start making small increments so it's easy to adjust. It's much easier to move your home videos from VHS to DVD to your hard drive than trying to put your VHS tape straight to the cloud.
Also give plenty of time for testing and questions. Don't wait until the last minute to get updates done. Add time for answering questions and resolving issues that can come with updates.
- Actually plan for the future, or at least know what will need to be changed in the future
As mentioned earlier, many people don't do their due diligence when researching changes. It's hard for a 50-person company to visualize what their needs will be or how the company will be set up with 250 people, but you should still think about it before agreeing on a way forward.
You may also know that your current set up is temporary, and that's fine too. Knowing what will or won't work for different scenarios will make it faster to change to better-suited systems. You could even document exactly when this change needs to happen and get leadership approvals to kick off the process early instead of when you're already behind.
- Rely on the AppExchange for gaps
Partners can build Salesforce improvements so you don't have to. The AppExchange helps companies fill some of the gaps in Salesforce like backups, software integration, pre-built dashboards, and more. Plus, you get support from the app instead of maintaining it yourself as well. This can save your company a lot of time and resources.
With Salesforce being a large company and ecosystem, in some ways it both heightens and lowers your risk of technical debt. If your company heavily relies on Salesforce, every little change they make will have a big impact. But, with their wide net of partners and community members, you can find solutions to your problems quickly and easily.
|Simple Solutions for Complex Salesforce Data Quality Issues||Passage Technology Blog||Ask PT About Listing the Primary Contact on the Account Page in Salesforce|