According to the SEI, "Predictability, effectiveness, and control of an organization's software processes are believed to improve as the organization moves up these five levels. While not rigorous, the empirical evidence to date supports this belief."
CMM level 1 (initial): Software development follows little to no rules. The project goes from one crisis to the next. The success of the project depends on individual developers who finish the project in an heroic effort.
CMM level 2 (repeatable): Software development uses some basic project management to track cost and schedule. The precise implementation differs from project to project within the organisation.
CMM level 3 (defined): Software development across the organisation uses the same rules and events for project management.
CMM level 4 (managed): Using precise measurements, management can effectively control the software development effort.
CMM level 5 (optimizing): Quantitative feedback from previous projects is used to improve the project management, usually using pilot projects.
The CMM has been criticized for being overly bureaucratic and for promoting process over substance. In particular, for emphasizing predictability over service provided to end users. More commercially successful methodologies have focused not on the capability of the organization to produce software to satisfy some other organization or a collectively-produced specification, but on the capability of organizations to satisfy specific end user "use cases[?]".
The CMM's division into levels has also been criticized in that it ignores the possibility that a single group may exhibit all of the behaviors and may change from behavior to behavior over time. There is also the implication that a group must move from step to step and that it is impossible for a project group to move from one to five without going through intermediate steps.
To do: say what it has been praised for.