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 ;-)

Tuesday 1 March 2011

Activiti 5.3 Adds Multi Instance And Rules Integration

Activiti 5.3 was released today and adds following highlights:
  • Added BPMN multi instance (==foreach) support
  • Added BPMN intermediate timer catch event
  • Added business rule task with Drools integration
  • Improved Spring integrations: added possibility to limit visibility of beans and also exposed spring beans in scripts
  • Added administrator console to manage users and groups
  • Added automatic DB type discovery
  • Various bug fixes