SCM Design Patterns: Version Control & Multiple States

[article]
Part 2

with the Integration State if problems are found, the CIs are demoted to the Integration State where a Manager evaluates the error(s) and decides what corrective actions to take. This could include demoting the CIs back to the Development State for checkout to modify the code(s) causing the error and then promoting it back to the QA State, creating new versions of the CIs, promoting  and replacing the CIs that were causing the problem, or possibly other CIs need to be changed that interact with the problem CIs.

The User Acceptance Test (UAT) State involves "Customers" validating the run-time Application as a whole and ensuring that requirements from a user perspective are met.

Depending on your definition of Customers, this group might be external Beta Testers that are select Customers of the current release of your Application. Customers might also be internal personnel that represent the views of Customers. UAT is the State in which all the compiled versions of all the CIs that will make up the release of an Application are presented to this select group of Customers as well as the other members of the CCB to review and sign off on. All CIs in this State must be approved before the Application is
promoted to its final State, Production. As with the QA and Integration States if problems are found in any of these activities, the CIs are demoted to the QA State where a Manager evaluates the error(s) and decides what corrective actions to take. This could include demoting the CIs back to the Development State for checkout to modify the code(s) causing the error and promoting it back to the UAT State, creating new versions of the CIs, promoting and replacing the CIs that were causing the problem, or possibly other CIs need to be changed that interact with the problem CIs.

The Production State is the final State where the production Application resides. All CIs that make up the Application are promoted to this State after the Customer CCB approves the Application, or changes therein, and all the CIs that comprise the Application are promoted to the Production State where the complete Application is compiled (indicated by the yellow octagon) and ready for use. If problems are found in any of these activities, the CIs are demoted to the UAT State where a Manager evaluates the error(s) and decides what corrective actions to take. This could include demoting the CIs back to the Development State for checkout to modify the code(s) causing the error and promoting it back to the Production State, creating new versions of the CIs, promoting and replacing the CIs that were causing the problem, or possibly other CIs need to be changed that
interact with the problem CIs. 

If you look closely at Figure 10, on the left side of the States, you will notice a Managers circle with lines pointing to the Integration through Production States. This indicates an important feature of this Design Pattern. The States not only function as areas for testing and approval activities, but they control the makeup of the Application at that point in the lifecycle. Managers are not only involved with the approval and rejection of CIs but they also control the makeup of the States by controlling the CIs that are in them. Several of today's SCM tools employ a concept called "Packages"  that control the grouping of CIs as they move through the States. This concept makes the job of the Managers who control the makeup of the States much easier by knowing what the CIs are for (bug fix, new feature, enhancement, etc.). Just because a group of CIs are approved/rejected does not necessarily mean that they are automatically promoted/demoted. 

Quite often there will be different levels of CCBs. There may be more informal CCBs in the lower States and  more structured CCBs when CIs get close to Production.

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Sep 22
Sep 24
Oct 12
Nov 09