SCM Design Patterns: Parallel Development and Content Management

[article]
Part 4

a “Web Master” who acts as traffic cop to control the makeup of the Test Web server. There is then a cut off date in which all components must be submitted to the Test Web Server. The Web site owner/testers then review the site for completeness/functionality/quality and then decide whether or not to move the CIs that make up the site as a whole to the Deploy Web server. If this group does not approve then the appropriate Development Team fixes their CIs and the Site is reviewed again. Once approved the Site as a whole moves to the Deploy server. This server functions as the repository for the Production Web Server(s). There is also a deployment function of copying the Deploy Web Site as a whole to the Production Web Servers (controlled/executed by the Web Master). If there is a problem with a Production Web Site, it can easily be refreshed by deploying the site from the Deploy Web Server. CTM Tools support this rapid/iterative development style by providing several key functions:

  • Graphics based web interface to support design teams involved with the graphic design of the web site
  • Large Grain approach to CI management (all CIs in a release are a version)
  • Tools for managing the deployment of web sites
  • Web site management tools for Web Master

Conclusions
In this whitepaper we have seen six Design Patterns that highlight many functions/features of SCM systems. 

    • Design Pattern 1: Paper Forms SCM - determining SCM roles and processes
    • Design Pattern 2: Version Control – automation of base SCM functions (Check-in, Check-out, on-line forms, etc.) to support single state lifecycle CIs (documents, baselines, etc.)
    • Design Pattern 3: Multiple States – support multiple teams (Developers, QA, Customers) working on different views (States) of an Application. Also provides for Management control of CIs and their groupings as they progress through multiple States. A robust relational database that can manage these activities
    • Design Pattern 4: Build and Deployment – ability to support diverse CIs, command line interface (API), interface to a build management tool, scripting environment to direct the activities of a build and deploy. A robust relational database that can manage these activities
    • Design Pattern 5: Parallel Development – advanced user interface including file comparison, version tracking, branching, and merging. A robust relational database that can manage these activities. Still lacking in tools to evaluate the impact of merging.
    • Design Pattern 6: Content Management – Graphics based web interface, large grain SCM, and web site deployment tools

SCM is a constantly evolving discipline. This is due to the fact that new software development methods, tools, technologies, and other non-technical forces continually drive the needs of SCM systems to provide functions and features to support them. SCM tools in the future will need to address:

    • Geographically diverse development teams will require more remote capabilities
    • Outsourcing of different components of an Application to different companies will require remote capabilities as well as security to proprietary CIs within a SCM tool
    • More/Better integration with development tools/styles such as Integrated Development Environments, Object Oriented Design, Rapid Application Development, Joint Application Development, Extreme Programming, etc.
    • Multi-Lingual support
    • Governmental regulation compliance
    • Information security
    • Process methodologies (CMMi, ISO 9000, ITIL)

But as I stated in the beginning of this whitepaper, planning and process should always be the first and foremost activities of any SCM system.

Acknowledgments

Terry White and Steve Parker for their review and input

References
Configuration Management, the missing link in web engineering by Susan Dart Parallel Configuration Management Process by Meyer Frankel ABCs of a Branching and Merging Strategy by Mario Moreira Jim Johnston has worked in

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!