CMM and CMMI maturity models in Software Engineering - Time & Space Complexity
When we look at CMM and CMMI maturity models, we want to understand how the effort to improve processes grows as an organization grows.
We ask: How does the work needed to reach higher maturity levels increase with complexity?
Analyze the time complexity of progressing through maturity levels in CMMI.
// Pseudocode for process improvement steps
for (level = 1; level <= 5; level++) {
for (process in processesAtLevel(level)) {
improve(process);
}
}
This code shows improving all processes required at each maturity level, one level at a time.
We see two loops repeating work:
- Primary operation: Improving each process at a maturity level.
- How many times: For each level, all processes at that level are improved once.
As the organization moves up levels, the number of processes to improve usually grows.
| Input Size (levels) | Approx. Operations (process improvements) |
|---|---|
| 1 | 5 |
| 3 | 20 |
| 5 | 50 |
Pattern observation: The total work grows roughly in proportion to the number of processes across levels, increasing as levels increase.
Time Complexity: O(n)
This means the effort to improve processes grows roughly in a straight line with the number of maturity levels and processes.
[X] Wrong: "Improving one level means the same work no matter how many processes there are."
[OK] Correct: Each level can have many processes, so more processes mean more work, not a fixed amount.
Understanding how effort scales with process improvements helps you explain project planning and quality growth in real teams.
"What if the number of processes per level doubled at each level? How would the time complexity change?"