CRM Release Management guide can be found at our Wiki, please make sure that you read the information available as well to understand the overall environment strategy, org strategy and follow the process.  

Responsibilities in Salesforce Development and Release Validation

When engaging in any development activity in Salesforce, developers are responsible for ensuring the quality and integrity of the code by following these key practices.




Primary goal: Deliver working code with minimal downstream failures and review churn. 

Responsibilities: 

Role : Tech Lead

Primary goal: Ensure the code is merge-ready, maintainable, and aligned to standards. 

Approval model: 

Responsibilities: 


Role : Technical Architect

Primary goal: Protect architecture integrity and long-term scalability for higher-risk changes.

When involved: Any PR with customization, complex logic, or complex feature behavior requiring two approvals. Also he can do periodic reviews just to ensure that best practices are being followed in other non-complex and non-customized implementations also.  

Responsibilities: 



🛠In practice

In best practice, creating feature branches at the start of development ensures your work is isolated from the main codebase, preventing incomplete changes from affecting the main branch. It allows multiple developers to work on different features simultaneously without conflicts and provides a clear context for tracking progress and collaboration. This approach also enables early testing and continuous integration, helping catch issues early and making it easier to merge changes smoothly into the main branch.]

Step 1: Checkout and refresh integration branch

Before starting work on a new feature, create a feature branch from the integration branch (develop) using this naming convention feature/US-XXXX; replace XXXX` with your User Story or task ID. Make sure you are on the integration branch to start with and you pull the latest from your remote before creating the branch.

git fetch --all prune 

git checkout develop

git pull origin develop

git checkout -b feature/US-123

Step 2: Ready to develop

You can now make your change locally (e.g.: classes) or in your dev sandbox. Once ready pull the latest changes from Salesforce using sf command.

sf project retrieve start -o myDevOrg -m "CustomObject:Account"

Step 3: Stage and Commit your changes

git add force-app/main/default/objects/Account

git commit -m "[US-123] My Account changes"

git push origin feature/US-123

You can repeat steps 3 & 4 until changes are complete and the feature is tested.

🔄 Validate Feature

After completing your development and testing locally, it's crucial to ensure that the feature works as expected in a collaborative environment(QA). This involves merging your changes back into the integration branch(develop), where they can be further tested and validated by the team. Follow these steps to validate your feature:

Step 4: Create a Pull Request (PR)

Open a PR to merge into the integration branch (develop). Consult your tech lead if you are unsure of the target branch.


How to write a good pull request ?

A good pull request (PR) can make or break your code review game and streamline your project’s integration process. Here’s how to craft a PR that stands out and gets the job done:

  1. Punchy Title and Insightful Description


  1. Code Quality and Organization


  1. Documentation


  1. Issue Tracking


  1. Approval and Sign-Off


  1. Review Requests


  1. Merge Considerations


Example of a Pull Request

Title: [US-789] ✨ Add user profile feature

Description:
This PR introduces a new user profile feature, enabling users to view and edit their profile information. Here’s a breakdown:

Related Issues: Closes [US-789] 🔒

Testing:



Tools


Tool Name

Used for

Used By

GitHub Enterprise

The "Where" of the Code. GitHub is a cloud-based platform for version control and collaboration using Git. The "Enterprise" version is specifically designed for large organizations, offering enhanced security (like SAML Single Sign-On), centralized administration, and the ability to self-host on private servers.

  • Primary Use: Storing and managing source code.
  • Key Features: * Repositories: Where the code "lives."
    • Pull Requests (PRs): A process for developers to review each other's code before merging it into the main project.
    • GitHub Actions: Automated pipelines for testing and deploying code (CI/CD).
    • Security: Advanced secret scanning and vulnerability alerts.

Tech Lead

Developers

Jira

The "What" and "When" of the Work. Developed by Atlassian, Jira is the industry standard for Agile project management. It is used to track "Issues"—which can be anything from a small bug to a massive new feature.

  • Primary Use: Planning, tracking, and managing software projects.
  • Key Features:
    • Boards (Scrum/Kanban): Visual columns (To Do, In Progress, Done) that show the status of tasks.
    • Tickets/Issues: Individual task cards containing descriptions, assignees, and due dates.
    • Backlogs: A prioritized list of work to be done in the future.
    • Reporting: Burndown charts and velocity reports to see how fast the team is working.

All 

Confluence

The "Why" and "How" of the Strategy. Also an Atlassian product, Confluence is a corporate wiki or knowledge-management platform. While Jira is for tasks, Confluence is for information.

  • Primary Use: Documentation and team collaboration.
  • Key Features:
    • Pages & Spaces: Folders (Spaces) that contain documents (Pages) ranging from meeting notes to technical specs.
    • Templates: Pre-built layouts for Project Plans, Architecture Decisions, and Requirements.
    • Real-time Editing: Similar to Google Docs, but structured specifically for technical teams.

All

DataLoader

Data Loader is a powerful tool used for importing, exporting, and deleting data in Salesforce. Data Loader supports Data Migration, Data Import, Data Export, Scheduled Data Loads

All

Visual Studio

Visual Studio is an integrated development environment (IDE).It's primarily used for software development, Here are some common use cases for Visual Studio ,Software Development,Code Editing,Debugging 

,Version Control Integration  ,Project Management,Code Analysis and Testing,Extensions and Customization

Developers

Workbench

Workbench is a powerful web-based tool provided by Salesforce that allows administrators and developers to interact with Salesforce organizations through the Salesforce APIs. It offers a variety of features and functionalities that aid in Salesforce administration, development, and debugging

Administrators/Developers/ReleaseManagers



Communication Channels

<this section aims to include all communication channels, for example Jira comments, and google/microsoft team groups, first with the goal to support project, then after to be adjusted for maintenance>

Github Subscriptions

To integrate GitHub with Microsoft Teams, you'll primarily be using the GitHub for Teams app. This allows your team to stay updated on pull requests, issues, and deployments directly within your Teams channels.

Installation Steps:

  1. Open Microsoft Teams: Go to the Apps icon in the bottom-left corner of the Teams sidebar.
  2. Search for GitHub: Type "GitHub" into the search bar. Select the official GitHub app.
  3. Add to a Team: Click the dropdown arrow next to "Add" and select Add to a team. Search for the specific channel where you want the notifications to appear.
  4. Set Up Notifications: Once added, the GitHub bot will appear in the channel.
  5. Sign In: Type @github signin in the message box. A window will pop up asking you to authorize the connection between your GitHub account and Microsoft Teams.


Basic Commands to Connect Repositories

Once installed, you need to "subscribe" to specific repositories to receive updates. Use these commands in the channel: