A few years back the company I was working for brought in somebody to come up with some ideas for our system architecture in preparation for a big enhancement push. We laid out our goals which included heavy automation of business processes, leaving people in positions to do what they do best supporting our call center. That also means high visibility of the business processes to all staff and eventually our clients. This person’s answer… Biztalk. OK, you could argue that it is acceptable in executing business processes, at least so long as these processes rarely involve people. I think of NServiceBus in a similar way. Or any of the BPEL (Business Process Execution Language) oriented products out there. They do facilitate processes made up of work done by a variety of systems, something often called service orchestration. But most of these systems totally fail in helping where people are involved.
Of course there is a counter story to this. Ask a business person to find workflow solutions and you come up with things like SharePoint, or FileNet or even PeopleSoft. They are mostly about coordinating unstructured data in documents between people with some sort of rules: approvals, routing, limits that sort of thing. Most of the high level decisions and calculations must be done by people. Even when the the decision process is understood well, the way these systems are built frustrates additional automation because the data tends to live in blobs as pdf files or scanned images. There are CRM systems that do a little bit better if they are reasonable at allowing custom data to be associated with the “customer” records, and the automation can access that data as meta data to the document. Think SalesForce or Microsoft Dynamics. But most really don’t do any better at real automation when you have useful back end systems.
What should a good workflow system do?
Workflow coordinates people and systems to get stuff done.