Sign up for weekly AppOps insights.
Sign up for weekly AppOps insights.
How to Apply Agile Software Development to your CRM
VP of Marketing
Customer relationship management (CRM) platforms are the heart and soul of today’s enterprise. For many companies, Salesforce is the single source of truth for managing sales pipeline, existing and churned customer accounts, and all other revenue-based operations.
But like most out-of-the-box software, Salesforce needs to be right-sized to the specific and unique needs of each business and team that uses it, requiring ongoing (and sometimes expensive) customizations and development of additional features.
Despite dominating the CRM market, many companies still approach implementing new Salesforce features more like tinkering with spreadsheets than as the complex set of software it is. In many cases, that means having a coordinated IT effort to manage initial deployment and general support, while leaving Salesforce administrators to deal with new features on their own—leading, predictably, to degrading implementations, time-consuming fixes, and unpredictable performance and availability for users who need the software the most.
In response, Salesforce admins and IT teams are beginning to work together to implement an agile development methodology in their Salesforce environment to mirror the operations—and benefits—of their other software efforts to deliver more consistent, reliable, and error-free features and applications.
Agile software development is a philosophy and methodologies based on tight feedback cycles and continuous improvement. Unlike more sequential methodologies that require teams to fully develop and deploy software before going back and troubleshooting, agile is an iterative process in which teams deliver work in small, but consumable, increments.
In agile, everything is evaluated continuously and incrementally, making it easier for teams to respond to change quickly while minimizing critical errors—perfect for Salesforce administrators and operations teams. Even though they’re not often software developers, Salesforce admins are still tasked with managing development efforts as though they were, which means they have to have specific structure, guidance, and release policies in place.
When applied to Salesforce, agile can break down operational silos through better communication and collaboration between teams that can help eliminate many of the most costly errors and delays to bring greater value to your organization faster. Here are six key steps to properly and seamlessly applying agile to your Salesforce CRM management practices.
6 Agile Principles and Best Practices to Apply to Salesforce
1. Establish a Process for Merging Changes
Salesforce admins, upon trying out new features in scratch orgs or sandboxes, may rush to roll them out while omitting testing, peer review, and quality assurance. Agile can help preserve critical development steps and enable the rapid delivery your teams demand—if you adhere to the process of merging changes from multiple environments.
First, take inventory of all of your available Salesforce orgs. Apart from the production org, you may have a Full Copy sandbox, a couple of Partial Copy sandboxes, and several Dev Pro sandboxes, along with the ability to create scratch orgs via DX. Then establish a role for each in the overall delivery pipeline structure.
The workflow might look like this: Have one Dev Pro sandbox for each team member to configure initial changes. Then merge to a Partial Copy shared by the team to ensure it works with all the other changes in that release. From there, you can promote changes to a Full Copy Staging environment for user acceptance and training and then put it into production. Each stage gives Salesforce admins the opportunity to review changes for conflicts or errors and pull in IT resources as needed for additional support before rolling the changes out to end users.
2. Break Continuous Work into Sprints
Break work into time-boxed sprints so you can release smaller sets of changes on a more frequent basis. Short sprints, which are at the heart of agile framework, help your team ship high-quality software with fewer headaches.
With agile you build the product with small changes in a series of iterations called “sprints,” delivering complex projects in bite-size increments. Instead of waiting to release whole new functionality, deliver working improvements frequently and regularly—usually in 2 week timelines. This helps to minimize bugs and provides more frequent feedback opportunities to allow for quicker problem fixes and responses to change.
3. Establish a Process for Accepting New Feature Requests
Many teams prioritize changes or new feature requests by which requestor screams the loudest or has the most seniority. But instead of reacting to each request as it comes and trying to figure out when or how to squeeze it in, agile puts new feature requests in a backlog—a list of to-do items and tasks—where they get prioritized based on a well defined process. The team collaboratively pulls new features from the backlog during the sprint planning. With the best estimates for each team member’s capacity, the team can commit to the amount of work chosen and successfully deliver it by the end of the sprint. This gives the business a clear idea of what to expect at the end of the sprint.
This approach has many advantages such as providing business with a clear process for requesting new features without the fear of interrupting the current development flow. The team responsible for implementation will always act out of the priority in the backlog as opposed to reacting to new feature requests immediately.
4. Communicate the Plan Across the Business
By and large, agile is more a mindset and philosophy than it is a technology. But to be successful, that philosophy needs to be shared by the whole organization. Sharing the release process for CRM changes, publishing a standard release schedule or cadence (e.g. push to production occurs every other Thursday evening), and standardizing change request processes gives clarity and visibility for everyone in the company that uses the CRM regularly or needs particular features and functionality.
For a successful shift to agile, the whole company must buy in, so it’s important to emphasize the benefits to the business:
- Frequent incremental improvements to the CRM without making the business wait for the big release
- Fewer bugs and impacts to end users
- Prioritization of the most important features to the business
- Shorter response times to feature requests
5. Implement Automation to Promote Changes and Drive Testing
Manual configurations and deployments increase the chance of inconsistencies between different environments in the release path. Automating the deployment process to both promote changes through the release path and continually sync lower level orgs with production greatly reduces the possibility of bugs slipping into your CRM from manual processes.
Setting up Continuous Integration and Delivery (CI/CD in software terms) will save your team time and effort in the long run. It will allow org owners and administrators to quickly and safely move the newly developed functionality up the release pipeline for faster time to value and far fewer problems.
6. Adopt Version Control to Track Changes in CRM
A version control system (VCS), the term originally coined in the Software Engineering realm, is a system for tracking any set of software, including the date of the change, a full revision history, and the owner of each revision. Salesforce admins can gain the same level of tracking for changes to Salesforce by using a release management automation solutions with built-in version control solution integrations. This allows admins to effortlessly track every configuration change and easily rollback a change in case of failure without IT intervention.
These tools make it easier to view and manage all of your configuration data and metadata from a single location and easily resolve conflicts if multiple users are working on the same data. It also mitigates data loading and simplifies workflows between user stories and sandbox deployments to dramatically improve your time to market with increased release velocity.
Agile for “Clicks, Not Code”
Salesforce end users—sales teams, marketing, and other customer facing roles—will continue driving the demand for customized CRM features as their customers’ demands change and the business at large evolves. Salesforce admins and operations teams can take advantage of low-code apps and automated AppOps solutions to implement agile practices usually reserved for software teams into their Salesforce release management efforts.
Now, Salesforce teams can work independently with a simple way to manage changes to Salesforce with the same change management rigor developers apply to traditional software development. They can automatically maintain an audit trail of every change and seamlessly deploy data and metadata across different orgs to continuously implement, test, train, and release Salesforce changes faster, more efficiently, and with fewer errors than ever.