Adding a Little ForeSight to Your Salesforce DevOps

Salesforce is one of the most popular customer service software solutions in the world, with more than 150,000 companies of all kinds maintaining a Salesforce org. Operating on an innovative, secure, and robust Salesforce platform, an org tends to become more complex as the business evolves and grows.

Over time, managing, scaling, upgrading, and customizing your company’s Salesforce org to meet the changing needs of the company requires a method to organize processes and keep data reliably consistent. This is the point when words like architecture re-factoring technical debt come in and new practices are adopted. One of the most effective practices, borrowed from software development, is DevOps.

What is DevOps?

DevOps is an approach or methodology for improving the software development lifecycle by ensuring rapid, consistent delivery of development work into production.  This approach enables seamless collaboration between development and operations teams.
A DevOps setup usually includes:

  1. Version control  – version control provides the ability to track and manage changes in folders and files. Version control is usually used by software teams to manage changes to their code over time. The most used version control is Git and there are different Git providers like GitHub, Gitlab bitbucket and more.

  2. Build tool– the ability to pack the changes along with additional required content into an artifact that can be deployed.

  3. Deployment tool – the ability to move changes from one environment to the next in the landscape in a seamless way.

  4. Quality Gate – automatic or manual steps checking that the delivery is of good quality and ready to move to the next step, usually consisting of unit and automated tests, code scanning, code review, and more.

An additional important part of DevOps is the CI/CD pipeline.  CI/ CD refers to continues integration and Continues Delivery/Deployment.  The CI/ CD pipeline consists of a set of steps, automated and manual that take a change performed on the development environment and bring it to the integration environment (CI) or production (CD) in a fast way and with quality.

Steps in the pipeline consist of build, deploy, and quality gates like review, unit tests execution, automation tests, dependency resolution, code scanning, and more.

Salesforce DevOps Tools

For Salesforce professionals, incorporating DevOps tools and principles makes perfect sense, as they need to deploy changes more and more frequently across a growing CRM ecosystem. However, traditional DevOps solutions were designed to meet the needs of software release managers.
One of the key gaps is that the code is written in files while in Salesforce customization is done in low code and in a sandbox /dev org.
The idea of being source-based is that all the customization and behavior of the org is based on what is defined in the source files and is not native in Salesforce. In Salesforce customizations are done inside the org and not necessarily saved to a file. On the other hand, working in Salesforce where the source of truth of the customization is defined in files with version control is bringing a big advantage to the change management process. Source-based development with the Salesforce DevOps process is bringing higher velocity of changes delivery.  In order to address the need for a DevOps process in Salesforce, various Salesforce DevOps tools available today have been specifically tailored for Salesforce admins and developers.

The larger the company and the more complex the Salesforce deployment, the greater the need for such Salesforce DevOps tools. They may include things like deployment support, data collection and retention, metadata management, test automation, version control tools, and other options for improved collaboration among Salesforce teams.

The Salesforce DevOps Center

The Salesforce DevOps Center, launched among the general public at the end of 2022, is a centralized set of tools to collaboratively build, test and deploy custom solutions across Salesforce. A replacement for manual and time-consuming Salesforce change sets, the DevOps Center helps teams move changes between Salesforce development environments faster, with modern DevOps best practices, features, and functionalities such as:

  • Automated change tracking: The DevOps Center automatically tracks changes made in developer sandboxes, organizing them as Work Item objects that can be centrally managed for all Salesforce platform operations. This eliminates spreadsheets and sticky notes, and accelerated change releases.

  • Customized pipelines: Companies can create change development pipelines that best meet the needs of each team involved in their Salesforce org.

  • Version control: The DevOps Center seamlessly integrates with third-party version control systems, centralizing the process and ensuring DevOps best practices are implemented among all members of the company’s teams.

  • Easy migration and change deployment: Salesforce org changes can be bundled and migrated from one development stage to another in just a few clicks.

  • Intuitive user experience: The development pipeline can be visualized in the Salesforce DevOps Center, with low-code options for DevOps best practices, expanding the potential circle of collaboration for more effective change implementation.

Note: The Salesforce DevOps Center can be accessed by typing “DevOps Center” into the Salesforce setup search bar. 

How to Implement Version Control: Git

Version control is essentially an interactive audit trail indicating what changes were made to the software, code, or system, by whom, when, and (many times) why. Salesforce DevOps can include integration with any of the high-quality version control systems (VCSs) available on the market today.

One of the most popular VCSs is Git.

Git is a distributed version control system, which means every collaborator has access to the entire source repository at all times. This enables version consistency and easier collaboration across the business with common data, tools, and workflows.

To enable the desired collaboration and prevent the perpetuation of technological silos, the GitHub collaboration platform was created as a community space for Git users. It’s a place where you can share your work, see team activities, review code, and work with continuous integration (CI) and continuous deployment (CD) applications as part of your Salesforce DevOps workflows. Building, testing and deploying changes in your org becomes a more automated, consistent and efficient process with GitHub-based collaboration and Git version control tools.

Most of the DevOps tools in the Salesforce eco system allow to work with GitHub as the repository.

How to Approach Quality  

When building a DevOps process, besides the core part of working with version control and automating the different steps to enable an automatic as possible pipe, with the goal to deliver changes from the development environment till integration or production.

A key point in defining such a process is how to approach quality
Lets review some of the approaches:

  1. Fix fast – this approach is taking the assumption of “Why invest in quality checks? Find bugs in production and fix it very fast”.  This approach enables a very high velocity of changes, but it is more relevant for organizations that the business can tolerate a bug in production for a short period of time. This approach comes with good monitoring of the production environment to detect issues as early as possible.

  2. High automation coverage – for organizations that want to deliver changes in an automated way enabling delivering changes many times a day, still requires good quality deliveries and this is covered with a comprehensive automation suite running with the CI/CD cycle.

  3. Deliver fast till integration – this hybrid approach, delivers changes as fast to the integration environment, then run E2E testing as part of the release cadence. Good for an organization that can live without high frequency releases and does have a complex end-to-end business process to cover.     

Where DevOps Starts: Shift Left

If DevOps is a collaborative methodology implemented from development through deployment, then the question arises: Where does it start?

One popular model is known as Shift Left. This is referring to a conceptual view of software development that is broken down into five consecutive stages:

  • Plan and design
  • Develop and build
  • Test
  • Deploy and release
  • Monitor and analyze

Traditional quality models focus heavily on the test, deployment, and release stages. However, the later in the process quality analysis and validation are applied, the more costly it is to take corrective measures. According to an Infosys report, addressing errors after the release stage requires about 640 times more labor hours than at the design or development stages.

On a development timeline, then, “shift left” means applying analysis or validation to an earlier stage in the process. This can mean shifting attention to what happens during development and building, which is as far back as most release managers will go.

But a clearer understanding of what the business requirements are and the potential impact and weaknesses of the proposed changes at the planning and design stage would be even more effective.
The ability to detect defects in the planning phase was proven to have a major impact on the development velocity:

  1. The cost of fixing issues in the design phase is much lower.

  2. A reduction in the number of bugs caught in the testing phase is leading to higher trust and higher velocity of the team.

  3. Data driven architectural decisions in the planning stage leads to a well architected org with lower maintenance and development costs.  

Take Shift Left Seriously with Panaya Foresight

Panaya ForeSight is the ideal solution for identifying what changes are needed and how exactly each change will affect your org, at all levels, right from the start and at every stage of the development process. With a deep IA (impact analysis) engine that learns the org’s structure and business-centric smart testing, ForeSight provides data-driven insights for optimizing productivity and increasing efficiency. This Salesforce Change Intelligence enables development teams to manage an agile and dynamic environment while maintaining a safe and secure change management process.

Many times, errors are caused by unknown dependencies or interim changes to an org’s metadata. This slows down Salesforce deliveries and creates an iterative process that leads to frustrated Salesforce delivery managers and business owners who depend on Salesforce for their daily work. Panaya ForeSight extracts the org’s metadata and instantly generates a visual dependencies map to help users identify in advance the impact of every change to the Salesforce org. With these insights in hand, business and IT users can respond to business and management requests (such as revising employee permissions, territories, markets, etc.) that involve changes to existing workflows or processes and implement them across the company quickly and with no risk.

With actionable insights all along the CI/CD pipeline, Panaya ForeSight can significantly optimize DevOps processes and strategies, minimizing bugs and user disruptions.

Panaya ForeSight brings an end-to-end perspective on the value chain, guided by lean principles and data driven insights, into the DevOps methodology. Intelligent automation and advanced technology provide the real-time visibility and risk-based analysis needed for informed Salesforce development decisions, from the first shift left to the last go-live – and beyond.

Frequently Asked Questions

What is Salesforce DevOps?

Salesforce DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the systems development life cycle and provide continuous delivery with high software quality. It involves the use of tools, automation, and collaborative efforts to improve the speed, efficiency, and reliability of Salesforce application development and deployment.
 

What are the benefits of Salesforce DevOps?

The benefits of Salesforce DevOps include improved collaboration between development and operations teams, faster time-to-market due to streamlined and automated processes, and enhanced quality of applications due to early detection and resolution of issues. It also fosters a culture of continuous improvement, leading to more reliable releases and better user experiences.

Start changing with confidence

Book a demo
Skip to content