Those using GitHub might be familiar with the concept of merge (pull) requests on branches. This post provides more information on a similar feature introduced in codeBeamer ALM’s latest version 9.1.
What are branches & merge requests?
The concept of development branches originates from software coding and is used in Git, where it facilitates the management of work carried out in multiple parallel development streams. The idea behind diverging from the main line of development is that it enables certain teams to carry on working on smaller product components or other variants in parallel, without messing with the main line of development.
While Git applies the concept to software code, there is no reason it couldn’t be applied to requirements, tasks, test cases, and the entire development lifecycle – which is exactly what codeBeamer’s new functionality allows you to do.
The concept, as well as codeBeamer ALM’s implementation of it, is best explained by the following illustration:
Essentially, this technique allows you to maintain a master development trunk and branch off parallel streams of development. These streams are isolated but you can switch back and forth between them, and even compare them to see what’s different. This helps you manage a product line of multiple product variants, or experiment with new features without causing confusion on your main development trunk.
Once work on a branch is finished and it’s confirmed that it yielded the expected results, its output can be simply merged back into the main development trunk.
And this is where merge requests prove to be immensely useful. In order to confirm that a feature built on a branch is fit to be merged back into your main trunk, you’ll need to review it and implement some kind of approval process.
Merge Requests for Advanced Collaboration
Merge requests (or, as they are known in Git, pull requests) offer developers a way to notify others that their work on a branch is done. But they serve a purpose even more useful than simple notification: they provide a way for teams to review the work completed on a branch, and decide if they want to merge it back into the main line of development.
With codeBeamer ALM 9.1, you can automate and simplify this review & approval process. Together, branches and merge requests greatly facilitate intra-team and inter-team collaboration – even with suppliers.
Branches in codeBeamer may be baselined and compared, making sure that versions on branches are kept in good order. By reusing artifacts, product components, and processes on branches, you can cut the costs of product line management. You can even reuse requirements with the test cases that verify them, which helps you save QA time and costs (not to mention the benefits of test coverage).
Upon merging a branch, you’ll have granular control over what gets merged and what doesn’t, enabling you to approve or reject (and comment on) individual items on the branch. This enables a fully controlled, transparent, and efficient way of managing approvals.
How to use merge requests?
Branching & merge requests enable you to involve other teams and collaborate tightly with your suppliers. You’ll just open a new branch for a team or supplier, and they’ll let you know once their tasks are finished by requesting a merge.
In general, merge requests will follow this simple process:
- A developer is assigned a task (or feature), and a branch to work on. They will start to build the feature working on this branch.
- Once work is completed, the developer will request a merge of their branch to the main development branch within codeBeamer.
- The team reviews the feature (code) built, comments on it, or changes it any way they see fit.
- The responsible person on the team (usually the project manager) merges the feature into the main development branch, or rejects the branch’s content with comments on how to proceed.
With advanced branching & merge request features, all of this activity is tracked and managed within codeBeamer ALM. Approvals are greatly simplified, and are automatically documented to make collaboration more transparent and more efficient.