How to implement workflow
Workflow is any kind of coordinated activity. There are five different building blocks for implementing workflow in a ProjectPipe project. These building blocks can also be used in combination:
- Status values
- Resource Assignment
- Tags
- Values in individual fields
- Outline hierarchy
Status Values
Every major entity in ProjectPipe (e.g., Use Case, Requirement, etc.) has a status field. You can customize the list of status values and their allowable transitions. The definition of allowable transitions is a flexible workflow mechanism.
- PRO: It's built into ProjectPipe, and automatically creates diagrams showing your workflow.
- PRO: Allowable transitions between values are enforced throughout ProjectPipe.
- CON: Works best when your workflow relates to the concept of a status.
Resource Assignment
In ProjectPipe, there are three entities that have an "Assigned" column: Issues, Risks and Tasks. The Assigned column is a pointer to one of the Resources in the project. You can use the Assigned column to implement workflows that are people oriented. For instance, let's say your workflow is that Nellie receives new packages, Opie opens them and Penny processes them. In this case, new packages should be initially assigned to Nellie. Once Nellie is finished her work, she would change the Assigned column to Opie. Once Opie is finished his work, he would either clear out the Assigned column or set it to a resource which represents completion, perhaps the Project Manager or a dummy resource used just for this purpose.
- PRO: It's built into ProjectPipe, and so features like the Dashboard automatically show your assignments.
- CON: An item can only be assigned to one person at a time.
- CON: Limited to Issues, Risks and Tasks.
Tags
There are a number of ways to implement workflow using ProjectPipe's tagging system. Perhaps the simplest way is to create a set of tags that represent states in your workflow, and then assign the tags to your items. You can then query for items with some tags and/or missing other tags. To continue the package example, you could create three tags:
- New Packages
- Open Packages
- Processed Packages
Whenever a package comes in, it starts with no tags -- i.e., no tags means it's a new package. The person who opens new packages queries for packages which do not have the tag Open Packages -- by making a query where column "tags" has value "not Open Packages". Once a package is opened, the tag Open Packages is added to the package. The person who processes packages queries for packages where column "tags" has value "Open Packages" and where column "tags" has value "not Processed Packages". The results of this query are packages needing to be processed. Once processed, each package gets tagged with "Processed Packages".
- PRO: Tags are flexible, and you can create as many tags as you want.
- CON: Doing workflow with tags either involves compound queries (e.g., search for Open and not Processed) or requires removing the previous tag in a workflow transition.
Values in individual fields
Perhaps the simplest way to implement workflow is by storing special values in a selected column. For instance, when a package named Flowers comes in, the package could be given the name "Flowers (new)". The person who opens packages could then query for packages with a name of "(new)". Once a package is open, the name is changed from "Flowers (new)" to "Flowers (open)". Finally, the person who processes packages queries for those with a name of "(open)", and in this case changes "Flowers (open)" to "Flowers (processed)".
- PRO: Really simple -- the name (or whatever field you're using) shows the state of the workflow.
- CON: You must make sure that your special workflow values cannot show up in other circumstances (though using parentheses and other special symbols can help).
Outline Hierarchy
The simplest workflow technique involves using an outline of your data. For instance, let's say that your workflow is to receive a new package, open it, and then process it. In this case, you create an outline with three top level items:
- New Packages
- Open Packages
- Processed Packages
Whenever a package comes in, you add it as a child of New Packages. The person who handles opening packages can, whenever they open a package, move the package from New Packages to Open Packages. Similarly, once an open package is processed it can be moved to the Processed Packages category.
- PRO: Really simple -- your outline is your workflow.
- CON: The workflow changes outline numbers as items are moved around, so you cannot use outline numbers as unchanging reference values.