Friday, July 17, 2009

Tracing the tracer

When I first got a glimpse of PRPC, I was thoroughly impressed at how easy it looked. I mean, how hard could it be to place some Visio shapes together and link them with various connectors? Well, apparently looks can be deceiving, and what seemed to be a simple visual diagram is really a complex network of activities, decisions and sub-flows. Figuring out how everything ties together is as hard is navigating a spider web. Luckily for us, PRPC includes a tracer feature which lets us sail along the visual pathways with ease, relatively speaking.

Aside from giving us the details on each activity step, stream rule, and/or when rule that has run, the tracer’s high-level objective is to tell the developer which paths the work object has taken. The most common way of branching out the flow (aside from Tickets) is to use Fork shapes, Decision shapes and Utility shapes. While it’s always best to use the shape that is most appropriate for the task, in certain cases, clarity may be more important than function, and likewise, each shape mentioned above provides a different way of seeing the right path.

Below is the screenshot of the most typical used flow fork methods.



Out of all the choices displayed, the When fork may be the least clear. When the When rule returns false, the “ELSE” path is taken, and that is clearly indicated. When the When rule returns true, the tracer’s description displays the name of the rule, which blends in quite well with the rest of the lines, leading to a lack of clarity for the end-user/developer. A lot of times when we have a lot of lines to go through the tracer, it’s good to have a clear indication of what is happening.

For all the other methods, the values/statues returned are clearly indicated. For the decision table/tree, the value returned is clearly displayed. For the utility/activity shapes, the status returned is clearly displayed.

While neither of the methods mentioned above are “best practice”, the information described is good to know when designing and building new application, from a developer’s standpoint.

Below is the flow that was used to get the results described above.




0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home