Rants
Questions
Soapbox
Best Practices
Apply today for a FREE subscription to CIO Magazine!
Fri, Jul 31, 2009 9:17 EDT
|
Posted by: ExecutiveBrief in Best Practices Topic: Development
Current Rating: |
There is a common misconception that CMMI and Agile are polar opposites. One relies on institutionalization and documentation of processes and methodologies, while the other emphasizes interaction among workers and “working software over comprehensive documentation” (Agile Manifesto). Process documentation and institutionalization is the lifeblood of CMMI, and it is often used in critical software development life cycles. On the other hand, the Agile approach is called into action when a project features incremental changes, particularly those that have not been included in initial requirement documents.
There have been criticisms of both, as well: CMMI is used only in security-intensive projects that need massive numbers of workers, layers of procedures, and a rigid development lifecycle. On the other hand, those who implement Agile have been referred to as an undisciplined “hackers” of development projects.
The Software Engineering Institute (SEI) doesn’t think that critics are exactly right; in fact, the institute believes taht naysayers are no farther from the truth. The success or failure of implementing Agile methodologies has nothing to do with documentation, according to Margaret Kulpa and Kent Johnson, authors of “Interpreting the CMMI: A Process Improvement Approach, Second Edition (2008).” You could write reams of documentation about your processes without necessarily practicing what is on paper.
So where do IT managers find the common ground? The authors offer Institutionalization, which CMMI defines as “the ingrained way of doing business that an organization follows routinely as part of its corporate culture.” In real-world terms, a technology organization may have a high level of collaboration as part of its corporate DNA, or implement a basic software version every now and again within the lifecycle of a project and adhere to the tenets of CMMI at the same time.
Kulpa and Johnson suggests several ways to institutionalize Agile methods with CMMI through athe adoption of generic practices associated with Maturity Levels 2 and 3. Here are a few of the most important, if not the easiest, processes to implement.
1. Establish a company-wide policy for planning and performing Agile Methods . The first step is to communicate the why and how Agile Methods will be used in the organization, project, or a subset of the project. Communication could face-to-face meetings in keeping with Agile Methods. On the other hand, plans for using Agile approaches should be written to make sure that all processes are defined and followed. To be effective, the policy must have basic information that everyone must know to work on a project.
2. Assign responsibility and authority for performing agile methods. In order to make sure that the plan is being implemented and policies are followed, the person must be given the authority and the corresponding roles, such as, for example, Product Owner or Scrum Master. Overseeing the application of Agile Methods, while, at the same time, adhering to the discipline of CMMI also means monitoring if processes are being implemented according to the communicated plan. Any deviations from the plan should be corrected.
3. Identify and involve relevant stakeholders as planned. Agile Methods proactively involves customers to get feedback with each increment or build. However, note that feedback from customers is not the only opinion that must be considered; feedback from other stakeholders, such as higher management, individual team members, or the entire project group itself counts just as well.
4. Review the status of agile methods with upper-level management. Enterprise- or project-wide adoption of Agile Methods is needs the support of management, and this is possible if they know where it works, or have a clear idea of the issues involved in embracing Agile Methods. The authors recommend providing status data from Scrum Burndown
Both Margaret and Kent know what they are talking about. It is feasible and beneficial to combine aspects of CMMI and agile methods for practical purposes. However, whether most SEI Authorised Appraiser's would approve or understand the fit, and how they would rate an organisation cf. the CMMI, are open questions.
As Peter Middleton has pointed out, the CMMI (and its predecessors) are focused largely upon 'activities'. The model provides a long list of processes and practices, organised into related groups, and essentially provides a set of criteria against which the activities of an organisation can be assessed. The CMMI has little to say about 'performance'. Hence, the CMMI, and other such quality models (e.g. ISO 9001, ISO 20000, ITIL, CoBIT, SPICE/ISO 15504, etc) are concerned with the 'means'.
Conversely, lean systems thinking is focused on 'value' and results. That is, upon the 'ends'; the desired outcome. Agile methods try to follow the principle of understanding customer value explicitly. This is exemplified by the Scrum, Flowchain & Kanban project management methods, which put the 'Product Owner' centre stage with respect to defining and prioritising the work-products to be delivered incrementally. The intention being to deliver stepwise results to the customer/user, with the highest value first. The CMMI puts little emphasis on the need to understand 'value'. Without such an understanding, effective delivery of value becomes a matter of chance.
Of course, agile methods vary in how lean they are. And some agilists seem more interested in implementing activities in a particular way than in the results achieved. But that is another discussion.
Lean and agile methods can be combined with the CMMI (and other quality models) to great advantage. The CMMI's approach to organisational institutionalisation can help to scale-up lean and agile practices. But the implementation and use of any or all these approaches needs to be tracked with respect to the organisation's effective achievement of the board's strategic goals and actual performance at delivering value to customers.
Best regards,
Grant (PG) Rule
MD, Software Measurement Services Ltd.
The five steps outlined above are "right on" for making a successful agile adoption. You need to apply these disciplines and commitments to increase the scope, scale, impact and success of your agile efforts.
To make an agile team successful, you need the roles, the rhythm, the backlog and commitment to make the simple process hum. As you scale up, those same rules apply to managers and executives levels too.
These are words of wisdom that can not be said too much: agile works best in a disciplined culture.
What are you doing to increase your discipline as well as you agility?