Agile Configuration Management – overview

Written by Blaise Rey-Mermet on . Posted in Agile Configuration Management

 

What is it? Configuration Management (CM) plays a central role to keep a development team synchronized. A classical definition can be found for example in CMMI for development: “The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits.“Common configuration Management practices are:

  • Identifying and organizing the configuration items (configuration items: work products that undergoes changes during the product lifecycle and needs to be maintained, e.g. software code, documentation, requirements, and more)
  • Maintaining change requests and systematically controlling the changes to the configuration items
  • Managing the status of configuration items
  • Creating and managing product baselines (baseline: a set of specifications or work products that has been formally reviewed and agreed on, which thereafter serves as the basis for further development)

 

Relationship between versions of work products and baselines

Relationship between versions of work products and baselines

Lean / Agile Configuration Management (CM) Concepts The goals of applying lean and agile principle to CM are

  • to reduce the development time by avoiding waste and delays in the development process,
  • and to get fast feedback about the integration and quality of the product.

An important point to remember is that a lean configuration management process is also continuously adapted and improved. For the CM process to profit from the lean and agile software development principles, we should keep in mind the following aspects:

  • Add support for parallel multiple development branches, because large programs will be organized in a set small agile teams.
  • Avoid centralized Change Control Boards (CCB) that control all changes – Instead control non-strategic decisions on changes in the distributed organization of Scrums and using the cadence of the Sprints. Reserve centralized decisions for changes that impacts the whole program or organization.
  • Let the agile team assumes the CM role instead of a dedicated Configuration Manager. The daily management of configuration items can be handled by the self-organizing team, while the Configuration Manager at the program level defines enterprise-wide aspects such as a CM strategy and CM tools, and support the teams when needed.
  • Use automated tools – Automated continuous integration helps to reduce the integration and testing delays and allow quick feedback about the product quality.
  • Continuously observe and adapt the CM tools and process. For example, avoid complex branching or baselining mechanism if your team does not need them, or observe where long build times are slowing down the team and improve these procedures.
Roles Configuration Manager
This describes the role of the Configuration Manager at the Project or Agile Team Level. The Configuration Manager will typically:

  • Adapt the CM Plan with assistance from the (agile) team, the IT project manager or Scrum Master. Communicate the CM Plan to the team.
  • Ensure team compliance with CM Handbook and CM Plan.
  • Manage the CM System and the Configuration Libraries
  • Identify the configuration item,
  • Control configuration
Read more  [1] Configuration Management Best Practices: Practical Methods That Work in the Real World  – Bob Aiello, Leslie Sachs – Addison Wesley Pub Co Inc (10. August 2010)
[2] Practical Perforce von Laura Wingerd von O’Reilly Media (25. November 2005). This book describes in particular branching and merging in agile environments.

 

Tags: ,

Trackback from your site.

Comments (4)

  • Parag Shastri

    |

    I have been curious about the use of phrase “Agile Configuration Management”. How is it different than Configuration Management? Or, does the concept of DevOps encapsulated within the phrase Agile CM?

    Reply

    • Blaise Rey-Mermet

      |

      That’s interesting. I propose that Configuration Management in agile projects (what I called „Agile Configuration Management“) contains most of the practices and concepts as in classical projects, with the exceptions named in the article under „Lean / Agile Configuration Management (CM) Concepts“.

      Besides, I consider the lean and agile concepts are more another way to approach CM practices, and less a replacement for them. An example would be the decision to implement a change request or not: you have to manage this decision in both agile and classic projects. In a lean/agile project the decision will be taken
      • at a different pace (more often),
      • in a decentralized way (not or not always by a centralized board),
      • in a transparent way (visualized),
      • based more on assumptions rather than extensive analysis,
      • followed by fast feedback,
      • based on measurable facts in particular cost of delay.

      We could elaborate on how DevOps covers these aspects but I have the feeling that it goes in the same direction.
      Thanks for your feedback! – Blaise

      Reply

  • Brad Appleton

    |

    The question of “Agile CM” and what it means (does it mean CM for Agile projects? or applying Agile values+principles to CM? or both) and its legitimacy (or perceived lack thereof) has been written about and discussed ad-nauseum at CMCrossroads.com articles and forums since about 2003.

    (Note: speaking as one of the people that coined the term “Agile CM” with Steve Berczuk in the late 90’s, early 2000’s I obviously have a certain bias on this: I repeatedly defined “CM for Agile projects” as “CM” and that it’s not “Agile CM” unless the CM itself is also applying lean/agile values+principles+techniques. I was in the minority tho as most of the rest of the CMers on the CMCrossroads forum didn’t feel the name “Agile CM” should exist and that its just “CM” for Agile projects).
    Some more resources that specifically address Agile CM are as follows:
    • The Agile CM/ALM content area on cmcrossroads.com (http://www.cmcrossroads.com/topics/agile-cm-alm)
    • The “Agile CM” Columns from the cmcrossroads.com CM Journal from 2003-2012 (more than 50 articles here covering just about every aspect of Agile CM. Just search for any article authored by Steve Berczuk, or Rob Cowham, or myself) amongst the ones at http://www.cmcrossroads.com/search/content/%22Agile%20Configuration%20Management%22
    • Lund University’s Agile SCM Research project (and Lars Bendix publications) at http://fileadmin.cs.lth.se/cs/Personal/Lars_Bendix/Research/ASCM/
    • Mario Moreira’s book “Adapting Configuration Management for Agile Teams” and Marios’ blog at http://cmforagile.blogspot.com/
    • Steve Berczuk’s “Accidental Simplicity” blog — http://blog.berczuk.com/
    • My Agile CM Environments (ACME) blog at http://blog.bradapp.net/
    • Henrik Kniberg’s “Version Control for Multiple Agile Teams” — http://www.infoq.com/articles/agile-version-control
    • Managing Builds Jobs for Continuous Delivery — http://www.infoq.com/articles/Build-Jobs-Continuous-Delivery

    Reply

    • Blaise Rey-Mermet

      |

      Very good – It’ wise to call this ”CM for Agile projects”, as Brad suggests. Anyway, the discussion about applying the agile principles to CM is surely interesting.

      For me, this topic is hot for some reasons:
      • Although small projects have adopted agile for some time, many of our large programs are now on the transition to agile. They need to coordinate the CM approach between the projects, to collaborate as they adapt and improve this CM approach, and to keep CM systematic and disciplined.
      • In some cases, we improve our agile/Scrum projects by adding lean/Kanban techniques or by transitioning them from Scrum to Kanban (Scrumban). This is changing the cadence and some other key aspects that affects CM. This leads to another discussion that has been also around for some time: configuration management in lean/Kanban projects. Maybe, we should call that “CM for lean projects”?

      Your resources list is great! Many thanks for that!

      Reply

Leave a comment