This guideline provides general guidelines for defining processes. There are two kinds of process structures available: delivery processes and capability patterns. The fundamental difference between a capability pattern and a
delivery process is that capability patterns are reusable chunks of process that are intended to reused, whereas
delivery processes are intended to be executed as a whole on projects (a delivery process can be used as a template for
planning and running a project.). Capability patterns are typically used as building blocks which are then assembled
into delivery processes or larger capability patterns ensuring optimal reuse.
Defining a process involves creating the plug-in that will contain the process (if it does not already exist),
naming the process and briefly describing it. For more information on defining plug-ins, see Guideline: Defining Plugins. For more information on naming, see Guideline: Method Element Naming Conventions. For more information on writing brief
descriptions, see Guideline: Writing Brief Descriptions. Any issues naming an element and briefly
describing it may indicate that the element is not a good element after all.
Defining a process also involves defining the activities that make up the process and the relationships (i.e., flow) between the
activities. For information on defining the activities (including phases and iterations) that and milestones make up a process, see the "Defining Activities"
section below. When you define process, you define a flow through the method content, which validates that you have the
right method content with the right separation of concerns.
Every process must have a default method configuration that specifies exactly what method elements can be
included in the process. For more information on defining these default configurations, see Guideline: Defining Method Configurations.
When defining processes, it is a good idea to capture the source of the information for the process. This
information is important if you ever need to provide source information for the process for documenting ownership
rights. It is also important to maintain accurate change histories, as well as making sure your trademarks and
copyrights are accurate. For more information, see Guideline: Maintaining Change Histories and Version Numbers and Guideline: Trademarks and Copyrights.
When defining processes, you may find that you want to introduce some packages in order to better organize the
processes. For more information, see Guideline: Packaging Method Elements.
Note: A process can be defined by mimicking an existing process. In that case, you can either define the new process,
using the existing process as inspiration, or actually copy the original process, changing the default configuration
and process contents, as needed.
Descriptors
The separation of concern between method content and processes is achieved through the use of descriptors. Descriptors provide a representation of a method content
element in the context of a process. Descriptors may contain additional information that is only relevant to the
process under construction. Changes to the descriptors in one process do not affect the base definition of the
method content element, nor do they affect other descriptors for that method content element in other
processes. This allows the author to make local changes to a method content element and its relationships in
a specific process.
Descriptors are created in a process when method content elements are added to a process, one descriptor for each
method content element. Such descriptors are linked to their source method content elements. Descriptors may also
be created from scratch and may be left standalone or linked to an existing method content element.
The relationships that a descriptor has to other descriptors is determined by the default configuration of the process
at the time the method content element was added to the process. If the source method content element or the
configuration changes at a later time, the process must be resynchronized to get the latest changes. Only descriptors
that are linked to a method content element are synchronized.
Activity diagrams
Activity diagrams can be used to represent the flow between activities or task descriptors in a process. The control
flow between elements in an activity diagram are represented as predecessors in the work breakdown structure of the
process. For example, if there is a control flow on an activity diagram from Activity1 to Activity2, Activity1 is
listed as a predecessor for Activity2. Changes in activity diagrams are reflected in the work breakdown structure and
changes to the work breakdown structure are reflected in the activity diagrams.
Activity diagrams may occur at any level in the breakdown structure. For example, there may be an activity diagram for
the overall process (includes the first level of activities in the breakdown structure) or an activity diagram for a
specific activity in the process that includes only the elements in that activity.
Activity diagrams are optional, but it is recommended that they be created whenever you have a specific flow between
elements. It is strongly recommended that for any activity that includes other activities that an activity diagram be
created as having a visual representation of the flow will not only be helpful to practitioners that will be following
the process, but it is also helpful to the process author as it may point out potential problems or complexities in the
process that need to be addressed.
Activity diagrams are more popular for representing the flow between activities, especially for representing the
overall flow of a process. However, they can be used to represent the flow between task descriptors. However, if the
flow between task descriptors is more implied by the flow of input and output work products between the
tasks, then an activity detail diagram may be a better choice. For more information, see the "Activity detail diagrams"
section of this guideline.
Activity detail diagrams
Activity detail diagrams can be used to provide an overview of an activity that just includes task descriptors (not
activities). Activity detail diagrams include the descriptors for the tasks, their primary performing roles, their
mandatory input and their output work products. They are organized by performing roles and thus provide a great
overview of what a specific role does in a specific activity in the process.
You cannot create an activity detail diagram for an activity that includes other activities. In such a case, an
activity diagram may be a better choice. Thus, activity detail diagrams only apply at the "bottom" level of the
process. For more information, see the "Activity diagrams" section of this guideline.
You also cannot create an activity detail diagram for an activity that contains tasks that do not have
a performing role specified since an activity detail diagram is developed from the role perspective .
Activity detail diagrams are optional, though they are quite popular for those activities where flow of the tasks
in the activity is determined by the flow of input and output work products between the tasks.
Populating a process
There are several ways to populate a process with method elements:
-
Drag individual method content elements onto an activity in a process. A descriptor for the method content element
is created in the process
-
Drag individual capability patterns into an activity in a process. A copy of the capability pattern or a link
to the source capability pattern can be created. If a copy is created, a copy of all descriptors in the
process are created.
-
Drag individual activities from existing process into an activity in a process. A copy of the activity or a
link to the source activity can be created. If a copy is created, a copy of all descriptors in the activity are
created.
-
Create descriptors directly in the process, which are either unrelated to any method content or related to method
content at a later point in time.
Options 1 and 2 are the recommended means of populating a process.
Every task descriptor and activity can have predecessors (these are what specify the flow between these elements).
These predecessors can be set by specifying them as part of the work breakdown structure for the process or by
specifying the flow between elements in an activity diagram. For more information on activity diagrams, see the
"Activity diagrams" section of this guideline.
Setting the breakdown element flags
Every breakdown element has a set of flags associated with it. Part of defining
a process is setting these flags. The following are some guidelines for setting these flags:
-
Planned: Set this flag for elements that a project manager would want to plan for a project,
assigning it to a particular person with particular date associated with it. This flag is used to indicate what
elements should be included in the exported project planning template. It does not impact whether the item is
actually performed, but rather is used to show the expected level the project is to be tracked to. For
planning purposes the contents of non-planned elements are rolled up to the first planned item in the hierarchy. In
general, activities, not tasks, are planned. However, not all activities are planned. Usually the larger-grained
activities are planned, whereas the fine-grained activities are not. However, ultimately the choice of what to
plan is based on the style of project management for a project.
-
Repeatable: Set this flag for activities whose sub-activities and tasks are run more than once for
the same subject or content serially (not in parallel). For example, patterns that represent iterations are
generally marked as being repeatable.
-
Multiple Occurrences: Set this flag for activities that are executed more than once for different
areas of concern, but they can be done in parallel to one another and are not restricted to be performed serially,
like Repeatable is.
-
Ongoing: Set this flag for activities that do not have a particular start/stop date, but rather
are scheduled by the amount of time they take up. Support and management activities often are ongoing.
-
Event-Driven: Set this flag for activities that occur when a particular event occurs (for example,
Manage Changing Requirements)
-
Optional: Set this flag for activities that are considered to be optional (not required). This
flag identifies whether the related element can be removed from the process without a large impact. This is
intended to provide general guidance to those tailoring the process on the likelihood of removing something having
a negative impact on the integrity of the resulting process. It is not intended to show whether the related item is
mandatory in terms of compliance nor is it intended to show what items have to be done while executing the process.
In other words you would not switch this attribute to mandatory for all elements once a process had been tailored.
Just because something is not marked as optional does not mean it has to always used in that process but is rather
intended to be used as a filter when generating reports to alert the user of tailoring decisions they should
validate. The use of this attribute should not be confused with mandatory and optional inputs which are used to
identify which inputs are critical to performing a task versus (i.e. the task can not be performed without those
inputs) those that should be used if available or may prove useful as additional information.
Based on these definitions not all attributes are valid for all types of process elements and in some cases may require
a slightly different interpretation of their meaning.
Depending on the situation, some or all the above properties can have a dramatic impact on how a breakdown element is
understood. It is therefore useful to emphasize the presence of certain of the above properties through a special
naming convention of the breakdown element. For example:
-
Repeatable: To indicate that there may be more than one execution of an activity, name the
activity with [n] at the end of the name. For example: Inception Iteration [n].
-
Multiple occurrences: To indicate that there may be more than one occurrence of an activity,
include [within Scope] in their name. Therefore, the only instances of a Multiple Occurrence activity are
those with [within Scope] in their name.
Regardless of what conventions are adopted, it is important that are applied uniformly, as haphazard compliance with a
convention may create more confusion than help.
The following sections provide some process-type-specific guidelines:
Defining activities
An activity allows the method author to sequence units of work described by tasks. Activities are the basic
process element in a method. Activities may be sequenced and nested and so very complex structures can be created.
However, as complexity goes up, understandability goes down.
Consider the following when defining an activity:
-
Reuse existing activities and capability patterns wherever possible.
-
An activity should:
-
Be a simple building block
-
Address one topic and have a simple internal structure
-
Be as self-contained as possible with few input work products, that is, the external dependencies are
minimized
-
For each activity, its predecessors and successors should be defined, ideally in an activity diagram. For more
information, see the "Activity diagrams" section of this guideline.
-
If an activity contains a milestone, it is normally placed at the end of the sequence of tasks in the activity. A
milestone might mark the completion of the deliverable or some other significant event in the engagement.
Defining capability patterns
The following provides some guidelines for defining capability patterns:
-
Make capability patterns relatively small and self contained with relatively few dependencies on external
inputs.
-
Create capability patterns for workflows that are intended to be reused.
-
Create capability patterns for sets of tasks are planned as a group on a project, as opposed to being planned
individually.
-
Create capability patterns if there is a workflow fragment that is shared between two or more capability patterns.
Yes, you can share activities between processes, but it is much easier to find the reusable things if they are
capability patterns.
-
Resist creating a proliferation of capability patterns because the can get tedious to create and having many, many
capability patterns makes finding the activity of interest even more difficult. Consider organizing processes into
process packages to reduce complexity.
Defining delivery processes
The following provides some guidelines for defining delivery processes:
-
Define a delivery process for a particular type of project that reflects the specific planning and project
management needs.
-
Define a delivery process by assembling existing capability patterns and adding additional process elements as
necessary (for example, milestones, phases, etc.) to tie to capability patterns together.
|