tags:

views:

107

answers:

2

What do you prefer (from your developer's point of view) when it comes to implement a business process?

A Business Process Management System (BPMS) or just your favorite IDE with the needed tools and frameworks (a reporting tool for example)?

What is from your point of view the greatest Benefit of a BPMS compared to an IDE with your personal tools and frameworks?

OK. Maybe I should be more specific... I got to know one specific BPMS which should make it easy to implement a business process by configuring rules. But for me as a developer it is hard to work with the system. I would like to work with text files which I can refactor and I would like to be able to choose the right technology or framework for the job I have to do. Instead the system forces me to configure.

There are rules where I can use java, but even then I have to stick to the systems editor without intellisense etc.

So this leads me to the answer of my own question - I would like to use the tools I am used to instead of having to learn how to work with a BPMS (at least the one I know) because it limits me more than it helps. The BPMS I know is a framework from which it is hard to escape! At this time, I would prefer a framework like Grail over any BPMS I know.

So maybe the more specific question is: do you feel the same or are there BPMSes which support you in beeing a developer and think like a developer or do most of them force you to do your job a different way?

+1  A: 

BPMS-- a lot of common business case, use case are already implemented. So you just have to know how to use it. For common workflow, you don't even need to write a single line of code, though mostly you would have to write some scripts to cover things that are not yet implemented.

Plain programming-- just use the IDE to hack out the code. The positive side: more control. The negative? A lot of times are spent on rewriting boilerplate code. And you have to maintain them.

So in a nutshell, I would prefer a Business Process Management System. One that I would recommend is ProcessMaker. It features an intuitive process designer that allows you to design workflow with drag and drop. And you can always write trigger to extend the process functionalities. It's open source as well.

Ngu Soon Hui
So you get a better start with a BPMS since you already have your system in place and don't have to care about the login screen, session handling etc... But if you've to implement a lot of processes, is this still valid? I mean with the first process, you've implemented your boilerplate code which you can reuse for the second...
Ralf
Yes, with BPMS it's still faster to go
Ngu Soon Hui
+1  A: 

Not sure what exactly you ask, but the choice BPM vs. plain programming will depend on the requirements. A "business process" is a relatively vague term in software engineering.

Here are a few criterion to evaluate your needs:

  • complexity of the rules - Are the decisions/rules embodied in your process simple, complicated, configurable, hard-coded?
  • volatility of the process - How frequently does your process change? Who should be able to make the change?
  • integration need - Is your process realized using multiple heterogenous services, or is all implemented in the same language?
  • synchronous/asynchrounous - Is your process "long-running" with the need to handle asynchronous actions?
  • human tasks - Does your process involves human interaction, with task being assigned/routed to people according to their roles/responsibilities?
  • monitoring of the process - What is the level of control you want on the existing process instances being executed? Do you need to audit the actions, etc. ?
  • error handling - Depending on the previous points, how do you plan to deal with errors, or retry of faulty process execution?

Depending on the answer to these questions, you may realize that your process is closer to a simple state chart with a few actions and decisions that can be executed in a sequence, or you may realize that you need something more elaborated, and that you don't want to re-implement all that yourself.

Between plain programming and a full-fledge BPM solution (e.g. Oracle BPM suite which contains BPEL, rule engine, etc.), there are intermediate solutions such as jBPM or Windows Workflow Foundation and probably a lot of others. These intermediate solution are frequently good trade-off.

ewernli