Guideline: Customizing Method Content Elements
This guideline provides recommendations for customizing method content elements.
Relationships
Related Elements
Main Description

Customizing a Method Content Element

Any method content element can be customized. The different ways you can customize an element include:

  • adding guidance to existing method content elements
  • adding new roles, tasks and work products
  • adding text and/or relationships to an existing method content element
  • replacing an existing method content element    
  • renaming an existing method content element 
  • changing method content relationships (e.g., changing the role that is responsible for a work product, changing the primary performing role for a task, changing the input and/or output work products of a task) 
  • deleting existing method content elements     

It is assumed that the method content element being customized cannot be modified directly. Thus, all changes must be stored in a separate plug-in from the method content elements being customized. The customizations are then defined using method content variability. To see the resulting changes, you need to browse or publish a configuration that includes the element being customized and the customizations. For more information, see the topic Using Method Content Variability in  Guideline: Defining Method Elements. If you can modify the elements directly, you can follow the topic described in Guideline: Defining Method Elements.

If you customize a method content element that participates in a process, then you will need to customize that process to use the customized method content. For more information, see the topic Customizing a Process in Guideline: Defining and Customizing Processes.

If you add a new element that is categorized, then you may need to add the new elements to the appropriate standard categories. For more information, see the topic Categorizing Method Elements using Standard Categories in Guideline: Defining Method Elements.

The following sections provide specific information on how to customize method content elements.

Add guidance to an existing method content element

Perform the following steps to add guidance to existing method content elements:

  • If one does not already exist, define the plug-in to contain the customization
  • In the new plug-in, define the guidance element.
  • Determine what method elements the guidance should be associated with/referenced from and where those elements exist. 
  • In the new plug-in, define an element that contributes to the original and add the association to the guidance in the contributor.

Add a new role

Perform the following steps to add new method role:

  • If one does not already exist, create a plug-in to contain the new role.
  • In the new plug-in, create the new role and specify what work products the role should own.
  • If you want to add the role as a performer of an existing task, in the new plug-in, create a task that contributes to the task you want to change. In the contributor, add an association to the new role.

Add a new task

Perform the following steps to add new method task:

  • If one does not already exist, create a plug-in to contain the new task.
  • In the new plug-in, create the new task, being sure to specify what role performs the task and what work products are input and output.  

Add a new work product

Perform the following steps to add new method work product:

  • If one does not already exist, create a plug-in to contain the new work product.
  • In the new plug-in, create the new work product. 
  • If you want to add the work product as an input or an output of an existing task, in the new plug-in, create a task that contributes to the task you want to change. In the contributor, add an association to the work product.

Add new text and/or relationships to an existing method content element

Anything (text and/or associations can be added to any method content element using contribution, a type of method content variability. 

Perform the following steps to add text and/or associations to an existing method content element:

  • If one does not already exist, create a plug-in to contain the method content element additions.
  • In the new plug-in, create an element of the same type as the element you want to add to an make that element contribute to the element you want to add to. For example, if I wanted to add an input work product to a task, I would create a task contributor.
  • In the contributor, add whatever it is you want to add to the original element. For example, if I wanted to add an input work product to a task, create an input work product to the task contributor.  

Replace an existing method content element

Any method content element can be replaced using replaces, a type of method content variability. 

Perform the following steps to replace an existing method content element (e.g., a role, task, work product or guidance):

  • If one does not already exist, create a plug-in to contain the method content element that will be replacing the original.
  • In the new plug-in, create the element you want to replace the existing element with (they must be of the same type). For example, if I wanted to replace a task with a new task, I would create a new task.
  • Specify that the new task is to replace the original task (replaces variability).
  • Add the replacers outgoing relationships and textual descriptions. For example, if you wanted to replace task, specify the task's primary performing role and input and output work products.  

Rename an existing method content element

Any method content element can be renamed using extends-replaces, a type of method content variability.

Perform the following steps to rename an existing method content element (e.g., a role, task, work product or guidance):

  • If one does not already exist, create a plug-in to contain the method content element with the new name.
  • In the new plug-in, create a method content element of the same type as the one you want to rename and give it the name you want to use as the new name. For example, if I wanted to rename a task to MyTask, I would create a new task and name it MyTask. 
  • Specify that the new task is to extends-replace the original task (extends-replaces variability).

Change the role that is responsible for a work product

A role may be responsible for one or more work products. A work product may have only one responsible role. The role "owns" the role-responsible for-work product association.

Perform the following steps to change the responsible role for an existing work product:

  • If one does not already exist, create a plug-in to contain the customizations.
  • In the new plug-in, add a new role and make it a contributor to the role that you want to assign the work product to.
  • In the role contributor, add an association to the work product.
  • If there are now two roles that are responsible for the work product, the original responsibility must be removed.
  • Define a role that extends and replaces the original responsible role. In the extends-replaces element, add all of the role-responsible for-work product associations that existed in the original role, except for the one your just replaced. 

Change the primary performing role for a task

A task may only have one primary performing role. The task "owns" the task-primarily perform by-role association.

Perform the following steps to change the primary performing role for an existing task:

  • If one does not already exist, create a plug-in to contain the customizations.
  • In the new plug-in, define a task that extends and replaces the original task.
  • In the new task, specify the role as the primary performer. There is no need to make any more changes since every task can only have one primary performing role.

Change the input and/or output work products of a task

A task may only have any number of input and output work products. The task "owns" the task-work product associations.

Perform the following steps to change the input and/or output work products of an existing task:

  • If one does not already exist, create a plug-in to contain the customizations.
  • In the new plug-in, define a task that extends and replaces the original task.
  • In the new task, specify the desired input and output work products for the task, including those from the original that you want to carry forward, plus the associations to your new work products. 

Delete existing method content elements

Perform the following steps to remove an existing method element:

  • If one does not already exist, define a new plug-in to contain the customizations.
  • In the new plug-in, create a custom category; name it something like "do not publish". Assign the elements you want removed to that category. 
  • Define a new method configuration that includes everything you want to publish. Specify not to publish the new custom category.  For more information, see topic Defining Method Configurations in Guideline: Creating Plug-ins, Practices and Configurations. When you publish that configuration, those elements will not appear.

Customizing a Method Content Element in the UMF

When customizing method content elements that are already existing within the Unified Method Framework (UMF), the following needs to be considered:

  • In general, the practice framework plug-in types need to be considered. These types affect what elements can be placed in what plug-in. For example, customizations of method elements are defined in Extend plug-ins. For more information on these plug-in types, see [Concept: Practice Library Plug-In Types]. 
  • When customizing roles and role assignments, keep in mind that the UMF implements a delayed assignment approach for roles. However, practices may include default role assignments (e.g., specifying what roles perform the practice tasks and what roles are responsible for the practice work products) in separate Assign plug-ins. To change these assignments, make a copy of the Assign plug-in for the practice, and change the desired roles and/or role assignments, as needed. Then use the new assignment plug-in place of the original assignment plug-in when the alternative roles are needed.
  • When customizing standard category assignments, keep in mind that the UMF implements a delayed assignment approach for some standard categories. However, practices may include default standard category assignments (e.g., mapping the practice tasks to disciplines, mapping the practice work products to domains, etc) in separate Assign plug-ins. To change these assignments, make a copy of the Assign plug-ins, and change the desired standard categories and/or category assignments, as needed. Then use the new assignment plug-in place of the original assignment plug-in when the alternative standard category assignments are needed.

Delayed Assignment in the UMF

In the Unified Method Framework (UMF), the following are "delayed assigned":

  • Role assignments: Assignment of performing roles to tasks and assignment of role responsibility for work products
  • Work product kind assignments: Assignment of work products to work product kinds
  • Discipline assignments: Assignment of tasks to disciplines
  • Domain assignments: Assignment of work products to domains

The delayed assignment of roles, domains, work product kinds and disciplines is implemented is through the use of Assign plug-ins. An Assign plug-in is defined for every Base plug-in that contains work products or tasks. 

Assign plug-ins contain:

  • Role assignments:
    • A role for every role to be assigned responsibility for a work product.  Each role is defined as a contributor to an existing role and adds the necessary "role responsible for work product" associations. 
    • A task for every task to be assigned a performing or a supporting role.  Each task is defined as a contributor to an existing task and adds the necessary "task is is performed by role" associations. 
  • Standard category assignments:
    • A discipline for every discipline that is to have tasks mapped to it.  Each discipline is defined as a contributor to an existing discipline and adds the necessary "discipline includes task" associations. 
    • A domain for every domain that is to have work products mapped to it.  Each domain is defined as a contributor to an existing domain and adds the necessary "domain includes work product" associations.
  • Practice-specific role, role set and standard category definitions. Practice-specific definitions for delayed elements are defined in the Assign plug-in to make them easy to change.