Wednesday, March 14, 2007

Workflow lunch and learn

Like before I am using my blog as a way for me to keep notes preparing for a lunch and learn. This time I am going to be talking about workflow in Cúram.

So I thought to gather some input from my intended audience and I narrowed it down to three main topics.

  • What is workflow?
  • What is provided by Curam workflow?
  • How do we use it in our application?

What is workflow?

Starting up it was easy, I basically took the text from the Curam Workflow Overview Guide and cleaned up some English after I pasted it. When I was looking at it, it seemed a bit wordy and I was thinking if I really would want to keep it there. After giving it some thought, I would keep it there. However, I would just say it as such:

"Workflow is basically a set of activities. Each activity is connected with a transition."

I was thinking about saying something along the lines of it being a graph, verticies and edges, but since I don't think everyone of my audience is a computer science major, I decided against it.

Then I moved down one level and talked about the activities. I considered removing the list of activitie types from the slide, but I changed my mind in the end. Seeing that list shows the different kinds of activities very quickly.

I started creating a separate page for each activity matching the order I gave in the previous slide. As I was doing this, I realized that the audience might get lost because there is no overall picture. So I took a simple workflow with a single activity and showed where the transitions and where the activities are. I was thinking of putting it after the "What is workflow?" slide, but decided to put it after the "What is an activity?" slide instead after I realized that the Start and End process are also activities and it would look weird if they didn't see the activity type list first. As I was writing the activity types. I found that I am throwing in new jargon: event, workflow data objects, enactment. I didn't really want to detract from those while I am speaking, although I would have to describe them. So I opted to just briefly define the terms as I am speaking through the slide. To make sure that I don't forget, I made it so that the terms are bolded on the slide. After all the activity types have been described, I made a quick summary page of what the new terms were. However, I thought it would be nice if I had a quick visual summary of some of the activity types (I was thinking of doing all, but since we don't even use all of them, I just put in the important ones: start, end, manual, automatic, loop). I put that before the new term summary.

What is provided by Curam workflow?

I was wondering how to write this one up without making it sound like a laundry list. But in the end I did just write a laundry list at least to start

  • Web based editor with visualization
  • Version control
  • Workflow tracking
  • Task management
    • Event waits
    • Deadlines
    • Work Allocation
  • Notifications
  • Localization of task and notification content

As I saw it, it looked pretty bland. So rather than just showing them one page listing them when I present it I was going to initially show the audience the list, then go through screen shots of what Curam does provide.

How do we use it in our application?

After looking at our application, we only used workflow in two places:

  • Business life cycle of different case types
    • We implemented a life cycle for assignment and approval for our application.
    • The notion of a business life cycle allows us to create a separate flow for the application and allowed us not to touch to the case life cycle (much)
    • Ideally we would leave the Curam case life cycle (open, approved, active, closed, etc) alone as it is tied closely with other parts of Curam, specifically the financial manager.
  • Notification "tasks"
    • These workflows have a single manual activity that is meant to be a notification to whoever.
    • This allows us to keep things easier for the user so they do not need a different notion for tasks and notifications.
    • Ideally we would use the standard notification system with Curam. The notification system of Curam allows for other delivery mechanisms such as e-mail. I've alluded to the fact that we should get the users to adapt to Curam, since it will prevent us from doing unnecessary work.

But that's just one slide, so I padded it a bit with a couple of slides that showed code snippets that show how to enact a workflow process and how to raise events. Those two operations are what developers that do not do workflow would have to deal with.

Why should we use workflow?

I added this section as an after thought to close off the presentation. These set of slides talk about the benefits of using it. In short the answer is: less work at least for the developers and the maintenance team, the BAs have to do a bit more work now.

And finally some references.

0 comments: