Tuesday, March 16, 2010

Constituents of a Process and do we actually require a checklist?

Here is an interesting pdf on “the difficult process of defining a process” which speaks of the importance of ensuring that a “process” should ensure that the “big picture” of the activity should be taken into consideration to ensure that the process is accurate. But let us step back a bit and ask ourselves – why do we require a process?

Typically a process is put in place to ensure that there is a ‘common’ way of executing an activity. The need for this is usually governed by the fact that the activity in question is to be performed to achieve a business and project goal – and is to be performed by a set of identified roles who are required to ensure that the business and project goals are met. Having mentioned that, let me cite an example that is common but does not seem to have a process in place – brushing your teeth. Is there a defined process in place that talks of brushing our teeth? Though the answer is a big ‘NO’, we still go about its execution in a nearly perfect manner and at the same time, would ridicule if one were asked to write a process of brushing our teeth.
The ridicule factor is not due to the fact that it is a common way of execution, but due to the fact that the so called process has been “hard coded” into our system so much that we can do this with our eyes closed – which in many cases typically is, as one does not always get up early in the morning fully awake.

So, what kind of activities actually require a process? A process should not be defined just for the sake of definition, but a proper due-diligence has to be made before one even decides to define a process. All should be aware that every process has a cost associated with it – either in terms of effort, cost, or time. So defining a process for the sake of defining is a full waste of time, effort and cost.

So what are the constituents of a process? Page 77 of the CMMI Development constellation V 1.2 has a neat list:
  • Purpose
  • Inputs
  • Entry criteria
  • Activities
  • Roles
  • Measures
  • Verification steps
  • Outputs
  • Exit criteria
Once the process has been defined, one way to help its users to follow it is by providing templates.
Checklist, however has a different purpose altogether. One creates a checklist only when the details of the constituents of a process is too much or when the defined process is not clear. As in the earlier example, we do not use a process to brush our teeth and similarly we do not use a checklist to check if the brush is available, or if the paste is there etc. The checklist is also “hard coded” into our system.
Similar to the need of a process, the need of a checklist is there to ensure a quick check to assess the compliance of a process. It is in no way a complete assurance that the process is being followed – for example, if the process has been tailored, the checklist should have covered that fact, else, the intent of the check that needs to be performed is lost. For example, our minds are tuned to use a brush and not a stick from a Neem tree. But the intent of the process of brushing our teeth is still met and our hard coded mind can still accept this and live by it as we ‘know’ that the intent is met.
Similarly, the user of the checklist should “know” the project and the process to be able to effectively use the checklist else, the intent of the usage of the checklist is lost.

No comments: