Thursday, November 26, 2009

How Valuable is Configuration Management to Agile Professionals?

Being a strong proponent of both Agile and Configuration Management (CM), I was curious to learn if other Agile professionals perceived CM to be of value in an Agile setting. Having worked in both areas for some time, my initial hypothesis was "yes" Agile professionals do value CM. Having recently attended the "Give thanks for Scrum" event, both Ken Schwaber and Jeff Sutherland referenced the importance of builds and control to Agile (a CM component).


Having worked in Agile teams and hearing stories from Agile and CM professionals, I decided to exercise my hypothesis and find out if in fact Agile professionals do find CM tools and processes to be of value in their software development work and at what level. With that in mind, I conducted two studies to determine the importance of CM.

The first study was conducted in both the “Agile Journal” and on “Linkedin” that focused on the importance of CM tools (e.g., version control) for Agile projects. it is interesting to note that this appears to be the first study of its kind. I provided five categories as possible answers to the question: Extremely Important; Very Important; Somewhat Important; Not very Important; and Not Important at all.

The results from this study (based on 208 respondents) was very telling and indicate that CM tools (or at least the version control function) are indeed important for Agile teams working in software development. When combining the number of respondents who answered either “Extremely Important” or “Very Important”, the result was a dramatic 94%. This is quite an amazing number.

This means that 75% of the respondents answering “Extremely Important” and 19% answering “Very Important”. I wonder if there are any other tools where 75% of Agile professionals would answer as being extremely important to their work. Respondents who answered “Not Very Important” or “Not Important at all” accounted for only 2%. While there were over 200 people who responded, I do not consider this conclusive data. However, it is certainly data to “chew on”.

The second study sought to drill down further as to which CM practices are perceived to be valuable by Agile professionals and which are more valuable than others. With this in mind, I conducted a second survey in the “Agile Journal” where I asked Agile professionals within a polling questionnaire to please place a value rating on each of the following CM functional areas:

• CM Planning (CM for the project including planning activities, roles, etc.)
• Version Control (tool with Check-out/check-in process)
• Build Management (tool with continuous build process)
• Branching and Merging (tool and continuous integration process)
• Change Control (process of managing changes)
• Problem Management (tool and process – a.k.a., defect tracking, issue mgt)
• Audit (process – baseline, etc.)
• Reporting/Status Accounting (process)
• Release Engineering (tool and process – a.k.a., migration and installation)

I provided 10 value choices (from 1 to 10) where 1 is the lowest value and 10 is the highest value. While not meant to be an exact survey, it provided some interesting data.

The results from this study (based on a modest 25 respondents) indicate a range of perceived values for the various CM functions. Build Management received the overall highest average value score with 9.21 (out of 10). This is not surprising since continuous integration and build is a highly valued practice for those who implement Agile. This was closely followed by Version Control which received an average value score of 9.13. This may be because of the recognized need of control due to the high volume of code changes. The high value of the version control function correlates well with the first study where a high percentage of Agile professionals indicated that CM tools (e.g., version control) were either extremely important or very important.

Branching and Merging is next with a score of 8.33. When considering that a big part of continuous integration assumes merging, then this high score is not surprising. Most interesting is Change Control with the fourth highest score of 7.92. In the survey, there was a short description included with Change Control that said “process of managing changes”. With this additional piece of information, it may be that Agile professionals align control of changes with iteration planning where change is periodically managed. While I do not consider this conclusive data, it is certainly data to “chew on”.

The conclusion is Configuration Management (CM) appears to be valued by Agile professionals after receiving a combined score of 94% who responded with either “Extremely Important” or “Very Important” from the first survey. Why this is may be because Agile is a facilitator of change that requires change mechanisms that can handle the high volume of change. CM provides those change mechanisms to ensure the integrity of change on a software project. Being a strong proponent of both Configuration Management and Agile, I am happy to see these results. For Agile professionals who have not yet considered CM as a valuable asset to their work, it may be time to do so now. It may be to your advantage. For Agile professionals who do understand this powerful combination, more power to you and it may be worth giving some of the CM functions a second look.

To see the full study on this topic, feel free to read the article the "Value of Configuration Management by Agile Professionals" found in the November 2009 edition of the Agile Journal found at: http://www.agilejournal.com/articles/columns/column-articles/2506-value-of-configuration-management-by-agile-professionals