The grand vision of continuous delivery and effective release management is all about reaching the zero-wait time for a completed user story to get deployed to production. This accelerates execution of any go-to-market strategy via matured delivery process.
This article focuses on the how your team can plan and implement continuous delivery of your applications by thoughtfully utilizing the power of feature branches, ALM (Application Lifecycle Management) tools, Salesforce DX and AutoRABIT.
Let us Look at each of these entities individually:
A feature branch model enables you to develop a specific feature inside of a branch, which is then merged to master when the feature is fully tested and validated. Feature branches are often coupled with feature flags - also known as "toggles" - that enable or disable a feature within the product.
- You can work on your own feature in isolation
- You can pull in changes from Mainline when you’re ready
- When you’ve fully tested and validated the feature, you then merge the branch into the master
- The team can select the features that are ready for the release
- Feature “toggles” – enabling or disabling features
- Merge conflicts in the cases of long-running feature branches
- Semantic conflicts – for example, API naming conventions
ALM (Application Lifecycle Management) Tools
ALM tools help execute a predefined set of business processes that assist with various phases of application lifecycle including requirements definition, design, development, testing, deployment, release and maintenance spanning across an entire lifecycle of a product.
ALM tools can manage and monitor all aspects of software development. Communication, collaboration, and task tracking are essential to achieving success. There is a growing need for an integrated ALM – where tools and its users are synchronized across all phases of development. Modern vendors focus on API capabilities to enable organizations to integrate with their IT and application related tooling.
Traditional development process on Salesforce has been set up around managing changes locally in developer sandboxes and using change sets for deployments into production.
Salesforce DX essentially drives the evolution of Force.com into a modern development platform that aims at rapid development, maintenance, and management of Salesforce applications.
Salesforce DX is bringing open application development standards, tools and processes to Salesforce App Cloud Platform. Salesforce DX is aimed at driving the adoption of continuous delivery of applications with the following development practices:
- Version Control as the single source of truth
- Effective usage of ALM tools for collaborative software development and agility.
- Efficient branching strategies and CI pipelines for automated deployments.
- Code reviews, compliance checks, and automated testing.
AutoRABIT - Complements Salesforce DX
AutoRABIT is a continuous delivery suite specifically designed for Salesforce applications. It is an integrated development framework for Salesforce applications that can help you develop, test and deploy metadata changes seamlessly and effectively to multiple release environments. AutoRABIT also implements the best practices of modern application development.
AutoRABIT runs on the fact that the source of truth is the Version Control. It's a comprehensive release management suite for Salesforce applications with the following features:
- Powerful CI framework
- On-demand deployment
- Data migration
- Sandbox Management
- Test Automation Framework
AutoRABIT’s latest enhancements help enterprises achieve their goals with Salesforce DX. It extends Salesforce DX by providing:
- Source-driven development
- Hub org that ensures centralized management
- Optimized scratch Orgs
- Integration with wide range of development tools
- CLI for retrieval, deployments, Apex test and data migration
- Focus on Automated testing
- Packaging 2.0
- Heroku Pipelines
Weaving the Fab Four together – Feature branches, ALM, Salesforce DX and AutoRABIT
Integration of the Fab Four – Feature branches, ALM, Salesforce DX and AutoRABIT helps you achieve efficient Continuous Delivery of Salesforce applications. Once the team Lead assigns a user story to Developer from ALM, AutoRABIT enables the developer in the following ways:
- A feature branch is created from Master
- A scratch org is provisioned to work on the user story
- Developer works in the scratch org, pushes the changes to the feature branch with AutoRABIT check-in editor and DX CLI
- The changes are thoroughly validated against a destination Salesforce org with AutoRABIT check-in Gate
- Changes are merged with master using AutoRABIT merge editor after thorough validation and review.
Salesforce DX and AutoRABIT aim to drive a great development experience for the Salesforce teams bringing the modern development platform capabilities and practices for higher agility and maturity in the development process as well as achieving continuous delivery for Salesforce applications. AutoRABIT had participated in TrailheaDX'17 and enjoyed a great response from the audience. Contact us for further information on how AutoRABIT leads your Salesforce DX initiatives to success.