How To Tackle TechnicalDebt
Ingo Fochler, Success Architect
Marc Braga, Program Architect1Introduction

2

Introduction

3

Housekeeping
Everybody is on mute
Ask questions in the GoToWebinar ‘Q&A’ tab - we will try to answer them throughout thewebinar
Follow-Up:● Recording● PDF of deck
● All questions with answers

4Agenda● What is Technical Debt in Context of Salesforce● What's the Impact of Technical Debt? What's the ROI?
● Common Symptoms of Technical Debt
● How Does it Happen?
● Strategies to Control Technical Debt•••

Know YOUR Enemy
How to Clean Up Existing Technical Debt
How to Avoid Creation of Technical Debt

● Customer Story: AAA5

What is Technical Debt
Technical Debt = Liability incurred due to poor code quality and/or sub-optimal solution
design that is expedient in the short term but costly to maintain and support in the future.
It’s just a reality - every customer has it!!
The question is: What impact does it currently have and what are you doing to manage it?
Over time, unchecked technical debt will ensure that complex orgs will provide less and less ROI:
● End up become shelf-ware/attrite and/or● Need ‘re-implementation’ in new org
So, pay now a little or pay a lot more later!!!

6Technical Debt in the context of Salesforce
Extensive Customization

Inordinate Configurations

Poor Customization Quality

Apex classes, VF pages, triggers, workflow rules,
validation rules, custom objects and fields

Custom Report types, Dashboards, Emailtemplates, Content libraries, public list views

not in accordance with SFDC best practices.
(multiple triggers on objects, anti-patterns)

Business Impact

Technical Issues•

Scalability Constraints•

Performance Degradation•Governor limit issues•

Incompatibility with 3rd party
apps

Lower Value Realization

Higher TCO•

Inability to quickly adapt tobusiness changes•

High maintenance andoperational costs•

Poor user experience andadoption•

Increased implementation
costs due to system complexity•

Reduced ability to benefit fromnew and innovative platform
features and partner apps
7

Common Symptoms
●
●
●
●
●
●
●
●
●

Do your users frequently complain about the application usability and user experience?
Is your Salesforce org becoming difficult to manage/administer?
Are your Salesforce code deployments are taking longer than they used to?
Do you run into performance issues and errors?
Release notes are irrelevant since not many standard features are used?
Is it becoming more difficult to troubleshoot issues?
Have you looked at a customization (e.g. custom field) and you don’t know what it’s for?
Do you frequently run into governor limit issues?
You can’t remember what’s in the sidebar since it hasn’t been useful for years

8Lightning Experience Migration● Technical debt makes it difficult to benefit from new features● The nature of the move to Lightning Experience highlights this issue even more
● Lightning migration issues due to technical debt:••••

Attachments vs Files
JavaScript buttons vs Custom Actions
Customizable Forecasting vs Collaborative Forecastingetc.

● You forfeit benefitting from our innovation pipeline (mainly Lightning Experience) by stayingon Classic:
••
•
•
•
•
•
•
•

Kanban view
Lightning Apps (utility bar, console view on any app)
Lightning App Builder with dynamic components
Calendar Anything
Macros anywhere
Customizable campaign influence
Almost anything Einstein
Org Themesetc. etc. etc.

9How Does it Happen?
So Many Sneaky Ways…..
●
●
●
●
●
●
●
●
●

It’s easy on our platform to customize, no?
‘Clean-up’ is not a sexy word for admins, developers and decision makers
If I’m a hammer (e.g. developer), everything is a nail (e.g. Apex trigger)
Lack of Knowledge of standard Salesforce features and poor understanding of Salesforce
design principles and architectural best practices (anti-patterns)
Broken down development process (no ‘negotiation’ of requirements)/lack of governance“Why fix it if it is not broken” mindset
Project delivery pressures – quick and easy solutions to meet the deadlines
Tendency to build instead of buy
Custom solutions implemented to fill capability/feature gap are never retired

10Strategies to Control Technical Debt

11

Overview: Strategy to Control Technical Debt

3 Pronged Approach:● Know your enemy - ensure you know your technical debt••

Where do you have technical debt
Not all Technical Debt is created equal - which areas are causing problems● Clean up existing technical debt•••Make it a priority - get budget/time for tackling technical debt
Create road map for clean-up focusing on high-impact areas first
Keep chipping away over time

● Avoid creation of technical debt•

What is the reason for this technical debt? FIX IT!
• Processes• Philosophy• Technology• Knowledge
12Know Your Technical Debt - Tools
Need to analyze where your technical debt is hidden - use free tools:▪ Optimizer▪ Lightning Readiness Assessment▪ SFToolKit• Org Doctor• Schema Lister• Code Scanner▪ Field Trip
▪ Config Workbook▪ Salesforce IDE to find dependencies▪ PermComparator▪ Schema Surfer▪ Salesforce Code Scanner13

Where is Your Technical Debt - Accelerators● Another option are Accelerators•••

Salesforce Expert Resources
Best Practices
Personalized Recommendations● Accelerators (Premier or Signature Customers)
••
•
•
•

Org HealthCustom Field Cleanup
Process Automation
Codebase Health (Signature only)
Access Controls

14Not all Technical Debt is created Equal
Need for Prioritization:● Not all technical debt is created equal - which areas cost the most?
••••Lower usage
Inability to innovate
Slowing down development
etc...

● Listen to your stakeholders:••••Complaints from users, especially power users (e.g. usability of page layouts with 100s of fields) FOCUS!
Complaints from admins (e.g. maintenance of 100s of sharing rules)
Complaints from developers (e.g. scalability)
WARNING: If you don’t know better, you accept certain things as unchangeable● Limits/Performance issues••

Often limits are the last guard rails to force you to act on it
Gacks, errors, etc.
15

Clean-Up - Business Goals
Define business goals for your clean-up project:● Direct User Impact••••Higher adoption
Higher mobile useImprove efficiency (e.g. quicker data entry)
Performance improvements● Administrative••

Manageability (e.g. sharing rules, profiles, etc)
Efficiency improvements● Development••

Reduce deployment risks
Trigger/Query/etc. performance

Develop clean-up road map based on business impact and effort to fix:
● Only high-value items should be a separate project● A lot of ‘smaller’ technical debt can be retired over time by changing mind-set:••Upgrade API version, missing test classes or comments in APEX
Add descriptions to custom fields, workflows, etc16Clean-Up - How to Start● What should the end-state be?
● Redesign needed or just clean-up?
•E.g. Territory Management vs custom sharing rules● Define future policies to ensure you’re not in the same situation in 2 years••

What criteria warrant a new profile vs perm set?
What criteria warrant a new custom field?

● What and how to tackle depends on what areas should get cleaned up
•••
••
•
•
•
•

Tab consolidation
Profile consolidation
Sharing rule consolidation
Custom field deletion
Page layout clean-up
Role consolidationTriggers consolidation
Reports archivingetc.

● Make it a yearly activity!!!

17

Breaking the Cycle
Root cause analysis on why you piled up the technical debt in the first place:●●●●

Broken processes (change management, Agile, etc.)
Philosophy (custom-first, built vs buy)
Lack of knowledge (Salesforce standard features, road map, etc.)
Technical gaps (tools)

FIX IT so you’re setup for success long-term

18

Broken Processes● Establish strong governance model and enforce it with rigor●●●Clear segregation of administrative duties between IT and business
YET shared responsibility between IT and Business teams!
Ensure corporate road map guides priorities and not a squeaky wheel● Establish change management process to be able to know the who/why of each change - soyou know what you clean up in a few years!
● Establish development CoE●●●

Implement Agile(ish) development process
Ensure grooming of user stories is a friendly give and take between requirements (business) andIT (solution options) - technical debt gets added/subtracted in every user story!!
Develop Coding Standards•••

Point/click and custom code best practices to avoid design anti-patterns and consistency
Especially important if you work with consultants
Great template19

Philosophy
Standard-first approach:● Evaluate standard solutions first, then customize on top WHILE meeting requirements● Keep it simple, manageable and scalable● Why you’re not a special snowflake:• Benefit from innovation machine• Scalable (usually) + best practice• Value of AppExchange• Optimize Initial and Ongoing Implementation Investment● BUT: Sometimes custom IS the way to go (good post) - just know the hidden costs, clearly articulate
the trade-offs and plan for the technical debt!

Built vs Buy:
● Outsource technical debt - don’t built if you can buy
Technical Debt is everybody’s responsibility:● You see something not adhering to your Coding Standards, fix it!
20Knowledge
Or Lack Thereof

Knowledge of Salesforce Standard Features● Large customers use less than 50% of standard features(my experience) - often for lack of knowledge● Learn, learn, learn - it’s tough to keep up with ourinnovation•••••

TrailheadCertify as many resources as possible
Focus to learn new release notes
Use and abuse our resources (SM, accelerators)
Get engaged with the community (Success Community,Dreamforce, User groups, World Tours, etc.)● What’s possible/best practice is rapidly changing - what
was the correct decision 2 months ago might be the wrong
one now!
21Knowledge - Salesforce Road Map● Become knowledgeable with our road map•••••

Review major projects where customization might be necessary with success team to evaluate if amissing feature might be on our road map
If scale customer, leverage Customer Community - product managers are usually very active on it!
Evaluate if upcoming feature and time line might work to avoid customization
Join pilots, betas, etc.
Program architects work very closely with product management!

22

How We Could Help - Options
Please contact your SM/AE to provide guidance on how we could assist:Accelerators (Premier or Signature Customers)
••
•
•
•

Org Health
Custom Field Cleanup
Process Automation
Codebase Health (Signature only)
Access Controls

Services Engagement•Have proven strategies and resources to tackle your technical debt for you

Program Architect•Senior architect to provide guidance and expertise to help you tackle your debt
23

AAA Customer Story
Marc Braga, Program Architect

24Digital DNA❖❖❖❖❖

Driving Digital Relevance

Consolidated 14 systems into 1
Re-imagined car-buying experience
Align Technology Stack
Continuous Integration
Customer feedback & iterations

Path Forward

Challenges

❖
❖
❖
❖
❖

Craft Vision 360° Member
Future State Definition
Transformational Roadmap
Business Value Propositions
Governance❖ Capability Gap Analysis❖ Siloed Lines of Business❖ Roadmap & Alignment
to definition of SuccessGetting to know AAA❖❖❖❖

300%
Increase in member
engagement

Business Strategy & Metrics
Customer LIfe Cycles
Capability Map
Current State Definition
25

Summary● Technical debt is a reality - pay now a little bit or a lot later!!!
● Keep it simple, manageable and scalable and ensure everybody knows thetrade-offs for customizations● Know your technical debt and why you have it● Focus on high-value clean-up and clean-up the rest over time organically● A clean org is a team sport - see something, do something!
● Have the ‘correct’ baseline philosophy - standard first● Leverage Customer Success Group resources and the community● Strong AND Collaborative Center of Excellence is key● Knowledge is power/ROI - know what Salesforce has to offer!

26

27