This chapter is from the book

This chapter is from the book

The change from craftsmanship to industrialization does not come with the
change to anew technique. The change must come on a more fundamental level
which also includes the organization of the complete development process.
Jacobson [1992]

Putting This Chapter in Perspective

The previous chapter focused on creating the right environment, and eliciting
management support for necessary quality-assurance activities and tasks. A
crucial aspect of that quality environment is a quality process. In this chapter
we discuss what constitutes such a process, and how it helps to enhance quality
in a UML-based project. This chapter does not propose a new process, but
discusses the most commonly used activities and tasks that should be present in
all processes. These activities and tasks and their related roles and
deliverables are described with the aim of improving the discipline in a
process, resulting in the enhanced quality of UML-based deliverables and,
eventually, the software product.

This chapter starts by mapping the three dimensions of a process (the what,
how, and who as mentioned in Chapter 1) to the corresponding examples in
UML-based projects. Unlike the UML metamodel, though, we do not yet have an
officially standardized process metamodel. Therefore, to simplify our process
discussion, we develop the mapping of the three dimensions of a process into an
unofficial metamodel for processes. Various process-components are then derived
from this metamodel. In identifying and describing the process-components, we
consider the most basic or core elements of a process. Furthermore, we consider
in greater detail the methodological or "how to" aspect of the
process-components (their activities and tasks). Relevant deliverables
("what") and roles ("who") are also mentioned in the
process-components. This is followed by descriptions of the necessity and
sufficiency aspects of quality of the process-components. Malleability is part
of process enactment and therefore not discussed separately for each
process-component. Thus, this chapter deals with the construction of a process.
Once a quality-conscious process is created, it is ready for deployment and
enactmenttopics dealt with in Chapter 4.

The Prime Reader: Process Engineer, Quality Manager

3.1 The Process Backbone

In Sections 1.4.2 and 1.4.3, we considered the three dimensions of a process
and discussed a simple baking example to demonstrate them. Here, we begin the
discussion of a process by extending that example further, in order to put it in
a process metamodel. This will help us immensely as we construct the quality
software process-components later in the chapter. We will also use that
understanding to facilitate the creation of a process metamodel.

3.1.1 The Three Dimensions of a Process

The first dimension of a process develops an understanding of the materials
on which the actions are performed, as well as the tools that help to perform
those actions. This forms the technological dimension of a process. In the
example of baking a cake, the activities related to this technological dimension
are the evaluation of the dish, the ingredients, and the equipment. This
constitutes the "what" of a process.

The second dimension of a process is the step-by-step guide to
"how" a particular process is conducted. The discipline of conducting
a process comprises a sequence of well-defined activities and tasks that are
organized in a specific order. This discipline, or method of working,
constitutes the methodological dimension of a process. Some activities
corresponding to this dimension in the baking example are recipe, cookbook, and
timing. This constitutes the "how" of a process.

The third dimension of a process deals with the people who are going to take
responsibility for the actions, and carry them out by following the prescribed
methodology. An understanding of the dimension of a process that deals with the
people who carry out the tasks, and the environment or the organizational
context in which those tasks are carried out, results in the sociology of a
processthe sociological dimension. In the baking example, the sociological
aspect is comprised of the cook, the kitchen environment, and the
"soft" issue of cake presentation.

Quality assurance, although a part of the overall process, has a separate set
of deliverables, activities, tasks, and roles. Therefore, these elements of the
process are separately definedfocusing on the quality management, quality
assurance, and quality control suite of activities. These quality-related
activities continue to influence the rest of the process. They are also
self-influencing in the sense that each quality activity can be used to perform
quality assurance on itself. For example, an activity of workshopping in a
quality-assurance part of the process can be used to verify the process of
conducting workshops in a process. Understanding these three dimensions is
crucial to understanding the logic behind the metamodel for a process.

3.1.2 "What" of a Process

The "what" of a process is the technological dimension of the
process that answers everything related to the physical things in the process.
This primarily includes the raw material with which the process is executed, as
well as the deliverables. It is concerned with the technology of the process.
Many factors from the technological dimension influence the overall output of a
process. These factors include the quality of material that is used, the
availability of the material, and the appropriateness of the tools that are used
in the process. Thus, everything that deals with the "what" in a
process plays a part in influencing its deliverable. Examples of some of these
technological factors in a UML-based project are summarized in Table 3.1.

3.1.3 "How" of a Process

The "how" or the methodological aspect of the process deals with
the steps you follow to produce the deliverable. It is essentially a glossary of
the distilled experiences of numerous project managers. The "how" of a
process is instrumental in conserving effort when the process is enacted. Taking
the cooking example further, the "how" of the process is the recipe
book for the baking process. A description of the activities and tasks using
suitable notations and language is essential to expressing the "how"
of a process. In the case of UML-based projects, examples of the methodological
dimension of the process are as follows:

3.1.4 "Who" of a Process

Simply following a method, as described in a recipe book, does not produce
the desired deliverable. Application of the methodology is the purview of the
person who is applying it. Success depends on the skills and experience of the
person, as well as the environment in which she is working. Thus skills,
experience, and environment form the sociological factors, or the
"who" of a project. These are also called soft factors, as they deal
with the softer or human-relations issues of a process. Refer to Chapter 2 for
further discussion of soft (not easily quantifiable) factors.

Skills, one of the factors influencing the final outcome of a process,
require regular trainingespecially when new ways of doing things and new
equipment become available on a daily basis. Experience comes from practicing
developed skills in a real environment. In addition to the skills and
experience, it is also important to consider the motivational factors and their
influence on the process. These are some of the sociological factors that
continue to influence the final outcome of the project. For a UML-based project,
some of these sociological factors are summarized in Table 3.3.