Agile Salesforce development enables low-code/no code admins and IT teams to deliver more consistent, reliable, and error-free features and applications in their Salesforce instances. But how do you apply agile in the powerful Salesforce CRM platform? Here, we examine six best practices you can implement to achieve agile change management in Salesforce.
Adhere to the agile process of merging changes from multiple environments before deploying them up the release pipeline. You’ll preserve critical development steps and facilitate the rapid delivery your users demand.
Many Salesforce admins rush to push changes from their development environment to production—forgetting to test, review, and QA these changes. And that all too often results in bugs in production—which in turn can have a negative impact on sales.
To establish a robust process for merging changes in Salesforce, begin by taking inventory of all your available orgs. In addition to production, you might have a Full Copy sandbox, a couple of Partial Copy sandboxes, and several Developer sandboxes, along with the ability to create scratch orgs via DX or a third-party app like Prodly.
After taking inventory, establish a role for each environment in the overall delivery pipeline.
The workflow might look like this: Have one Developer sandbox or scratch org for each team member to configure and test their initial changes. After integrating the new configuration, merge the changes to a Partial Copy that the team shares to ensure the build works with all the other changes in that release.
From there, promote the changes to a Full Copy sandbox that you use as a staging environment for UAT before promoting them to production. Each pipeline stage gives you the opportunity to review your changes for conflicts and errors. If you find any you can’t resolve, you can pull in IT resources as needed for additional support before rolling the changes out to end users.
Break work up into sprints so you can release smaller sets of changes on a more frequent basis. A sprint—originally referred to in agile as “iteration”—is a period of time during which you develop a change or feature. Using sprints, you can deliver complex projects in bite-sized increments.
Short sprints, which are at the heart of agile framework, help you ship high-quality apps with fewer headaches. Instead of waiting to release a whole new functionality in one go, you deliver working improvements frequently and regularly—usually in two-week timelines. This helps minimize bugs and provides more frequent feedback opportunities that facilitate faster changes and quicker fixes.
With agile Salesforce development, you put new feature requests in a backlog—a list of to-do items—where they get prioritized based on well-defined criteria. During sprint planning, your team collaboratively pulls new features from the backlog to work on based on careful estimates regarding each person’s capacity.
By doing so, you can commit to the amount of work you take on and successfully deliver the new builds by the end of the sprint. Consequently, the business gains a clear idea of what to expect at the end of the sprint.
This approach has many advantages. One main benefit is that it gives the business a clear process for requesting new features without interrupting your current development flow. Why? Because you always act according to the priority in the backlog as opposed to reacting to new feature requests immediately.
Agile is a mindset and philosophy. And to be successful, the whole organization needs to subscribe to this mindset.
You can provide clarity and visibility for your end users by sharing the release process for CRM changes, publishing a standard release schedule or cadence, and standardizing change request processes.
For a successful shift to agile, the whole company must buy in. That’s why it’s important to emphasize the benefits to the business, which include:
Automate the deployment process to both promote changes through the release path and continually sync lower level orgs with production. This minimizes the possibility of bugs resulting from manual processes and reduces inconsistencies between different environments in the release path.
Continuous integration and delivery—or CI/CD as this process is known in development terms—saves your team time and effort in the long run. It allows org owners and admins to quickly and safely move a newly-developed functionality up the release pipeline with a minimum of problems, resulting in a faster time to value.
A version control system (VCS) tracks the changes you make, including the date of the change, a full revision history, and the owner of each revision.
Some release management automation solutions—like Prodly DevOps—offer built-in version control solution integrations. This lets you effortlessly track every configuration change. If you need to roll back a change, you can easily do so—without IT intervention.
A VCS makes it easier to view and manage all your configuration data and metadata from a single location and easily resolve conflicts if multiple users are working on the same data. It also simplifies workflows between user stories and sandbox deployments, dramatically improving your time to market with increased release velocity.
Salesforce end users continue to drive the demand for customized CRM features as their customers’ demands change and the business evolves. Admins can leverage low-code/no-code platforms like Prodly DevOps to implement these best practices for agile that were once reserved for software teams.
Now, your Salesforce team can work independently of IT. You have a simple way to manage changes to Salesforce with the same rigor developers apply to traditional software development. You can automatically maintain an audit trail of every change. You can seamlessly deploy data and metadata across different orgs. And you can continuously implement, test, train, and release Salesforce changes faster, more efficiently, and with fewer errors than ever before.
First published on DevOps HQ, 2022.
What is agile development?
Agile software development comprises a philosophy and methodologies based on tight feedback cycles, as well as continuous improvement and continuous delivery.
More sequential methodologies require teams to fully develop and deploy software before going back and troubleshooting. In contrast, agile is an iterative process in which teams deliver work in small—but consumable—increments.
In agile, everything is evaluated continuously and piecemeal. It’s easier for teams to quickly respond to change while at the same time minimizing critical errors—perfect for Salesforce administrators and operations teams.
Even though Salesforce admins are rarely trained in software development, they’re tasked with managing changes for the CRM as though they were. They need to have specific structures, guard rails, and release policies in place. This is where agile comes in.
When applied to Salesforce, agile can break down operational silos. It facilitates better communication and collaboration between teams, eliminating many of the most costly issues. As a result, your app development brings greater value to your organization—faster.
Why do you need agile app development in Salesforce?
For many companies, Salesforce is the single source of truth for managing the 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. It requires ongoing—and sometimes expensive—customizations, as well as the development of additional features.
In many cases, IT initially manages the initial support of Salesforce, as well as general support. After that, Salesforce admins must step up to the plate to deliver reliable, high-quality new features and functionality in a timely manner.