Windows Workflow

I have recently discovered a really cool feature of the .Net framework 3.5 called Windows Workflow Foundation. I know that I am a little slow and that it has been around for a couple of years but this is the first time I have tried using it. So, if you are not really familiar with WF the reason you would want to use it is if you need to automate business processes.

At the core, WF is a process orchestration framework. You build reusable components that encapsulate a particular workflow step called an Activity then string them together in the WF graphical designer. WF reads the graphic you draw and executes the activities in the correct sequence. Turns out that this is an awesome way to discuss your business logic with a customer because you can show them the flow chart of the activities and they can understand it. This lets you and your customer communicate on the same level and achieve your project goals faster. This is especially true in an agile development shop where most of the software requirements are defined during inspection/adaptation loops.

In my company, we develop training content for customers. This content is web-based and must conform to a content format standard called SCORM that requires metadata and student tracking via a defined JavaScript API. The customer requires that we run a test suite on all the stuff we develop and publish the test logs and content for their review before final acceptance. So, we made a WF workflow that packages the content for deliver, automates the test suite, packages the logs for delivery, posts the content to the review web site, posts the logs to the web site, and sends email alerts to all the appropriate stakeholders. And, it does it all without human intervention. To put this in programmer terms, we have created a automated build script for the training content using WF and it works great.

Next, we want to build a workflow for the content review process. This will have a workflow that starts with the customer making a change request and follow that CR through the approval process and into the work order that will drive the actual change.