Path to version management in parallel development (I)-version management crisis

Source: Internet
Author: User

Start phase:

 

At the beginning of the project, the project team only obtains class libraries from third parties, programmers with programming knowledge, and PM (project manager ). Because there are a large number of Members, it is often difficult to use a simple shared version management method. Some people tend to be unable to track because of the need for new features or the unintentional modification of some code. We need a simple version management tool, such as Visual Source Safe. Before you modify the code, you must mark the code file as "checked out, each "check" code generates a new version on the server. All right, all the codes have version records. We can view the code evolution process, compare any two versions, and easily obtain the previous versions.

 

Start iteration:

 

Due to customer requirements, the project starts simple iteration. PM requires all personnel to check the code that can work. Then begin to execute the build. The first build process may not be smooth, because some people have modified component A, resulting in component B dependent on component A not working properly. Of course, this is not difficult to solve. We need to train members and require everyone to ensure that all builds are successful before checking the code. This is very useful, although it takes a lot of time for each build. Compilation errors are easy to find, but logical errors are not that simple. However, so far, this is not very important. After all, the project has just begun iteration and occasional crashes can be tolerated during demonstration to the customer.

 

Build:

 

With the project's first delivery approaching, PM decided to stop developing new features and determine Version 1.0. And release this version to SIT (system integration test ). During the SIT test, everyone was busy modifying bugs in their own code. Slowly, the BUG quantity curve begins to smooth. Many people started to think that they could release the current version, so they could devote themselves to developing new features. PM thinks this too, because there is still a lot of work from the perspective of the Demand Tracking matrix, and the customer will require that the remaining requirements be met during the second delivery (2.0.x version. In order not to affect the build of version 1.0.x, PM ordered everyone to edit the code locally to add new features, but not check the version server, the only thing that is allowed to be checked into a version machine is the code for modifying bugs. It seems to have worked well for a while. One day, Mr. Smith found him in. the java file adds and edits a lot of new features related code, but now it is terrible to find. java-related bugs. Thinking hard, John decided. java first backs up, and then revokes the check-out. OK, return to the 1.0.x code, in. java modified a pass and checked in. Fortunately, it didn't cause any problems. John started to copy the original. java and. the changes in java are merged, and the merged result will generate a new. java file. This file has no bugs found, and contains new features of code. As Mr. Smith is a master and the Code he has written complies with the SRP (single responsibility principle), it does not take much time to merge Mr. Wang. However, in the following time, Mr. Smith discovered that B. java, c. java, d. java... X. java needs to be manually merged. Every merge requires that the files be backed up in advance. Moreover, Mr. Smith is not allowed to check his code before 1.0.x runs stably. Therefore, Mr. Smith worries that if his hard disk crashes, mr. Wang is also frustrated when he is unable to use the new feature code written by others. PM also realized this situation. After one night's balance, PM decided to create a 2.0.x directory on the version server and copy the 1.0.x code here. OK. All new features are developed in 2.0.x, and all bugs are modified in 1.0.x and 2.0.x at the same time. This is really a good idea. However, in a short time, the project team will be repeatedly copied and pasted, and the code modification cannot be effectively tracked is even more frustrating.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.