Scaling the Salesforce platform gives companies the room they need to accommodate business growth and meet ever-evolving customer requirements. But without the right process or the right tools, this endeavor can lead to a bevy of frustrating challenges and complexities. This post features 10 insights to help you scale with a DevOps approach and avoid common pitfalls that can impede your ability to leverage Salesforce’s capabilities. Get the best practices you need to efficiently manage a growing number of applications and projects, optimize the scaling experience and beyond!
Introducing sandboxes to your development process is a strategic first step for scaling Salesforce. Sandboxes isolate development, testing and production environments — allowing your developers to test and make changes in a safe, controlled environment before pushing them to production.
Embrace a Shift-Left Mentality to Ensure Functionality
As you introduce sandboxes, adopt a proactive "Shift Left" approach by organizing environments into a pipeline that prioritizes integration and testing before production. Implement rigorous testing (including unit and functional tests) across all stages of the pipeline. By identifying and addressing defects early in the process, you can enhance software reliability by ensuring that everything works as intended.
Leverage User Stories to Manage Changes & Elevate Quality
Leveraging user stories to track configuration and code modifications within your Salesforce environments enables you to establish a clear system of record. This traceability helps you detect potential issues earlier and empowers developers to test changes based on specific requirements. Ultimately, this approach elevates the overall quality assurance of your software.
Adding members to your delivery team makes it easier to manage an increased number of changes. Here are a few tips to optimize the process.
Set Up Personal Development Sandboxes
Isolating developers in their own personal environments allows them to make changes without impacting others. These dedicated environments enable quick changes and seamless testing without disrupting the work of others. Ultimately, isolating developers facilitates a faster feedback loop for managing frequent changes as you scale Salesforce.
Integrate with Version Control
For larger development teams, version control should serve as the authoritative source of truth. Version control helps you track code and configuration changes by providing clarity into who made the changes and why. Centralizing information allows effective change management and rollback capabilities (when necessary). Automating version control activities makes your DevOps process more accessible to the entire team — regardless of their technical skills.
Unify Across Tools and Processes
The typical Salesforce team features a blend of both pro-coders and low-coders. To accommodate both skill sets and boost efficiency, you need to adopt tools and processes that cater to every user. Low-code platforms are ideal for quick developer onboarding, while pro-code tools provide advanced functionality and more control for complex projects. Aligning your team on a standardized, user-friendly process enables you to streamline communication and facilitate the entire DevOps process with end-to-end visibility.
Companies often start their Salesforce journey with Sales Cloud and Service Cloud — before gradually adding Commerce Cloud, Marketing Cloud and ancillary solutions from the AppExchange. As a result, they end up managing multiple apps, including custom ones they built themselves. While each cloud and app offers basic capabilities in a protected package, changes made to enhance functionality can accumulate over time, leading to a growing pile of technical debt. To reduce complexity, scaling development across multiple apps that share the same core objects is crucial.
Use Permission Set Groups
With permission set groups, developers can grant different permissions based on user roles. This minimizes the complexity of maintaining individual sets of permissions for each app. By creating and managing permission sets within a group, you can apply them to multiple profiles and ensure consistency across all your applications.
Organize Apps and Packages
To enhance visibility into app customization changes, organize your apps into packages. For ISV apps and small homegrown apps, use unlocked second-generation packages for easy change identification and removal if needed. For large homegrown apps with shared libraries, use locked packages to prevent changes to the shared library from accidentally impacting dependent apps.
For a more detailed breakdown, check out the full guide.
One production org is often enough to meet the needs of smaller organizations and simple deployments. But as complexity and scale increases, a single org can turn into a bottleneck. By transitioning to multiple production orgs, teams can work in parallel, reduce risk and release updates more independently. Each production org can be dedicated to specific business units, regions or applications to help you isolate data and configurations and manage your Salesforce ecosystem with ease.
Manage Common Features
Core applications account for 80-90% of functionality in a multi-org setup. To manage shared features across pipelines, centralize them in a core locked package that can be installed and updated across production orgs to protect shared libraries from unmanaged changes.
Manage the core locked package within a dedicated packaging pipeline that feeds into a packaging org instead of production. In this org, new package versions are created, tested and installed across other production orgs. This ensures a controlled and synchronized deployment of core features throughout the entire organization.
Navigate Unique Requirements
Beyond core features, each region or business unit has unique requirements. To manage these differences, create a dedicated pipeline for each region or business unit. These pipelines operate alongside the core application’s updates and handle specific changes for each unit. With dedicated pipelines, organizations can effectively manage changes that are specific to regions, business units, or applications.
Automate Your Process & Safeguard Sensitive Data
An increasing number of pipelines leads to rising complexity and risk. Automating as much as possible can give you peace of mind that changes are being managed efficiently — freeing up your release managers to handle more critical tasks. Automated processes reduce manual effort and minimize the risk of errors via continuous integration, automated testing and deployment pipelines.
Leveraging a governance org and anonymizing test data is another way to reduce risk. By limiting the number of users who need access to sensitive data, you can significantly reduce the risk of data breaches and ensure compliance with data privacy regulations.
Scaling your Salesforce implementation can be a daunting task with complex and risky consequences. But here’s the good news — a well-structured approach with the right tools in place makes the process a piece of cake. From sandboxes and user stories to version control and automation, there are plenty of powerful ways to scale your Salesforce development practice and drive innovation without growing pains.
Interested in learning more? Read the complete guide here.