and importance of CM tools.
Table 2: Distribution by age range of who rated CM tools "Extremely Important"
And finally the last bit of data from the survey results indicates that there may be a slight difference in the way the agile engineers (e.g., as part of the agile project team) perceive the importance of CM tools versus the way product managers do. In this case, 90% of the agile professionals who are engineers appear to indicate that CM tools are extremely important while only 60% of agile professionals who are product managers indicate this. This may account for the fact that engineers are more severely impacted when there are problems with identifying or controlling code. However, upon further investigation, when combining the top two categories, 100% of both engineers and product managers believe CM tools are either "Extremely Important" or "Very Important". Table 3 illustrates the distribution of importance by these two roles.
Table 3: Distribution of Importance by Role (e.g., Engineers and Product Managers)
Study #2 - How Important are CM Functional Areas?
The second study sought to drill down further as to which CM functions 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 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. Not surprisingly, CM reporting and auditing are perceived as least valuable. Agile tends to find reporting beyond the basic burn-down charts of less value and believes that auditing is just an extra step that is unnecessary when the team works continuously and closely together. Table 4 illustrates the average values of the various CM functions. While I do not consider this conclusive data, it is certainly data to "chew on".
Table 4: Average value scores