Change Request: A More Flexible Software Integration and Release Model

Similarities

The similarities between a Change Request and a Pull/MergeRequest mainly lie in the quality and process control of feature branches themselves:

  • Like a Pull/MergeRequest, a change request generally corresponds to a feature branch.
  • When a Pull/Merge Request is used, code changes to the corresponding feature branch are made visible for code review. Similarly, code review can also be performed by changing the granularity.
  • Code submission on a feature branch can automatically trigger continuous integration tools to do the creation work and implement various automatic detections. The results can be shown in the Pull/Merge Request. Similarly, results can also be shown in a change request.
  • You can deploy the latest code in a Pull/MergeRequest into its exclusive test environment and run the code for testing and debugging. This can also be done in a change request.
  • In a Pull/MergeRequest, you can set the conditions of approval. For example, at least two reviewers approve the changes, all problems found in code review are fixed or clarified, and the continuous integration pipeline on a feature branch are running successfully. Similar settings are also supported in a change request.

Differences and main advantages

The main difference between a change request and a Pull/MergeRequest is how the corresponding feature branch is integrated and delivered together with other feature branches.

Example 1

For simplicity, assume that the integration and delivery are implemented in three phases: daily integration testing, pre-release environment testing, and general availability release. An application has five changes: changes A to E.

Example 2

Still, let’s assume that the integration and delivery are implemented in three phases: daily integration testing, pre-release environment testing, and general availability release. An application has five changes: changes A to E. After going through the daily integration testing, application changes are now in the phase of pre-release environment testing.

Additional Advantages of Change Request

Disadvantages and Potential Risks

The preceding sections all talk about the advantages of the change request method. However, does this method have disadvantages or risks?

  • The fewer the code modifications corresponding to a change, the smaller the risk of removing the change halfway.
  • The fewer the code modifications corresponding to the modification and improvement of a change halfway, the smaller the risk.
  • The better the software architecture, the smaller the risk of removing, modifying or improving a change halfway.
  • The smaller the relevancy between one change and other changes, the smaller the risk of removing, modifying or improving a change halfway.
  • The more urgent it is, the more you should consider flexible handling.
  • From the business perspective, the higher the software quality requirement is, the less you should consider flexible handling.

Implementation and Tool Support

The preceding sections describe the unique Change Request method, its advantages, and the risk. Now let’s see how this method is implemented at Alibaba.

  • The master branch always represents the latest release version.
  • Code changes are always done on feature branches. Feature branches are always pulled from the master branch and synchronized from the master again when necessary.
  • Not a single long-lasting integration and release branch exists. Instead, each integration and release stage corresponds to a short-term and automatically managed integration and release branch. An integration and release branch is automatically pulled from the master branch and each feature branch is automatically incorporated into that branch (manual intervention required in the case of conflicts). Then the branch has all desired features.
  • To further modify and improve a feature, do this on the corresponding feature branch and incorporate that feature branch into the integration and release branch.

Reference

https://www.alibabacloud.com/blog/change-request-a-more-flexible-software-integration-and-release-model_594858?spm=a2c41.12952687.0.0

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alibaba Cloud

Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com