Wednesday, December 29, 2010

Is the Process and Product Quality Assurance Process Area compatible with Agile?

This is a special post number 50!! So....


Enough, let's go back to Agile and CMMI compatibility..

Introduction


The Process and Product Quality Assurance Process Area, a process area at maturity 2, aims at objectively evaluating projects for adherence to the standards processes and procedures. Objectivity is key. It can be achieved through an external group or through demonstration of objectivity.

Below are the specific goals and practices:

SG 1 Objectively Evaluate Processes and Work Products
SP 1.1 Objectively Evaluate Processes
SP 1.2 Objectively Evaluate Work Products and Services
SG 2 Provide Objective Insight
SP 2.1 Communicate and Ensure Resolution of Noncompliance Issues
SP 2.2 Establish Records

Is it compatible?


This process area aims at ensuring that each of the projects in the company follows the company’s defined processes and practices. Something that can make this process area difficult to apply in an Agile company is the empiricist nature of Agile methodologies. In one side, there’s a company defined methodology (and the willing to follow it represented in this process area) and on the other there’s the Agile encouragement to introspect on the methodology and modify things that are not working. Probably this goes back to the advantages and disadvantages that I mentioned in the introduction to this series of posts and also to the fact that Agile is a value system. Therefore (and again), probably it’s more important to ensure that the company’s values (which in an Agile company should be compliant with the Agile values) are followed than to ensure that a specific defined process is followed step by step.

Another thing I also wonder is what is the best mechanism to provide this insurance.  The CMMI reckons that “Traditionally, a quality assurance group that is independent of the project provides this objectivity.”. However, it also states that “It may be appropriate in some organizations, however, to implement the process and product quality assurance role without that kind of independence. For example, in an organization with an open, quality-oriented culture, the process and product quality assurance role may be performed, partially or completely, by peers; and the quality assurance function may be embedded in the process.”. I believe that the second mechanism should be the one recommended in Agile environments. A mature Agile team is one that doesn’t of any external group to follow the processes and practices and that realizes when it’s incurring in technical debt and can recover and pay it. How does it get there? Through a leader embedded in the project. A leader is a software craftsman that teaches the rest of the group the practices and ensures that they are always followed, even in tempestuous times (when the only thing that matters is handling some software by the door!)

Conclusion


Exact adherence to processes shouldn’t be encouraged in Agile environments, but exact adherence to values should. The best mechanism to ensure quality are through leaders embedded in the projects that act as quality and process keepers. 

  
Other Process Areas

- Is the Requirements Management Process Area compatible with Agile?
- Is the Project Monitoring and Control Process Area compatible with Agile?
- Is the Project Planning Process Area compatible with Agile?

No comments:

Post a Comment