If you have seen enough “summer thriller” movies – you find the pattern that makes them scary. Essentially, it’s seeing the clueless victim walk into a situation that seems safe but at any moment the monster/zombie/killer will jump out and attack.
Having seen many Salesforce implementations, I often find a similar pattern. Salesforce is an incredibly flexible platform, offering quick business value. But with this speed to value, incremental changes and customizations can turn into a hidden monster over time.
Many successful implementations have zombies behind the door, and here is my list of four prominent ones:
I have been shocked by the number of profiles in some Salesforce orgs. There is no technical problem with having a lot of active profiles, but the nightmare comes in the maintenance – especially when that superstar administrator leaves. The act of paring down the number of profiles is not fun, but can certainly pay off in freeing up precious administrator time and in lowering risk. It’s worth the exercise to look for redundancy and perhaps use permission sets to replace one-off profiles.
I love record types as much as anyone – they free us to make flexible business processes without the burden of maintaining entirely different objects. But like feeding gremlins after midnight, record types that were once warm and fuzzy can end up destroying your house. The record type and their cousin the page layout can be a heavy maintenance burden when you eventually need to do something as simple as adding a new field.
Adequate code coverage is kind of obvious, and Salesforce wisely asks us to maintain at least 75% in our production orgs. But more often than not I find myself logging into orgs with failed test classes and a coverage just scraping the minimum. Code coverage might be something you don’t think of as a daily risk, but where I have seen it bite people is when there needs to be a sudden migration of new code. The focus of a code migration should be the happiness and joy of the new functionality, not an after midnight nightmare of improving code coverage just to get the new code installed.
Total Lines of Code
I always tell people that coding vs. configuration of a Salesforce system is an economic decision. Simply put, the more lines of code the greater complexity. The greater the complexity the more you need skilled people readily available to maintain and extend your system. The Force.com platform has proven to be a very vibrant platform, but customizations should be weighed against the business value the system is giving you. If your org has 100,000 lines of code and you use it mainly to track your company’s softball roster, it’s probably a bad economic decision. Therefore, when looking at a Salesforce implementation I always like to see how much code has been written, and if it is worth the return giving the staffing and complexity it entails.
Ask any experienced Salesforce Administrator, and they will rattle off their own list of zombies. But the question is, how should an organization fight them? Here are three quick ideas:
- Make sure you have an Administrator who not only knows how to navigate and configure Salesforce, but is engaged in the wider community of Salesforce Admins (attend user groups, read the release notes, attend Dreamforce, and so on.) Also have them listen to Mike Gerholdt’s ButtonClick Admin Podcast.
- Check out Appirio’s Cloud Metrics offering. This report will give you a clear understanding of the complexity and risks in your org, and benchmark your statistics against hundreds of other orgs. If you have a mature org, you may want to inquire about our Health Check offering, which will give you a deeper analysis into how you can start giving your org better management.
- Make sure you have a solid governance plan. At Appirio, we include recommendations for developing a Salesforce Center of Excellence as a part of every Cloud Strategy Blueprint.
Like any good zombie movie, the undead lurkers in your Salesforce Org are never fully defeated. But with proper planning, analysis, and attention, you can keep your surprises in the movies, and not in your Salesforce implementation.