There are two main roles in the area of Release Management:
The Program Release Manager is responsible for planning and implementing changes in application services according to release and change management processes. The goal of the release and change management is to provide a disciplined process for introducing required changes into the application with minimal disruption to ongoing operations. A Change Advisory Board (CAB) will be put in place in order to take joint ownership of some of the following tasks:
Responsible for planning, building and running change procedures for the Salesforce Platform. The focus of the Release Engineer is to ensure that all aspects of change of the platform are addressed operationally. The goal is to provide a disciplined process for controlling, executing and making sure that all required changes into the IT application environment are documented and follow appropriate policies with minimal disruption to ongoing operations.
The Release Engineer designs, develops, implements and manages the procedures including (but not limited to) documentation standards, coding standards, release management processes, naming conventions, source control and, most important, deployments.
The following matrix shows the different roles, and their responsibilities, needed to run the Release Management processes and procedures.
|Role||CoE / Stream||Team||Release Mgmt / Deployment Responsibilities|
|PMO||CoE||Customer||Defines the overall delivery schedule, roadmap, and end user training approach, as well as communication strategy, keeping the project teams and user community in sync.|
|Program Architect||CoE||Salesforce||Defines the best practices and standards around integration, security, release management and coding standards.|
|Global Administrator||Support||Customer||Responsible for sandbox creation and proper configuration, AppExchange packages setup, activation of users, permissions, setup delegated admin, user and role data loads, security, features activation, etc.|
|Program Release Manager||Release||Customer||See description above|
|Release Engineers||Release||Customer||Responsible for the life cycle of Change Requests and deploying any changes to Prod The Release Engineer packages the implementation of a release in Git, merges with upstream work, resolves conflicts, coordinates tasks with the development team, maintains a pre/post deployment checklist and deploys to other sandboxes.|
We strongly advise that the persons running this process are experienced in both the Git Branching Model as well as in Salesforce (both as developer and administrator). The Salesforce certifications required are:
Hands-on experience with a source control tool is also mandatory.
Regarding the Git Branching Model and how to use it together with the Salesforce CLI, there are many articles and tutorials available. We suggest the following: