I remember a discussion I had with a colleague about workflow engine developments and moreover, about the real needs of starting such developments. But, the topic was not only and not really about the development itself, but more about the existence of such engines.
Last June, Gartner published a document presenting the major actors of BPM solutions. Among them, we can find K2 with a coming product called K2.NET, based on the new Windows Workflow Foundation from Microsoft. We can also find FileNet which has been bought by the giant IBM in the meanwhile, but also Fuego and last but not least, Microsoft with BizTalk Server 2006.
Then, on one side we have ready-to-use products, proprietary and requesting customization, and on the other side, Microsoft with the WF. Thus, the question that has come on the table was : When to use the WF and when to use BTS ?
Since this time, I tried to figure out the different criteria needed to help to decide. But the list is absolutely not finished and I am sure that a lot of points could be added.
In fact, what needs to be understood is that the WF has never been designed to replace BTS, not at all. In one case, we have a framework on top of which our application has to be developed and which will be part of the developed application. In the second case, it is a licensed product which needs a bit of understanding (I would say that the learning curve is quite big...) to implement orchestrations between existing applications, building the final solution. Nevertheless, these technologies are complementary.
First, BTS comes with a lot of features and functionalities that are not necessary needed for the majority of the applications.
But, if your application needs to interact with one or more other applications, hosted on different servers or using different technologies (such as Java, for example), BTS is certainly an advantage. With this, BTS allows document transformations quite easily, some of them or some of the file formats are already implemented or just need the installation of an add-in (HL7, SWIFT for example).
With BTS, it is also easy to know what is happening in the system using the BAM (Business Activity Monitoring) and when you need to share credentials or authentication informations between systems whether they are Windows or not, the use of SSO (Single Sign-On) is a big plus over the WF.
At the opposite, if the application has to contain the workflow, the use the WF. And finally, if none of the BTS features is required, of course, then use of the WF is quite obvious.
Again, this list is not exhaustive and would need more points to add, but, in my opinion, it is an interesting start when we think about using a workflow engine.
Comments are welcome...