Workflow design best practice RRS feed

  • Question

  • Hi all,

    I am investigating best practice in workflow design and how the customizations affect that design. Here are my first thougths on this matter, I suppose that there are two main approaches in workflow design and customization:

    1. Workflows that are delivered to customer as a part of the product should be customized directly. This mean that when client wants to add one activity to workflow he will do that directly on the workflow that he got from ISV, optionaly he could rename workflow, for example RecordCustomer workflow could become RecordCustomerCustomization1.1, and the workflow runtime will know how to load wright workflow type. This approach has can affect:

    - Upgrade to new version; When ISV wants to deliver new version of the process it will be hard to compare customized workflow with the original and new version

    - Customizations are on the same place with original activities, and it is hard to say what the customer changed



    2. Workflows that are delivered to customer have customization points between important activities. Customization point is practically sync invoke of workflow or custom sequential activity( we can call it customization workflow). This customization workflow could hold all new activities that are added by customer. Inside customization flow cusomizer could also change some parameters that can affect execution of the main(original) workflow. For example all activities in workflow could have property enabled, and if the customizer changes this inside customization workflow some activities would not execute inside main workflow. Using this properties customizer can not change sequence of activities and add branching for example, but some limited corrections he could do. In this way:

    - We sepparate original workflow from customizations.

    - We simplify upgrade to new version of original workflow



    This are my first thoughts on this, so I suppose that some of my assuimptions are false.


    If you did some exploration on this and you have some experience, please share your thoughts?


    Any link to some article that deals with this would be a great help?



    Indigo Cowboy

    Wednesday, July 23, 2008 6:46 AM

All replies

  • It would be easier to know how to answer this question with a better understanding of the relationship between you and The Customer, and also to know what kinds of workflow The Customer will be involved with.


    Tuesday, July 29, 2008 4:47 PM
  • My thought leans towards #1 with the following notes:

    1. As many standard business logic tasks to be put into custom activities, with options available as dependency properties.

    2. Customer workflows are XOML based and can start from a template. Customization can be done via additional custom activities and setting of #1 activities via the dependency properties.

    Changes in activities would automatically be picked up by existing workflows.
    Tuesday, July 29, 2008 6:39 PM