Many Salesforce customers are exploring the use of Continuous Integration (CI) mostly through the use of Stratosource or Jenkins. While CI is a great perspective in release management, does it provide sufficient value to Salesforce customers?
What is Continuous integration
Continuous integration evolved from large tech companies (such as Facebook, Google, etc.), who need to push new code to production many times in a day. For a company with such a high-velocity of changes, they needed to automate the entire application delivery chain which includes automated builds and automated testing.
For an organization to truly adopt Continuous Integration, the organization has to be setup uniquely to use CI. This setup oftentimes affects IT and business alignment because of the following:
- Organizations implementing CI needs a large amount of (technical) QA resources since every test case needs to be automated. But generally most companies have very few QA resources for Salesforce.
- They should have a need to deploy the changes to production often whereas mature, Salesforce customers generally deploy once or twice in a month to production based on their agile program.
- The entire application delivery chain needs to be automated so that the end to end processing time is very fast.
- Every line of code should be tested and every test case should be automated.
- Salesforce’s metadata approach reduces the need for constant builds and compilations compared to the references and bindings made in Java or other programmatic languages.
In addition, There are different maturity levels for release management:
- Regressive: The processes are all manual for building software and there is no management of artifacts and reports.
- Repeatable and Reliable processes: Some of the characteristic of this level are:
- Automated deployment to some environments.
- Creation of new environments in cheap.
- All configuration is backed up and versioned.
- Consistent: Fully automated, push button process for deploying software. The processes are same to deploy everywhere.
- Quantitatively managed: Cycle times are monitored. Deployments are orchestrated.
- Optimizing: Rollbacks are rare. Provisioning and deployment is fully automated. Operations and delivery teams regularly meet to reduce cycle times and optimize metrics.
Based on the above maturity model, we can see that for an enterprise Salesforce, it is necessary to have consistent, repeatable and reliable processes before targeting Continuous Integration. CI is a nice to have practice, however, it does not necessarily align with the organizational setup of enterprise customers.
Flosum as a Solution
Flosum caters to customers of all maturity models, and helps them to move to the next level. Customers don’t have to move to the highest maturity model.
Flosum helps to:
- Compare and Sync Orgs
- Rollback changes
- Automate Continuous Integration
- Improve team collaboration
- Promote code between orgs
- Manage parallel releases
- Backup and Restore metadata
Flosum provides the following benefits:
- Improve developer productivity
- Improves audit and compliance
- Automatically track all deployments
- Reduce Sandbox cost
This article was written by Preeti Lalwani, Founder of Flosum. Flosum provides a complete release management and continuous integration solution for the Salesforce platform. Flosum was created for “clicks, not code” approach for Salesforce release management.
Flosum is run by an elite group of release management and continuous integration experts. For more information about Flosum, please contact firstname.lastname@example.org or visit www.flosum.com.