CMM Level 3 and GST
Why Level 3:
The Capability Maturity Model is a framework created by the US Dept. of Defense as a result of research gathered on contractors’ ability to successfully deliver software projects. The model moves from left to right (Levels 1 to 5) but is not a spectrum defined in the traditional sense by direct correlation conveying a rating between opposing extremes of one parameter. It runs deeper than this qualitatively, displaying the results within four (4) different parameters. These parameters will carry different weights based on your tolerance when it comes to Risk, Speed, Cost & Documentation.
Parameters Defined:
Risk: Risk can be defined here as a spectrum from assumptions to specifications. On the high risk side, assumptions far outweigh specifications and development proceeds with minimal planning. On the low risk side, specifications far outweigh assumptions with development proceeding as a rote effort resulting from a costly and time-consuming planning stage.
Speed: Speed here is intended to be synonymous with productivity, specifically the average number of lines of code per day (#LOC/day). On the fast side, each developer will spend majority of time on coding, with minimal to zero documentation. On the slow side, each developer will spend majority of time thoroughly documenting each line of code. Productivity (speed) thus moves from high to low with regard to functional output.
Cost: Cost here correlates with the total development cycle effort, composed of planning, coding, testing and documentation. On the low cost side, a project would have minimal planning, testing & documentation. On the high cost side, a project would have superfluous planning, testing & documentation.
Documentation: Documentation, to the right degree, is very important in software development. Arguably clean elegant code explains itself, though proper degree of documentation will leave little doubt as to module functionality and will make it easier for onboarding new developers as your technology scales. On the low documentation side, there is little to no documentation and is typically indicative of heroic developer effort to push functional code without regard to structure and format. On the high documentation side, there is an abundance of documentation that overwhelms the reader with the amount of detail, making quick onboarding (understanding the technology from fresh eyes) next to impossible in a reasonable amount of time.
Levels Defined:
Level 1: Unplanned-this operating level displays high velocity coding at high risk to quality with minimal documentation at low cost. Result is a lot of code produced at questionable quality with less than adequate documentation.
Level 2: Reactive-this operating level displays a sense of the development team being “behind the 8 ball.” Coding speed is reduced with improvements in planning & increased documentation, but carries a higher price. It is reactive in the sense that not sufficient planning is done, so the effort to reduce assumptions falls short of being effective in that the increased specifications isn’t done to the degree which would tip the scales regarding risk.
Level 3: Proactive & Procedural-this operating level displays a sustainable and productive speed of development with adequate documentation, while maintaining a high level of quality at affordable cost. A robust planning stage is included to yield specifications that far outweigh assumptions, minimizing risk. Documentation is included at a high level which clearly conveys functionality for experienced developer review. There is also a balance between cost & speed which his achieved; this comes from the right blend of coding and documentation for any given developer hour. Level 3 is said to be Proactive in that the planning stage is sufficient to maximize coding velocity while minimizing risk (i.e. surprises, rework, etc). It is also Procedural in that there is commensurate development rigor emerging from the planning stage which controls costs.
Level 4: Inhibited-this operating level displays an early stage of the project being bogged down. This condition results from an imbalance in documentation effort as it relates to coding. Speed slows significantly with very little return on investment for the product owner. Because of this slow-down, the timeline extends which increases costs. Silver-lining is that risk is even further minimized, but at a cost.
Level 5: Superfluous-this operating level displays a project that, from the outside looking in, has ground to a halt. This condition results from essentially a zero tolerance for risk or any degree of reduced quality. To achieve this high standard, planning is regarded as preeminent focus along with documentation & communication which make the red tape of a political climate look like child’s play. There is no silver-lining at this operating level, in that all factors submit to the goal of zero tolerance for risk. As you may have guessed, costs skyrocket.
How does CMMI compare with Disciplined Agile Delivery?
As you see from above the CMMI spectrum runs from light to heavy. Agile Methodology for Project Management aligns most appropriately with CMMI Level 3. Agile Methodology promotes continuous delivery, an end-to-end delivery cycle that enables rapid innovation, while providing for proactive and adequate process management.
Recommendation: CMMI Level 3
GST promotes CMMI Level 3 as the optimal operational level. We believe that Level 3, being Proactive & Procedural, results in the right blend of cost & quality. From the convergence of all parameters, there is a balance not only between coding & documentation, but also between risk- mitigation & speed. The product owner sees a well- oiled machine in the development team, undertaking development in a disciplined fashion which yields timely, high quality results.