Our customer is a multinational corporation with extensive operations across various regions and industries. They have been using Salesforce for several years, with numerous teams from different Salesforce consulting firms involved in building and maintaining the system.
Over time, the complexity of the Salesforce environment grew, making it increasingly difficult to deliver new features without breaking existing functionalities. Frequent issues included triggers hitting limits and a significant increase in the cost of new feature development. The quality of the application declined, and updates became infrequent and minor.
We proposed the introduction of a Release Management process to address these challenges. This approach allows multiple teams to work in parallel, plan new features with accurate delivery timelines, and minimize the risk of breaking existing functionality. After implementing the Release Management process on this large and complex project, it revitalized the system. Combined with our sClass solution for Salesforce database management, it significantly improved the time, quality, and cost efficiency of introducing new features.
Release Manager
Manages deployments and communicates issues during code merging or deployment.
Reporter/Product Owner/Project Manager
Provides tasks to Development and QA teams and leads deliverability planning and grooming.
Developer
Develops functionality, estimates tasks, and saves code in a Version Control System (VCS).
QA
Validates new functionality against task requirements and provides estimations during grooming sessions.
Business User
Validates new functionality in a User Acceptance Testing (UAT) environment and provides feedback.
Pilot User
Validates new functionality in a Production environment.
Task Tracker (Jira)
Tracks deliverability plans, epics, and tasks, connecting business, developers, and QA teams.
VCS (Git, GitLab, Bitbucket)
Stores code, maintains change history, and facilitates developer communication.
Automation System (GitLab, CircleCI, Bamboo, Jenkins)
Manages deployments and continuous integration/continuous deployment (CI/CD).
Salesforce
Manages sandboxes and configurations for the Automation System.
Knowledge System (Confluence)
Stores documentation on business processes, technical implementations, and QA test cases.
Main Processes
Initial Setup
Configure tools and systems, integrate between systems, and set rules and conventions.
Release
Define scope of work, deliverables, and deadlines.
Salesforce Release Preparation
Prepare for Salesforce’s three annual releases by staying updated and planning accordingly.
Data Archiving and Backup
Store only necessary information in Salesforce and back up important data according to local laws.
Minor Processes
Sandbox Creation
Manage sandbox creation with proper naming conventions, refresh policies, and data population.
Validate Code for Deployment
Ensure code is always deployable with no issues such as test coverage failures or metadata inconsistencies.
VCS Data Sync
Keep the VCS in sync with the production code to avoid discrepancies.
VCS Pipelines and Triggers Configuration
Set up triggers to automate validation and deployment processes.
Task Tracker Flow
Define workflow in the Task Tracker to guide specialists effectively.
Deployment Flow
Outline the code path from development to production.
Development Flow
Detail steps for developing tasks and what constitutes completed work.
QA Flow
Define the QA process and steps for testing and validation.
Review Flow
Explain code review procedures, including checks and reviewer responsibilities.
Documentation Maintenance
Maintain up-to-date documentation as the project’s “source of truth.”
Access Control
Ensure proper access control to minimize risks of unintended mistakes.
Access Control
Grant necessary access to users based on their roles to minimize risks.
Sandbox Creation
Create required sandboxes based on development flow and ensure proper setup.
Validate Code for Deployment
Ensure VCS code is deployable to production and sandboxes.
VCS Pipelines and Triggers Configuration
Set up pipelines and triggers for automated processes.
Documentation Maintenance
Document all steps and decisions thoroughly.
Effective release management ensures smooth deployments, reduces risks, and enhances productivity. This document serves as a guide to establish robust release management practices using the outlined roles, tools, and processes.