This is an old revision of the document!


States for Work Products

Work Product represents the artifact, outcome or a deliverable created or consumed during the process. In the overall context of a process, a work product progresses through various states due to increased maturity or added content. This change in state can happen within a workflow or through the course of different workflows during the product or program lifecyle. For example, a work product like 'Software Project Plan' would typically go through change in states like 'draft', 'under review', and 'approved' in a software engineering process.

Similar to other modeled process elements, work product states can also be modeled and then reused across processes.

Create a work product state

There are two ways to add a new state to a work product:

1. Model them while modeling a work product as an input/output to an activity or a workflow

Type in the name of a work product and click or tap on the right arrow next to the work product.

Next type in the name of the state as shown in <font inherit/inherit;;#ffffff;;#c0392b>(2)</font> and select the create option as shown in <font inherit/inherit;;#ffffff;;#c0392b>(3)</font>. In the following example, a new state called 'Approved' has been added.

2. Model a list within a work product and reuse them in an activity or a workflow

To add a set of states to a work product, navigate to that work product and click or tap on 'Add' to add the states.

Note: For consistent interpretation across user base, it is recommended to provide a description of what this state means by clicking or tapping on three dots next to newly added state as shown in <font inherit/inherit;;#ffffff;;#c0392b>(2)</font> and selecting edit option which will open the description text.

The work products states can also be created and assigned to work products through other process elements like milestones, guidance and value streams using same steps as described for activities and workflows in their respective context.

Use a work product state

Once the work product states have been created for a work product, they can be used and reused for any activity where the work product is an input or an output. For the work product, 'Software Project Plan', three states have been created, hence while selecting it as an output, modeler can view the right arrow indicating further state selection.

On clicking or tapping on right arrow next to this work product, the modeler can then view all available states (draft, under review and approved) for this work product to select one or even assign this work product as an output without any state.

In this example, modeler selects the 'Draft' state for 'Software Project Plan'. The selection of 'Draft' as a reusable state (and not as comment) is indicated by the tag symbol.

'Comment' vs. 'State'

Modelers can continue using commenting feature for work product. To add a comment, modeler has to be click or tap on the three dots of a work product used as an output or an input and select 'Edit Comment'.

Note: Once the comment has been entered, hit on return or Enter key of your touch screen/keyboard to save the comment.

This comment is free text field and is not reusable. Hence, any state updates to a work products should not be added as comment, but modeled using the work product State feature.

Unlike commenting, state feature allows synchronization of a change (like renaming of state name) across Stages just like any other process element (work product, guidance, etc) modeled in Stages.

Tailoring of a Work Product State

Work Product states can be tailored in or out, like any other process element. This can be done by selecting specific states using the right arrow selection next to work product. This tailoring allows further refinement of allowable states in a given project type.

Reporting API Extensions

The reporting API has been extended to access the work product states via new entities:

  • workProduct.getEntities(“hierarchy::HIERARCHIC,targetrole=dependentElements”) returns the list of states for a work product element
  • state.getEntities(“hierarchy::HIERARCHIC,targetrole=containerElement”) returns a single element list with the work product for a specific state element
  • activitiy.getEntities(“input”) and activity.getEntries(“output”) now return a list of either work products or states
  • getProperty(“Dependent”) can be used to determine if an element is a normal element (= false) or state element (= true)