Quantitative Process Composition and Process Tailoring in CMMI Model

The concept of quantitative process composition (QPC) is integral to the implementation of the QPM/QWM (Quantitative Project/Work Management) process area at level 4 of CMMI. 

For understanding quantitative process composition (QPC) it is important to first understand qualitative process tailoring (QPT) at level 3.

So how is QPC at level 4 different from QPT at level 3 and what exactly is it?
Qualitative Process Tailoring (QPT)

QPT is the definition of project-level processes by selecting from the organization's set of standard processes (OSSP or the organization's QMS in a simple language) based on subjective factors and qualitative considerations. 

The following example illustrates the concept underlying QPT.

Consider a project that needs to work on developing a complex application.

The project may identify technical complexity as a risk that can impact the quality of application delivered to the customer.

For overcoming the above risk the project may decide to perform review of the architecture/design in a manner more rigorous than the usual.

It is assumed that the customizations done to the process in this case will have positive impact in achieving the desired outcome.

The above is an example of qualitative process tailoring and might mean one or more of the following in this specific case:
  • The review checklist might be 'tailored up' by injecting it with additional questions related to design aspects like fan-in, fan-out, modularity, coupling, cohesiveness, etc. (tool/template level tailoring)
  • The method selected from review might be perspective-based review by a group of experts rather than desk check by a single peer reviewer (procedure/method level tailoring)
In general, usual approaches to QPT include above variants along with some more as listed below:
  • Use of customer or client provided processes and templates over the organization's standard processes and templates
  • Use of organization's standard processes and templates with certain sections turned into "not applicable"
  • Use of the option of 'tailoring out' certain of the organization's standard processes and templates in entirety (case of waiver)
Quantitative Process Composition (QPC)

QPC is the definition of project-level processes by selecting from the organization's set of standard processes based on objective factors and quantitative considerations.

The following example illustrates the concept underlying QPC.

Consider the same example as above of a project that needs to work on developing a complex application.

The project may identify technical complexity as a risk that can impact the quality of application delivered to the customer.

For overcoming the above risk the project may decide to perform review of the architecture/design in a manner more rigorous than the usual.

And here comes the twist.

The quality of application delivered to the customer is first expressed in quantitative terms such as number of post release defects in six months will not be more than 'n' per SLOC of code in the delivered application (the Big Y).

It is assumed that the customizations done to the process in this case will not only have positive impact in achieving the desired outcome but also the same can be expressed in quantitative terms (typically mean and SD assuming normal distribution).

The above is an example of quantitative process composition and might mean one or more of the following in this specific case:
  • The capability of review process using the normal and 'tailored up' checklists for design review (categorical X variable) is known and its influence on Y is known.
  • Obviously, one would expect that the 'tailored up' checklist leads to a better Y (if not, the assumption that 'tailored up' checklist is better doesn't hold true)
  • The impact on Y of the extent and intensity of X is known.
  • So, by varying the levels of X (similar to the concept of varying the levels of treatment in DOE/ANOVA to determine the optimal combination) Y can be forced to behave at the desired level.
  • Another possibility is to determine some other Xs that influence Y (like number of weighted requirements, modules, code size, etc.).
In general, usual approaches to QPC include above variants along with some more as listed below:
  • Defining alternative sub-processes for performing an activity and selecting the set of sub-processes for performing various activities that result in achieving Y at the desired level
  • Determining Xs that influence Y and establishing the relation between Y and Xs (typically expressed in the form of statistical/mathematical model or based on simulation of Y by varying the Xs in the range observed based on historical data).
 QPC versus QPT

So the primary difference between QPC and OPT is that in QPC process selection is done based on statistically validated hypothesis whereas in QPT process selection is done based on experentially assumed behaviors.

In QPC defining project processes is called as process composition whereas in QPT defining project processes is called as process tailoring.

QPC being a level 4 high maturity practice is expected to make use of heavy duty statistical data analysis techniques like Sampling Distributions, SPC, ANOVA, Statistical Modelling.

Whereas QPT being a level 3 or 'low maturity' practice is expected to make use of light duty statistical data analysis techniques like Averages, Run Charts, Box Plots, etc.

P.S. Some Interesting Observations
  • It might appear that in the CMMI model process 'composition' is higher up in the pecking order compared to process 'tailoring'. 
  • The term process 'composition' makes one imagine Arts, Music, Mozart, etc. whereas the term process 'tailoring' makes one think of Stitching, Cloth, Scissors, etc. 
  • This is not a sound view of the fundamental differences between these two because 'tailoring' could also make one imagine about Versace, Chanel, etc.
  • The other point is that use of statistical analysis doesn't imply high maturity. 
  • It might surely mean high visibility and probably high control but that doesn't always translate into high maturity. 
  • Also, if one were to look at industries other than software, the practices which make level 4 and 5 high maturity will not probably quality as high maturity. 
  • Usage of DOE, ANOVA, SPC, etc. is so commonplace in manufacturing companies that high maturity is business as usual.
  • The use of statistical and/or simulation-based models for quantitative planning and monitoring & control may not be very effective if the behavior of the Big Y or the small y(s) is influenced by factors which are essentially not controllable or controllable in a limited way. 
  • A good example of this is that the maintainability of a product is heavily influenced by the complexity of the business logic, but the complexity factor is controllable in a limited way.
  • Another example is that the product quality is heavily influenced by the deep domain expertise of the personnel working on it which is not controllable in a short span of time (over a long span of time this is definitely controllable but due to personnel churn at times this may not happen).

    No comments:

    Post a Comment