How One Workflow Definition Creates Many Workflow Instances

workflow definition

Workflow Definitions and Instances

From the time we humans began moving from the shelter of caves until the present day, there has been a need to build shelters followed by more elaborate buildings and structures.  As the construction practices grew more demanding over time, so did the need to plan the work.

The act of building a shelter or a home then, is part of our common language.  Regardless of who we are or where we live in the world, we understand the concepts of designing and building a home.

For the purposes of this discussion, I am going to apply our “home building” common knowledge to a workflow process.  The steps associated with designing and building a home easily applies to workflow process.

For example, here we have a floor plan for a 3 bedroom, 2 bath home with an attached 2 car garage.  The developer has sold 3 of these homes each with the same floor plan only the color of the garage doors are different.

Workflow Definitions and Instances

Defining Workflow Definitions and Instances

Referencing the picture above.   If the developer does nothing different.  If he simply tells the general contractor to take these plans, build 3 structurally exact houses and paint each garage door a specific color, he has communicated an actionable plan.

What if the developer had elected to use cDevWorkflow for his project needs?  What efficiencies could be realized if the scope of work was divided into workflow steps and actions?

At its simplest program level the workflow would have a single workflow definition and three workflow instances.  A separate instance for each home that detailed the alternate garage door color selection.

And suppose we add a workflow action in our program. A reporting function that details the ordering information for that specific garage door paint color.  Pretty simple use of the tool, but you have to agree it opens up a whole world of possibilities.

In programming terms, cDevWorkflow has an object oriented programing toolset that involves classes and object instances.  cDevWorkflow is such a powerful BPM software engine that programming it to, in effect, replace a post-it note is not a very noteworthy accomplishment.

Using this example, a more fitting application would be to manage the entire workflow process details down to the number of nails or 2×4’s required to build the entire home.

We have been discussing the use of a BPM workflow tool to increase project efficiencies and improve overall performance using the concept of home building.  We built 3 homes with only one difference between them and published one actionable report for paint procurement.

But…

What if….  What if we expanded our workflow definition beyond the original example.  What if we used the same floor plan but expand by detailing each room as a separate workflow definition with supporting workflow instances within?

Starting with the kitchen as the first workflow definition.  Consider using this powerful workflow engine to detail each construction element within this room of the house.   Now when the developer presents the floor plan to the client she is actually selecting or deselecting construction elements.

  • Workflow Definition I.             Flooring
    • Workflow Instance 1.01     Vinyl
    • Workflow Instance 1.02     Tile
    • Workflow Instance 1.03     Wood
  • Workflow Definition II.           Counter
    • Workflow Instance 2.01     Laminate
    • Workflow Instance 2.02     Marble
    • Workflow Instance 2.03     Granite
  • Workflow Definition III.        Cabinets
    • Workflow Instance 3.01     Pine
    • Workflow Instance 3.02     Oak
    • Workflow Instance 3.03     Maple?
  • Workflow Definition IV.       Sink
    • Workflow Instance 4.01     Stainless
    • Workflow Instance 4.02     Ceramic
    • Workflow Instance 4.03     Steel
  • Workflow Definition V.          Kitchen Features
    • Workflow Instance 5.01     Task Lighting
    • Workflow Instance 5.02     Garbage Disposal
    • Workflow Instance 5.03     Trash Compactor

In this example, the developer is providing the client with a valuable service by tailoring the home to their specific wants and needs.  This is true, but it is not the key business reason why the developer is using the cDevWorkflow tool.

Using the workflow definition you can create unlimited number of workflow instances.  Instances have the same structure as the definition but using different input parameter values, the workflow will make different decisions to come up with different outcomes.

Given that each workflow instance is programmed with its specific input parameter values, the process of selecting flooring types becomes a workflow input value.  The result of each workflow instance input value is creating the bill of materials for the project.

In this example, the developer is creating value with his client by helping them specify the materials to be used for the house.  At the same time he is completing the necessary material take-off and detailed costing analysis required to actually perform the workflow definition of building the house.

A small sampling of the Workflow Technology for BPM Solutions contained within our cDevWorkflow product offering can be found here: Workflow Technology That Works.

Learn more about our Process Automation & IT, QA Services or Software Development products and solutions on the Web!  Visit us at: Innovative Process Solutions