Skip to main content

(DevOps) How to jumpstart your CI/CD process in Salesforce?

 

How to jumpstart your CI/CD process in Salesforce?

The Continuous Integration/Continuous Deployment is one of the most significant practices followed by development teams in the enterprises today. 

Continuous Integration - is a culture and a set of practices that application development teams use to deliver code changes more frequently and reliably.Continuous Integration is a coding philosophy that drives development teams to frequently implement small code changes and check them in to a version control repository. Most modern applications require multiple developers developing code using a variety of platforms and tools and so development teams need a consistent mechanism to integrate and validate changes.

Continuous Deployment - is the final stage of the pipeline releasing any developer changes automatically from repository into the production or live environment. Continuous deployment focuses on the automation to deploy developer changes across different environments such as staging, UAT/QA and production. As you traverse environment from developer sandbox to staging and eventually to production , the number of endpoints to deploy also increases. Continuous deployment is the results phase of continuous delivery and focuses on the path of least resistance to get the software into the live environment.


Why do enterprise teams need CI/CD?


The primary challenge faced by developers working on Salesforce is deployments. Deployments in Salesforce does not just involve moving files from one sandbox to another but require a sophisticated management of thousands of XML files. A thorough analysis and careful management of dependencies also play a crucial role in deployments.

While Salesforce low-code environment empowers administrators to make necessary changes to sales pipeline, it also leads to a multitude of branching commits from a large body of low-code developers across the business.

CI/CD processes lead to improved releases, fewer disruptions like overwrites and provides greater agility. Teams require tighter development processes to be more responsive, user-driven to make Salesforce ecosystem manageable. Continuous deployment avoids any critical failures by deploying in small and frequent cycles onto the salesforce platform. However, we need to be cautious as too many releases may makes coordination and collaboration between teams more complicated. 

Another aspect to consider in implementing CI/CD processes, is Regulatory Compliance. Regulatory Compliance may require manual creation of traceability artefacts. Scalability also increases with fewer manual interventions and frequent release cycles.


 

How do we get CI/CD in Salesforce?


The following CI/CD best practices make it easier for organisations to adopt CI/CD philosophy and apply it to their salesforce pipeline:

1. Commit Frequently  - Commit frequently in small batches. Using GitHub based pipeline, salesforce developers could commit their code into tiny, manageable chunks following an iterative process. When commits are larger, they become unwieldy and lead to critical failure. Whether it's a Salesforce update or changing business needs, businesses need agility to respond in time. Small, frequent commits are the foundation of a good iterative process.

2. Enforce Strict Version Control - In order to ensure that CI/CD is working successfully, administrators need a way to record changes over time. A version control system provides that any changes made by the team are versioned and stored separately from other versions and avoid creating chaos such as overwriting each others changes. Version control is essential especially in low-code environments like Salesforce. The more touch points in the system, the stricter should be version control to ensure one shared source of truth for pipelines, and that data that was committed by the team. To enforce version control, controls must be deployed in all environments from lower to higher ones, from QA environment to all the way up to production. The best version control systems offer one-click commits and automated versioning makes salesforce administrators job more simpler. Version control also provides visibility to devops teams who made changes via dashboards and enables even non-coders to track the progress.

3. Test Live and Test Often - It might be straightforward to configure or setup a solution in salesforce but it doesn't mean that it would work well with all setups and integrations across different environments. This is the reason why we need to regularly test if the solution is working as expected across various environments before pushing to production. There are many challenges with testing in Salesforce.

Testing in Salesforce may not be straightforward as the more complex the configurations the harder it is to test them. Visualforce pages have custom user interfaces built for mobile/web apps, it can be hard to test these interfaces without automated testing. Salesforce regularly releases new features and updates which allow developers and users to take advantage of the new features but frequent platform changes break tests. In order to do a proper testing, the devops team would need to continuously review and update the test scripts. The biggest problem with testing in Salesforce comes from low-code and non-specialists creating custom solutions. Although Salesforce platform is user-friendly that doesn't translate to easier testing. Even some of the most accessible tools require proper training and best solution is to leverage automated testing which is user friendly and relies on testing to ensure the stability of the system. Automated end-to-end testing in UAT and stage environments ensure deployments on salesforce are stable, building a solid foundation for future commits.

4. Create a DevOps Culture - Devops principles help organisation's to get most out of CI/CD process. The CI/CD tools need to optimise the software development which makes lasting culture changes. In order for CI/CD and Devops process to be successful, we need leadership buy-in to regularly assess the tools and devops capabilities and understand where to focus efforts for improving and optimising processes. Automation and smoother pipelines will make little difference unless organisation is ready to capitalise on the benefits.

As CI/CD process requires an automation, a good first port of call is to explore Salesforce DX Developer Guide which provides useful information on how to get started with various tools on Salesforce.






 

Comments

Popular posts from this blog

How do Sales Engagement Platforms drive Organisation’s revenue?

How do Sales Engagement Platforms drive Organisation’s revenue? Increasingly Sales Engagement platforms are used by organizations to enrich their sales teams with relevant information to improve their performance and increase sales productivity. These software tools help sales teams improve productivity by automating, optimising and analyzing their sales teams outreach and communication efforts. They typically provide a suite of features designed to help sales reps increase their productivity, improve their communication with prospects and customers leading to close more deals. Some common features of sales engagement platforms include: Email automation — Sales engagement platforms allow users to create and send personalized email messages to prospects and customers at scale. This helps sales reps to save time and increase their email response rates. Call automation — Some sales engagement platforms such as Gong, Chorus.io offer the ability to automate outbound phone calls, allowing sa

(DevOps) How to select a relevant Application Lifecycle Management (ALM) Salesforce model for your organisation?

  How to select a relevant Application Lifecycle Management Salesforce Model for your organisation ? Salesforce provides many different development tools and process to help meet customer requirements and needs. As many companies use Salesforce and Application Lifecycle management (ALM) processes, Salesforce has introduced three different models to manage ALM process within the organisation as shown below: Change set development Org development Package development From the surface all the above three development models follow the same ALM process. However, the models differ in the way they allow changes to your org and how you manage these changes. Controlling change is a huge deal in software development, and you could choose the development model that best suits your organisation needs and requirements. Firstly, let us understand what is the meaning of ALM for an organisation. Application Lifecycle Management is an integrated system of people, tools and processes that supervise a sof

(Ops) Why are organisations adopting PRM in Salesforce?

  Why are organisations adopting PRM in Salesforce? In this article, we focus on what is Partner Relationship Management and why organisations are increasingly adopting PRM solutions. We also discuss advantages and disadvantages of using Salesforce PRM to collaborate with partners. What is Partner Relationship Management (PRM)? The Partner Relationship Management solutions developed in the last 10-15 years is a type of software used by companies to facilitate execution of Channel Sales .  Channel Sales is a simple sales strategy used by companies to leverage the help of third-party vendors to sell your products and services. Channel sales strategies are usually deployed as part of your business growth effort. Channel Sales can help business grow in three key ways: To reach new customers who don't buy directly from the vendor, preferring instead to buy from resellers or ISV's (Independent software vendors). To sell products through third-party market places and managed service p