Wednesday, 16 March 2011

Unveiling Next Steps Of Alfresco's Activiti Future

There's a very interesting discussion going on at ebizQ: Will case management soon take over BPM? Instead of trying to position all the overloaded acronyms, I'm going to give a concrete picture of where Activiti is now and where we are heading.

Activiti now is a native BPMN process engine with nice web based and other tooling around it. We have a strong adoption already in the developer communities. This has pushed us to support very complex processes with a lot of features for easily including automated steps into the process. We also include strong capabilities to include manual steps into an automated process. Things like specifying a BPMN userTask and associating a form to it. People assigned to the task can then complete tasks by submitting a form.

The limitation with workflows and BPM processes is that they are fixed. That's good for complex processes that are well understood and have a high frequency. Typical examples are handling insurance claims and expense notes. Of course, not all work done in organizations is of this nature.

Even in organizations that manage their business processes well, a lot of work is done ad-hoc. For instance, imagine that you have to organize a 1 year anniversary party for a project that you started almost a year ago (any resemblance to Activiti upcoming 1st anniversary is pure coincidence ;-) Most likely there will be no predefined process for organizing such a party.

It will take someone to analyze this particular problem and to break this complex task in subtasks that can be delegated and combined to achieve the desired results. So a first aspect is that people will get involved. Sub tasks might be created. People will discuss these tasks and refer to existing content like websites, content stored in Alfresco or Google docs. While the organization of the party is in progress, new ideas kick in, making some tasks in the strategy obsolete and other new tasks have to be performed.

People today will tackle this with a bunch of email traffic. And lots of time is spent on writing customized emails to bring different people up to speed. For each new person that gets involved in the party task, it takes a lot of time writing emails for the party organizer to share the bigger context of the request.

The first step that we're adding now to Activiti is a snappy environment in which that kind of collaboration is supported. Apart from the tasks that are created by process instances, you'll be able to create tasks dynamically on the fly. It will be possible to involve people with these tasks, have discussions and associate any kind of content like plain URL's, Alfresco docs, Google docs etc to the task (aka case). Furthermore, it will be possible to create sub tasks dynamically. Here's one of our early mockups:
While building this environment, we include as a criterium that it may not be harder to work with this tool then to write an email.

Imagine that people can be involved in tasks and they automatically get the full background of a particular request they receive. That will drastically reduce email and make the group far more effective.

In a couple of years, the organizer of the anniversaries might start to think: "I've done this before a couple of times. It might be worth documenting or automating the process of organizing anniversary parties". That's when the organizer will be able to open the last party task and start building a process based on the subtasks that were created. We envision a very simple process editor to orchestrate those process steps. Activiti KickStart shows the direction we're thinking in.

At that point it might start to get interesting to include automatic steps. Activiti focusses on simplifying the component model for plugging in new automatic steps in the graphical process authoring tools and in the runtime engine. Extending Activiti Designer shows the direction. This means that in big organizations that have an IT department, the developers can create create custom serviceTask types that can then be used as automatic steps in these processes by non technical people.

In some cases, this might grow to become pretty complex processes. At that point, Activiti KickStart modeling might be too limited as that is targeted at non technical people. Because Activiti is based on BPMN 2.0, it will be possible to move these organically grown processes into full BPMN 2.0 based modeling tools.

This shows how Activiti's strategy to support the organic nature in which business processes are conceived. It reduces email traffic and overhead for ad-hoc work and provides an environment in which managing business processes becomes so easy that you don't really have to think about it.

We plan to have a first version of dynamic case management in our 5.5 release, which is planned for the 1st of May. Then by September we aim to have the full vision of dynamic case management organically rolling into automated business processes completed.

Now imagine all of this would be free, distributed under a very liberal license like Apache and closely integrated into Alfresco's enterprise content management. Wouldn't that be great?!

I think we're heading for some very exciting times at Activiti ;-)


  1. Activiti is mastering the unpredictable. Great! Do you see any role for rules in this?

  2. I really really appriciate what you are doing. Looking forward for next releases....

  3. Hello Tom,
    I use activiti 5.3+mybatis-spring 1.0.0 but I get no type handler at insertVariableInstance with this syntax :

    Could you give me the example to save variable with RuntimeService.
    Thanks in advance :)

  4. @Rooftop & @DMatejka Thanks !

    @Adrian, please refer to the user forum for questions like this:

  5. Tom,

    Very good to post your vision!
    This sets goals and stimulates the expectations and feedback.

    Here a post from Bruce Silver about SAP's next step(s).

    Keep up the good work!!!


  6. This move forward is really exciting news.

    For now what I'm missing most in Alfresco is a way to access completed workflows. Once a workflow has reached its end state, it is thrown into a hidden bin. Sure enough, you can store the outcome of tasks in document properties, or even render new content items.
    But for me, the workflow itself is important as well. You should readily be able to have a look at a document, find out what workflows its been part of, open those workflows and take part of discussions and more that made a document/object reach its current state.

    And I think it is even more important for what you outline here. You should be able to browse workflows in an easy manner, a bit like you can list issues in a tracker. Closed issues do not hide themselves completely. Completed workflows and tasks should be browsable.

    This is important to get in place early in the release of Alfresco Activiti integration. For now, Alfresco Share lists ongoing workflows a document is part of. Just add the completed onces as well.

  7. Hi Tom,

    Thanks for sharing of the great post. Can't wait for dynamic case management in 5.5 release, I hope today is 1st of May.

    By the way, a web app created by me, at allowed you creating Activiti's workflow in minutes.

  8. I've seen some like these talent drawings but already in working software :))

    Tight integration between Adaptive Case Management & Business Process Management:

    Working example (Case Management+BPM) "Software development order" business process + built-in cases:{349EC6D2-4A9C-4704-98DE-70C77C52B935}&login=demo

    Working example "Car loan application process" case:

    Working example "Order management" case:

    Enjoy! :)

  9. Hi Tom,

    I work in the area of order management in the B2B telco space. I am following your work and I see a lot of opportunities - I like especially the structured approach you are taking to takling this issue.

    The problem is finding the fine balance between what is left to be dynamically defined at runtime and what a governing process responsible wants to have fixed.

    I find especially the idea to transform sets of ad-hoc task "flows" into process definitions really good. This would allow the process owner to learn and massively reduce the time from analysis to improved processes.

    The next steps from here would be dynamic "execution plans" where a process can be dynamically composed at runtime from other process fragments based on some conditions. But one step at a time :-)

    All the Best!
    Tiberiu Fustos

  10. Tom,

    Although I (still) am very pleased with the vision you explained in this blog (see my earlier post here), I was wondering if your vision has changed in the recent month(s).

    Please let us know if it has, and your new point of view, or just a confirmation that the path for Activiti will still be the same one you mentioned in this blogpost.

    Kind regards, Patrick

  11. A new and improved version of Explorer has been released in 5.7 and includes case management aspects. KickStart is not included any more from 5.7. For modeling, we now focus only the eclipse designer. There will be backwards compatibly incremental upgrades from here onwards.

    The ideas evolved further in the direction that was explained. And we realized that if we want to shoehorn all of those into Activiti, that backwards compatibility would become a major issue.

    So the direction that I sketched in that post is still alive and has evolved further in a cloud initiative that we're working on. Hopefully we can announce something in the next couple of months.