Hello
People of the Internet!! Please excuse my delay for posting this article and
for my absence I had a really tough month!

Following are the most important points we talked about. Hope it helps you too!
Why work
with BPM? And is there a right or wrong way to create and develop Processes?
I'll tell
you first how I got into the 'BPM world' before answering more general why BPM.
I myself
kind of 'rolled into' the BPM world by accident. I was working at a consultancy
company at the time and got an assignment to look at JBoss jBPM. It took me a
while to figure it all out (I was fresh out of school), but eventually I
started asking questions on the forum and contributing patches. I still
remember that the very first reply to a question I asked was a good old 'RTFM',
which was a good way for me of learning how open source worked ;-). But I loved
it, it was a completely different way for me on how to think about software. I
did some BPM projects following on that, before I was asked to join the jBPM
team. Later on, we founded the Activiti project ... and the rest is history :-)
In general,
there are two ways to think about 'why' one would like to do BPM. The first one
is from the point of view of the business: the business people want to use BPM
software to first of all automate something that wasn't automated before (or it
was automated, but they want to change it). You could do that with regular
software coding of course, but BPM gives you visibility and insight into what
will be implemented and what will happen when the software is executed. The BPM
diagram is the main discussion artifact here: the business has a clear view of
how the software will work, and has the means to change it 'easily' (although
it is never a matter of adding a few boxes and drawing a few arrows, in my
opinion, all changes, even in BPM need to be well thought through by both
business and technical people. It is very easy to make bad software, even when
you use a BPM system. Secondly, a BPM system gives you insight into what has
been executed. One of the core goals is to collect and store audit trails, to
capture what has been executed and use that data later on to improve your
processes.
From the
technical point of view, the main benefit is the process diagram. We all know
how hard it is to discuss requirements with business people. Typically, lengthy
documents are written (that hardly anyone reads) that should capture the
runtime behaviour of the software. We all know that comes with mistakes. It is
my belief that by using the process diagram as discussion artifact between
technical and business people, a first step is taken to capture and discuss
requirements. By using a common medium to talk about the software, using a
language that both sides understand, the end result becomes something that both
sides know how it works. And with Activiti, we made sure that using such a
process diagram and running it at runtime is as close as possible to actual
'regular coding'. Typical BPM systems are black box, and not really fun to use
for a developer. Activiti embeds in your code and doesn't get in the way, it
allows you to write code just as before, but now with the benefit of having
this 'shared medium', the process diagram between business and IT people.
When people
take the decision to start managing their Business Processes, the first
question that comes to mind, when looking into open source solutions, is "what
to choose?". Are there Axes to take into consideration or is there a comparison possible between
Activiti, JBPM and Bonita BPM (on Technical level) that helps?
Take
anything I say with a pinch of salt, because I'm obviously biased since I get
paid by working on Activiti. I used to work on jBPM 3 and 4 (long time ago),
but haven't looked much at the code of jBPM since then (nor Bonitasoft for that
matter).
It seems
that we all target the developers as a first-class citizen (although from what
I can see from their marketing Bonita seems to be more about 'apps' now).
jBPM has
it's JBoss Drools heritage, which you can see in the API's and in their setup.
Also, jBPM is obviously made to run in the first place on JBoss/Wildfly (it
does run on others), while we are agnostic when it comes to
webservers/application servers. I don't know that much about Bonita, to be
honest. So can't give a fair comparison there.
I guess
that's the beauty of open source: you can try them all out, look ath the API's
and the code behind it ... before actually deciding. (but
obviously Activiti is the best ;-) )
What are the best references to learn Activiti (including coding and integration with other ECM modules solutions) aside from Activiti in Action?
Activit in action is a great resource, but its now a few years old (but still very relevant).
Otherwise, the userguide on activiti.org has a lot of information. Also, the Activiti forum is the place to ask questions when you are stuck, all our team members frequent the forum.
There is also another book on activiti from Packt publishing. But I dont believe its a good starting point.
And lastly, there is my blog (jorambarrez.be), which talks mostly about very detailed Activiti stuff. But for example the spring boot tutorial and videos are a good start too.
So this concerns the GL5/3 who have a final project to work on, I asked Joram about the technologies that work best with Activiti and he recommanded:
Activiti and Esper is a fun combination. I wouldn't go for Vaadin these days, but rather for a full javascript framework. We are big fans of AngularJs. Our new UI's are all written in it and we found it really easy for java people to pick up.
If you really want to use the coolest tech of the moment, I'd use Spring Boot for the backend and Rest layer. We have excellent integration with it too. There is a blog I did a year ago I think that is like a first tutorial.
If you have more questions or you want some more clarifications feel free to post them on the User Forum.
Thamk you for this. I will follow you :)
ReplyDelete