Big Bangs and Small Pops: On Critical Cyclomatic Complexity and Developer Integration Behavior
Continuous integration is believed by many to improve software quality, including cyclomatic complexity. In this paper an exploratory study investigates the relationship between continuous integration behavior among developers and the cyclomatic complexity - particularly at critical levels - of the source code they commit, as a correct understanding of the consequences of a software development practice, particularly one as popular as continuous integration, is of crucial importance to industry professionals when deciding on improvement efforts. It is found that developer behavior differs significantly, as does their knowledge and awareness of cyclomatic complexity as a concept. We find that even though large commits (“big bangs”) contribute proportionately slightly more to cyclomatic complexity, the effect is much less pronounced for critical cyclomatic complexity. It is also found that complex code tends to overlap with high levels of change activity, and that some developers deliberately change their integration behavior in the face of such hotspots, as a strategy to avoid merge conflicts.