Descriptive Process Models
Descriptive Process Models
net/publication/332606732
CITATION READS
1 4,967
4 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Jürgen Münch on 24 April 2019.
assess and manage the basic risks associated with a descriptive process
modeling effort.
125
3.2 Introduction
The last chapter explained that one of the main purposes of prescriptive process
models is to provide a reference process framework that an organization can
adopt. Since these process descriptions are usually based on well-proven and
widely accepted practices, their adoption often constitutes a safe path to process
improvement.
The downside of prescriptive models is that, being generic, they cannot exactly fit
the particularities of a specific organization. A number of factors can influence the
way software development activities are shaped in an organization. Obviously, the
strongest of these factors are usually related to the type of product that is being
developed, as well as to the technology involved in producing this product. Still,
even organizations that produce similar, potentially competing software products
often have widely different ways of developing them. These differences can be
related to factors such as their organizational culture and history, the social, legal,
and political contexts in which the organization operates, and the level of skill and
type of education of the people involved, among many others. The result is that, in
practice, no organization exactly follows a generic prescribed process, and no two
organizations operate according to exactly the same process.
The actual processes present in an organization, those that are used in practice to
produce and deliver the organization's products and services, can usually be
counted as one of its main assets. Normally, these processes encompass a good
deal of the experience and knowledge that make an organization successful. For
this reason, managing them appropriately can become a crucial activity for an
organization's long-time survival.
its ability to detect and correct product defects as early as possible, among many
others. The reasons for measuring vary widely from one organization to another,
but often include the desire to improve planning and increase the quality of
software products by reducing the number of defects present in them when they
are delivered.
In the long term, one of the main reasons for explicitly describing an
organization's development processes is to be able to define goals for the process,
and work systematically on achieving them. Doing this involves at least some of
the descriptive process modeling goals explained above, such as process
understanding and process measurement. Long-term goals for a process are often
related to improvement (e.g., increase product quality, reduce time dedicated to
product rework, etc.), but may be related to other process aspects. For example,
many companies are forced by legal regulations, or, simply, by the critical nature
of their products, to comply with existing norms and regulations regarding the
way their products are produced and validated. For these organizations, one
important reason for modeling their processes explicitly is to guarantee that they
comply with whatever norms and regulations are considered relevant. Without a
proper process description, this can be very difficult or even impossible to
achieve.
129
It happens quite often that once a process has been properly described and
stabilized, opportunities for supporting parts of it with automated tools become
evident. Analyzing a detailed process description is probably one of the best ways
to determine the exact requirements of new process-supporting tools.
The second challenge process engineers face is storing the process knowledge for
future use. The process-related information must be expressed in a clear and
130
unambiguous way that is amenable to the goals of the modeling effort (e.g.,
process measurement, improvement, analysis, etc.). A number of notations and
modeling tools are available to facilitate this task. Notations allow expressing
processes using a predefined, standardized set of concepts. They can be formal or
graphical in nature, with graphical notations being preferred in recent years
because they facilitate communication with process stakeholders. Tools, in turn,
help process engineers to deal with the complexity of process models, which, in
practice, may easily grow to contain hundreds or even thousands of individual
elements.
The approach consists of two major phases: a set-up phase configuring the
modeling approach for the organization, the modeling goals and context; and an
execution phase performing the actual modeling. The set-up phase consists of
these four steps:
5. Elicitation
In theory, these steps should be repeated for every process modeling effort in
order to achieve optimal results. In practice, however, the process modeling
scheme, formalisms, and tools are likely to be rather stable across different
modeling efforts, because in a real-world setting, it is usually not feasible to
frequently switch them due to cost reasons. Nevertheless, every modeling effort
should clearly state its objectives and scope, because they will likely not be stable
across different modeling efforts. Steps 5 through 8 will have to be repeated in any
case.
The eight steps are explained in detail in the following sections, illustrated by
three different case studies highlighting different contexts and goals of a
descriptive process modeling effort. Although the case studies are fictitious, they
reflect the realities of common process modeling efforts. The general settings in
which each of the case studies take place are as follows.
now, the company has relied on email as the main mechanism for clients to report
problems they might have found. This simple mechanism has served the company
well so far, but with the number of customers quickly increasing, the need for a
more elaborate and potentially automated solution is becoming urgent.
For this reason, DocVault wants to start by modeling its defect management
process. This process involves not only the actual problem reporting by users, but
also the classification of problem reports by company staff, the assignment of
potential defect-fixing tasks to developers, and the follow-up of defect fixes until
they are released to clients, among other tasks.
The development process at Selene has evolved from the company's long
experience in aerospace systems and can be considered quite stable at this time.
Since Selene´s systems are very often very complex and often subject to strong
reliability requirements, the development processes at the company are very
elaborate and complex, involving a large number of steps for tasks such as
requirements management and quality assurance.
has about 200 employees. Over the years, Soster has developed a solid, highly
customizable core system implementing most of the required ERP functionality.
For this reason, its current business centers on customizing this system for specific
customers.
Soster´s system has already been customized for more than 250 customers, which
is a pretty large number given the company´s relatively small size. This has been
possible because the customization process is very streamlined, consisting mostly
of creating a set of UML models for each client, which are used to generate code
automatically. The generated code often has to be complemented by hand-written
code, but the size of this manually created code can be kept quite small.
The following subsection explains how this first step was performed in the
exemplary case studies.
The main users of the description are the developers of the automated defect
management system. Notice that these are likely to be not the same people
developing DocVault's product, since DocVault will probably subcontract the
defect management system to another company. DocVault's clients, as well as
the software developers and quality management team at DocVault, are
considered secondary users, as they may use the process description for their
own purposes, such as guidance while actually handling problem reports.
The modeling effort at Selene has a very wide scope, covering all software
development processes in the company:
The main objective of the modeling effort is to provide guidance for all roles
in the organization. This involves describing the processes at a level of detail
that allows for processes to be performed reliably even by people who were
only recently trained and still lack experience with a particular process.
135
The users are all roles participating in development, again with no exception.
Soster's modeling effort is narrower than that at Selene, since it involves only one
process. This process, however, is relatively large and complex and has to be
covered in a very detailed way:
The main objective of the modeling effort is to support improvement. In
particular, enough information must be available in the model to make it
possible for product quality and project predictability to be optimized. Notice
that the goal of the modeling effort is to provide the necessary information for
process analysis, but not to perform the actual improvements on the process.
The target users of the resulting model are the members of Soster's SEPG,
since they are responsible for the improvement effort. Other roles at the
company, such as developers and project managers, are explicitly excluded.
The second step of descriptive process modeling consists of identifying the set of
concepts that will be used to describe processes. The following (very simplified)
example illustrates how this step may be done in practice.
Example: An organization decides that it will model its processes based on the
following informal description:
Implementation, etc.). Each of these activities has a set of inputs, which are work
products of different kinds (e.g., Functional Requirements Specification, High
Level Class Diagram, Module Source File, etc.). The goal of an activity is to
produce a set of outputs based on the inputs it receives. The outputs, of course, are
also work products. In this way, activities are interconnected through their
associated work products: The outputs of an activity can be inputs to the
subsequent activities. Finally, activities are associated to particular people's roles
(e.g., Requirements Engineer, Software Architect, Programmer, etc.) This means
that the people occupying these roles are responsible for the corresponding
activities.”
From this description, it is possible to identify a number of basic concepts that are
important for describing processes in the organization:
activity,
work product,
role,
product flow between activities and work products, i.e., which products are
inputs or outputs to which activities, and
Usually, a set of concepts such as this used to model processes is called a process
schema.
models are no exception in this respect. The chosen set of concepts must
cover those aspects of the process that are necessary for achieving the stated
modeling goals. For instance, if reducing time to market for new products is a
stated modeling goal, modeling the amount of time required by different
activities will be fundamental. The chosen process schema must be able to
represent this information.
The concepts must allow for an adequate level of detail and formalism.
Achieving an appropriate level of detail and precision while modeling can be
very important. Too much detail may be as inadequate as too little detail,
depending on the particular situation. For example, a model that is intended
for personnel training may be more detailed and informal than one that is
intended to provide fine-grained support for process enactment. A set of
concepts that does not allow for the level of detail or formalism required by a
particular modeling effort, or that requires too much of any of them, will be
inadequate and must be adjusted.
Designing a set of concepts “from scratch” that fulfills all of these requirements
can be a difficult task even for experienced process engineers. The main problem
lies in the fact that one cannot determine by simple observation whether a
particular schema fulfills any of the criteria. Normally, a schema must be
extensively tried in practice before all of its disadvantages become apparent.
Given the narrow scope of its modeling effort, DocVault can live with a small set
of modeling concepts: task, artifact, and role. Also, modeling more specific
dependencies among entities of these types is not necessary, because the involved
work flows are relatively simple. For this reason, a produces and a consumes
relationship, together with a relation to associate roles to tasks are enough for this
modeling effort.
Due to the size and level of detail of its modeling effort, Selene requires a large set
of concepts. Because of its complexity, only the most important concepts of the
Selene schema will be covered:
Processes with several levels of refinement: activity, task, step.
etc.
A complex set of relationships between concepts, including
dependencies,
etc.
Many of the elements in this schema have textual attributes that allow describing
them in detail.
The modeling scope at Soster does not require a schema with the level of
complexity required at Selene. Still, a number of concepts are necessary:
Processes with two levels of refinement: activity, subactivity.
Specialized entity types for modeling project planning and control activities,
as well as for modeling quality control activities. These are necessary in order
to provide finer-grained modeling for the most relevant concepts, namely,
those related to project predictability and product quality.
Relations to connect the special entities with the basic entities and among
themselves:
etc.
Process modeling not only requires an appropriate set of concepts but a concrete
notation in which these concepts can be expressed. A variety of modeling
notations have been used over time, with significant differences in formalism and
expressive power. Of course, the notation chosen for a particular modeling effort
must be able to express the concepts identified in the previous step. Additionally,
process notations can be characterized along a number of dimensions:
Graphical vs. textual. Some notations rely mainly on text, whereas others are
mainly graphical. Some combine these aspects to various extents.
enough. Notice that, for both of these examples, the notation could be either
graphical or textual, as long as the necessary levels of formality and detail are
achieved.
The notation must allow for an adequate level of detail and formalism.
The modeling results (as represented in the chosen modeling notation) must
be accessible to their intended audience.
Given the difficulty of finding appropriate modeling notations, this step is often
interwoven in practice with the previous one, that is, the detailed set of modeling
concepts and the notation are selected simultaneously. Still, thinking of both steps
as conceptually separate remains useful. In particular, by thinking about the
necessary modeling concepts in advance, one can guarantee that a notation was
chosen because it was appropriate for the modeling effort at hand. Otherwise,
there is a high risk that a notation is chosen because it appears convenient (e.g.,
because it is supported by well-known vendors and/or popular tools) and not
because it offers a set of modeling concepts that fulfill the needs of the process
stakeholders.
Since DocVault's aim is to automate the defect management process, they require
a process description that is essentially free of imprecision and ambiguity. For this
reason, the process modeling team decides to define a formal, yet simple process
notation. This textual notation allows for defining instances of the concepts
mentioned in the last section. While defining a process, entities must be given
142
unique identifiers that can later be used for referring to them from other elements,
such as relations. Additionally, a formula notation can be used to express pre- and
post-conditions for tasks. These conditions can later be used by the programmers
automating the process.
For this reason, Selene decided to add a formal structure to the plain-text
description. This structure is used to organize the elements in appropriate
hierarchies as well as to explicitly represent the many relationships among
elements. Individual entities inside this structure are still mainly described using
natural-language text, but this text is integrated in the formal structure so that it
can be more easily managed. In particular, when the text references model entities
other than the one being described, these references use explicit, model-unique
identifiers. This way, they can later be traced and corrected when the model is
updated.
One important aspect about tools is that they do not have to be specialized process
modeling tools in order to be adequate for a particular modeling effort. In many
cases, standard office tools (word processor, spreadsheet) and/or generic
diagramming tools can be effectively used to model processes, as long as the
chosen notation is simple enough for them and the models are small and need only
little maintenance. Specialized tools, on the other hand, can provide specific
support for particular notations and model maintenance, which can be a deciding
factor when very large or complex models are involved. Of course, such tools are
often accompanied by higher license and user training costs.
The relatively small size of DocVault's defect management process as well as the
selected, text-based notation make it possible to conduct the modeling without
using advanced modeling tools. For this reason, DocVault decided to use standard
programming text editors for creating and maintaining the model.
For its modeling effort, Selene had to edit a significant amount of text. Moreover,
this text must be properly formated, included typical rich text features such as
titles, numbering and bullet lists, use of various fonts for highlighting, etc. As
explained before, however, Selene's needs are not restricted to editing text, but
also involve organizing the edited text into a complex model structure.
In order to support these needs, Selene chose a commercial tool that stores the
model structure and text context in a shared, relational database, but uses a
standard word processor as its front-end. Process engineers can then use the word
processor to comfortably create rich text (including, for example, graphics and
tables) and then store it the database for later processing. Formal elements of the
model, such as relations between entities, are entered in the word processor using
special templates, which are later processed by the tool in order to create the
actual relations in the database.
The elicitation step is intended to collect all information necessary for actually
describing the target software process. Mainly, the necessary information
comprises:
145
The process entities. These include activities, roles, work products, tools, and,
potentially, many others. Oftentimes, entities form hierarchies. For example,
major activities can be decomposed into smaller tasks, and tasks, in turn, can
be decomposed into individual steps.
Behavioral properties of the process entities, e.g., which conditions must hold
in order for an activity to be started (preconditions), or which criteria a work
product must fulfill in order to be accepted.
The information items listed above can be obtained from a number of sources:
individual interviews with process performers.
analysis of other data left by the execution of a process, e.g., meeting minutes,
electronic discussions, issue/bug reports, software version history, etc.
The techniques used to elicit information are a central success factor for a
descriptive process modeling effort. Depending on the organization's culture, for
example, either individual interviews, group workshops, or a combination of both
may be the best option for obtaining direct information from process participants.
One delicate and often very critical aspect of process elicitation is that process
engineers should avoid issuing judgments about the process they are eliciting, or
about the people performing it. The fear of being judged frequently moves people
to describe an ideal process that they expect will be accepted better. Of course,
this is a very undesirable situation, because the main goal of descriptive process
modeling is to produce an accurate representation of the actual process. This
146
interviews with staff members of one large customer, who had reported
several problems over the years.
The information collected during the elicitation step can now be used to create a
model using the chosen modeling notation. It is advisable to collect the
information in the following general order [2]:
147
Start by modeling products, because they are usually the easiest process
entities to identify. In contrast to activities, which are often only implicitly
defined, a set of products usually explicitly exists in an organization and can
be directly modeled.
When activities are modeled, attach associated roles to the activities or the
products.
Here again, there is a conceptual separation between the elicitation and the actual
modeling steps, although, in practice, they are normally interwoven. Once an
initial model is available based on elicited information, it must be reviewed by the
process participants. Such a review will often result in additional elicitation
activities and successive model refinements. In most cases, several
elicitation/modeling cycles will be necessary to achieve an adequate level of
agreement about the process model.
The model creation work at DocVault was conducted by two process engineers,
who prepared detailed step sequences in a regular programming text editor using
the defined formal notation. In order to review the resulting model, a workshop
was conducted where selected members of DocVault's Quality Assurance team
worked together with the process engineers. The process engineers presented the
model, while the QA members were encouraged to criticize it and make
suggestions. Issues were written down during the workshop and corrected
afterwards.
After the interview phase was completed at Selene, the process engineers moved
on to creating the model. They proceeded in two main steps:
148
1. Create a high-level model. This model contained the basic structure and
relations, but no detailed text descriptions. Meetings with small groups of
process performers were conducted in order to validate this high level
model.
When the model was completed, an Electronic Process Guide was generated from
the model and validated with selected performers in small focused meetings.
The use of a graphical notation and editor had a particular advantage for Soster:
Initial versions of the process models for particular activities could be created
“live” during interviews with process participants. This made it easier to
determine whether the interviewer's view of the process matched that of the
interviewee. After the interviews, the process engineers proceeded to merge these
views into a single, unified, graphical model.
Depending on the notation used, there are many possible types of defects that may
arise in practice. The following list contains a few examples of possible process
model defects:
Dangling reference: An entity references another, undefined entity, e.g., an
activity description mentions an input work product that has no definition of
its own in the model.
Orphan entity: An entity is defined in the model, but is not referenced by any
other entity in a meaningful way.
The analyses that can be performed to detect defects such as those listed above
roughly fall into three categories:
Completeness analyses. Even if a model correctly describes a process, the
level of detail or the amount of information in the description could be
insufficient. Completeness analyses are concerned with making sure that all
relevant information is available and at a sufficient level of detail. Checking
for empty fields in entity description forms, and making sure that all activities
in a process are refined to the level of individual tasks, are two examples of
possible completeness analyses.
Dynamic analyses. These analyses are concerned with problems that may
arise when the process described by the model is executed. A typical dynamic
analysis is to search for potential deadlocks that may occur while executing
the process.
150
Depending on the levels of formality and detail of the chosen process model
notation, process analysis can be automated. Indeed, this is one of the main
benefits of using a formal modeling notation. Automated model checks can be
described in a declarative fashion as rules (e.g., for all entities of the type
“Activity”, the attribute “description” must not be empty) or as arbitrary programs
that navigate the model elements checking for particular conditions.
Since DocVault's model ended up being relatively small, most checks were
conducted by manually inspecting the model. However, the process engineering
team also created a simple syntax checker to make sure that a set of minimal
syntactic requirements was fulfilled by the text-based specifications.
At the end of the initial modeling effort, Selene's model contained almost 1000
separate entities, and several thousand relations. It was absolutely necessary to
check this model for potential errors. Most checks were achieved automatically by
writing simple programs that checked the structural properties of the model by
consulting the model database and looking for potentially problematic elements or
constructs.
For checking, Soster relied mainly on the built-in capabilities of the graphical
model editor they were using. The editor allowed for defining a set of basic
151
correctness and consistency rules, and Soster used those to detect basic problems
in the model.
The final step of descriptive process modeling is perform a process analysis, i.e.,
to use the process model to track or analyze process performance, depending on
the process modeling objectives stated in step 1. One possibility is to track the
process by asking process performers to log, for example, the start and finish
times for their activities. Another option is to make “snapshots” by asking people
about their current activities at regular intervals. The resulting data can be used for
qualitative or for quantitative analyses.
Qualitative analyses aim at identifying weaknesses of the processes, e.g., when too
many responsibilities are pinned to a single role, or when too many roles are
assigned to a single person, or when feedback loops become so excessive that they
consume more time than productive project work.
Both kinds of analysis results can then be used to modify the process (in order to
remove the weaknesses), or the process model (in case it does not fit the process
after all), or to influence project planning (e.g., allocate more resources to
requirements reviews when the number of requirements is more than 30% higher
than average).
Although the defect management process at DocVault had been handled manually
for the most part, it actually left traces in a number of data repositories. First, a
good portion of the communication and software defects happening between
customers, QA people, and developers were reported via email, and those
messages were archived. And, second, changes made to the software because of
152
defects found were always registered in the version management system, together
with a log entry explaining the reason for the change.
The process group then proceeded to isolate a number of defect-fixing cases, and
to identify email messages and entries in the version management system that
were relevant to each case. By looking at this data, the process engineers were
able to create detailed profiles for these cases, identifying the people involved, the
activities that were conducted, and the time for each event.
With these profiles at hand, the process group then proceeded to check their
models. The basic question was to determine whether the process model could be
instantiated for each one of the particular cases, and how difficult this would be.
Together with the primary users (developers of the defect management system)
and the secondary users of the model (developers of the defect management
system and DocVault's clients, as well as the software developers and quality
management team at DocVault), they decided that the model adequately describes
the process, and proceeded with the implementation of the automated defect
management system.
Since Selene’s primary objective was to provide guidance for all roles in the
organization with respect to its processes, the process itself was of secondary
interest. However, Selene instructed all performers to watch for potential problems
or inconsistencies and to report them actively. An issue report system was set up
to collect these reports, and the SEPG conducted regular meetings to evaluate the
reports and follow up as necessary.
Since Soster’s goal was to gather information for improvement, a detailed process
analysis was conducted. A number of influence factors for product quality and
project predictability was identified, including the frequency of requirements
changes and the time available for reviews (quantitative data); as well as role
assignments, people overloading, and tool availability (qualitative data). From the
data gathered, Soster’s SEPG developed a strategic improvement plan, covering 3-
month Quick Wins and long-term goals to be realized within three years.
153
This section presents two alternatives to the approach described in section 3.4. The
Multi-View modeling method [3] replaces steps 5 and 6 with an approach that
collects and integrates multiple views on the same process, and the Elicit method
[4] completely replaces the 8-step approach with a perspective-based tactic.
Multi-view process modeling [3] provides a specific way to conduct the elicitation
step and build a model based on it (steps 5 and 6 described in sections 3.4.6 and
3.4.7). The main assumption behind multi-view process modeling is that, given
the complexity of actual software processes, no single process participant has a
complete, unified, and sufficiently detailed view of the process. Quite on the
contrary, participants are normally experts in rather narrow areas of the process.
For this reason, multi-view modeling starts by modeling the process as understood
by individual participants. This results in separate, role-specific process views that
contain potentially detailed but partial process information. In a later step, the
individual views are systematically integrated to form a single, complete process
model. This procedure is illustrated in Fig. 3.2.
154
Implicit Real-World
Process
A D
B
C
View Integration
Comprehensive
Process Model
2. Similarity analysis. In this step, the various role-specific views are analyzed to
identify common objects, such as shared activities or work products. Notice that,
due to the fact that each view comes from a different person or group of persons,
there may be inconsistencies in naming and other modeling aspects. For this
reason, a combination of manual and automated techniques is used to find
matching entities.
155
3.5.2 Elicit
Elicit [4] is a general framework for process elicitation. Its main difference to the
general, 8-step approach presented in this chapter is that it does not expect the
156
Elicit works by looking at the process from a variety of viewpoints, which are
later consolidated into an unified view. The Elicit schema is structured as a set of
five so-called perspectives, together with three types of properties that must be
described for each perspective. The Elicit perspectives are artifacts, process steps,
roles, resources, and constraints, and the property types are descriptive, static, and
dynamic. The combination of a perspective and a property is called a view in
Elicit. This means that there are 15 possible views (5 perspectives times 3 property
types). For each of these views, Elicit provides a set of so-called attributes. For
example, the descriptive view of the artifacts perspective contains the following
attributes:
Identifier
Has purposes
Stored in formats
Is of artifact type
Models are created by providing values for these and similar attributes in all
views.
2. Define objectives. This includes defining the exact scope of the model—e.g.,
its granularity and the degree of consistency, completeness, accuracy, and
clarity that must be achieved—and setting goals for the modeling effort
itself, such as its targeted costs and time frame.
3. Plan the elicitation strategy. Given the set of goals produced in the previous
step, it must be defined how to achieve these goals. A key aspect of this step
is to allocate appropriate resources for the modeling effort. For example, it
must be decided which people will be interviewed, when reviews are going
to be conducted, etc.
5. Validate process models. The main objective of this step is to have the models
validated by their intended recipients. This includes checking that the models
represent the actual process in an appropriate way, and, generally, validating
the models against the modeling objectives stated originally.
In addition to these five steps, which are concerned with modeling itself, the Elicit
method contains some steps that are intended to learn from the overall process
159
modeling effort and package this experience for the benefit of future modeling
efforts. These steps are represented by the feedback arrows (pointing upwards) in
Fig. 3.3.
Originally, the Elicit method proposed the use of two modeling tools, namely a
specialized Elicit modeling tool and the simulation tool Statemate. Although the
Elicit tool is not available commercially, the method can be supported with
generic modeling tools.
Take a look at existing documents and other work products. This not only
helps the interviewer to acquire a general idea of how the process is executed,
but it makes it easier to speak with interviewees about their usual tasks.
The first minutes of an interview are crucial, because during this time, a proper
relationship with the interviewee must be established. In particular, it is important
to create an environment of confidence and teamwork. The interviewee must
understand that s/he is not being evaluated and that the purpose of the interview is
to achieve a better understanding of the actual process. In order to create this
positive environment, it is advisable to:
Make sure that the interviewee has proper knowledge regrding the overall
elicitation process, i.e., how it is being conducted, who is taking part, and
what its general objectives are.
Explain the goals and purposes of the interview. Let the interviewee know
why s/he is being interviewed and why her/his knowledge is important for the
overall elicitation effort.
Formulate some general questions about the interviewee and her/his role in
the process. In particular, try to confirm any knowledge you may have
previously acquired about the interviewee and his/her job.
After the introduction, you can concentrate on its actual purpose: eliciting process
information. Some general guidelines are:
Behave neutrally. It is fundamental that the interviewer avoids being
judgmental about the process. Any remark in this direction may destroy the
confidence created with the interviewee and cause the interview to fail.
Remember that you are there for understanding the process, not for criticizing
it. Also, take into account that aspects of the process that, at first sight, may
appear outlandish or even nonsensical may be supported by very good
justifications that you do not yet understand.
Ask first about products. As already explained, products are sometimes easier
to identify for software engineers, so it may be wise to start by asking people
which work products they usually work on and in which exact ways they are
involved with their creation. When asking about products, take into account
that different organizations may use widely different words to refer to process
work products. Document, system, program, module, and report, to mention
but a few, are terms that may be used to refer to work products in practice.
Ask about processes. After a clear view of the documents has been created,
you can move to ask about the processes related to producing these products.
Some of the relevant questions are: Which inputs are necessary? Which other
roles participate in the processes? Which conditions must be met in order to
start creating the product? When is the product considered finished? Who
reviews the product and how?
Look for typical deviations. If the interviewee has not spoken of deviations
already, make sure to ask about them. What are typical problems that happen
during this process? How are they normally handled?
162
When conducting the interview, always try to make sure that you are getting a
consistent picture of the process. In particular, make sure that you ask questions
even in those cases when you only see small ambiguities: It often happens that
major deficiencies in understanding are hidden behind an apparently minor issue.
The final part of the interview should help to involve the interviewee in the whole
elicitation effort. Before you finish the interview:
Speak about future steps. Explain to the interviewee which steps will follow.
In particular, make clear how the information obtained in the interview will
be used during the remainder of the elicitation process. If the interviewee is
expected to actively participate in further steps of the elicitation effort such as
a review, this may be a good time to clarify the schedule.
Thank your interview partner. Make sure that you stress the importance of the
interviewee's contribution to the overall elicitation process, and thank her/him
for that.
Although it is impossible to predict every possible problem that may arise during a
process modeling effort, experience collected over the years allows us to
enumerate some issues that are likely to be present. The remainder of this section
discusses these issues as well as potential countermeasures.
Finally, participants may simply not see any added value in the process
modeling effort, and may thus be reluctant to put time or work into it.
Some ways to put the process modeling effort “into the hands” of the process
participants are:
Promote the benefits of proper process management. Better process
management can significantly contribute to improving a participant's work
life. For example, better project planning can reduce or eliminate the need for
working long hours, and better product quality can reduce the stress
associated with unexpected product failures. Before a process modeling effort
starts, process participants should know the potential benefits and properly
understand how process modeling can contribute to achieving them.
Make the modeling effort as open as possible. Make sure that the results of
the modeling effort are visible and that participants have a voice if they
disagree. For example, it is advisable to provide an official mechanism for
reporting problems with the process definition and to make sure that such
reports are promptly reviewed and answered, too, either by correcting the
process definition or by providing an explanation of why changes will not be
made.
When participants are interviewed about the way they work, there is a significant
risk that their description of their own activities will not fit reality to a certain
extent. Reasons for why this may happen include self-protection, forgetting
process details, and idealization of the process.
As explained in the previous subsection, people may fear that a process modeling
effort will immediately expose them to judgment and criticism. For this reason,
and in order to protect themselves, they may try to “embellish” the process in
ways that they expect to be more satisfactory to external observers than “the naked
truth” about how things are done. As also explained in the previous section, active
involvement of the process participants in the modeling effort is probably the best
way to minimize this problem.
A related problem may arise when process participants are discontent with their
organization or management. In this case, they may tend to present the process
worse than it really is, in order to stress the problems they are currently going
through. Although such an attitude is a clear signal of potential process-related
problems and should not be dismissed, there may still be strengths to the actual
process that are being unnecessarily downplayed by disgruntled process
participants.
166
Even when participants have a positive attitude towards their organization and the
modeling effort, they may end up reporting incomplete or outright false
information about a process. This may be caused by people forgetting details,
which should not be surprising given the high complexity and variability of many
software-related processes. Also, people who are fond of a particular procedure
may tend to idealize it, and to present it as being simpler and more straightforward
than it really is.
The usual way to deal with problems of this type is to gather information
redundantly from various sources whenever possible in order to spot possible
inconsistencies caused by missing or (either deliberately or inadvertently) false
information. Redundancy can be achieved, for instance, by interviewing many
participants who play the same role, or by comparing the process described by
people with the actual work products that resulted from past instances of the
process.
Underestimating these costs is, of course, a serious risk for a process modeling
effort. An effort can easily fail if the organization's management is not conscious
167
of its potential costs. Proper planning is, thus, necessary to properly estimate these
costs from the ground up and guarantee appropriate commitment of the
organization's management.
For this reason, descriptive process models should not overemphasize accuracy,
but rather concentrate on achieving a level of detail that is adequate for the stated
modeling goals. Also, organizations that lack process modeling experience should
start with pilot modeling efforts that are restricted to relatively small and well
delimited processes. The experience obtained from such pilot efforts should help
to estimate the potential model size (and involved modeling effort) for larger and
more complex processes.
3.8 References