Effektif: Simple BPM In The Cloud

Ten months ago, Tom Baeyens (creator of jBPM and Activiti) briefed me on a new project that he was working on: Effektif, a cloud-based BPM service that seeks to bridge the gap between simple collaborative task lists and complex IT-driven BPMS. In October, he gave me a demo on the private beta version, with some discussion of what was coming up, and last week he demonstrated the public version that was launched today. With Caberet-inspired graphics on the landing page and a name spelling that could only have been dreamed up by a Belgian influenced by Germans šŸ˜‰ the site has a minimalistic classiness but packs a lot of functionality in this first version.

We talked about his design inspirations: IFTTT and zapier, which handle data mappings transparently and perform the simplest form of integration workflow; Box and Dropbox, which provide easy content sharing; Trello and Asana, which enable micro-collaboration around individual tasks; and Wufoo, which allows anyone to build online forms. As IFTT has demonstrated, smaller-grained services and APIs are available from a number of cloud services to more easily enable integration. If you bring together ideas about workflow, ad hoc tasks, collaboration, content, forms and integration, you have the core of a BPMS; if youā€™re inspired by innovative startups that specialize in each of those, you have the foundation for a new generation of cloud BPM. All of this with a relatively small seed investment by Signavio and a very lean development team.

One design goal of Effektif is based on a 5-minute promise: users should be able to have a successful experience within 5 minutes. This is achievable, considering that the simplest thing that you can do in Effektif is create a shared task list, which is no more complex than typing in the steps and (optionally) adding participants to the list or individual tasks. However, rather than competing with popular shared task list services such as Trello and Asana, Effektif allows you to take that task list and grow it into something much more powerful: a reusable process template with BPMN flow control, multiple start event types, and automated script tasks that allow integration with common cloud services. Non-technical users that want to just create and reuse task lists never need to go beyond that paradigm or see a single BPMN diagram, since the functionality is revealed as you move from tasks to processes, but technical people can create more complex flows and add automated tasks.

Within the Effektif interface, there are two main tabs: Tasks and Processes. Tasks is for one-off collaborative task lists, whereas Processes allows you to create a process, which may be a reusable task list or a full BPMN model.

Within Tasks:

  • Effektif task definition and executionThe Tasks interface is a simple list of tasks, with a default filter of ā€œAssigned to meā€. The user can also select ā€œIā€™m a candidateā€, ā€œUnassignedā€ or ā€œAssigned to othersā€ as task filters.
  • Each task is assigned to the creator by default, but can be assigned to another user or have other users added as participants, which will cause the task to appear on their task lists.
  • Each task can have a description, and can have documents attached to it at any point by any participant, either through uploading or via URL. Since any URL can be added, this doesnā€™t have to be a ā€œdocumentā€ per se, but any link or reference. Eventually, there will be direct integration with Google Drive and Box for attachments, but for the next month or two, you have to copy and paste the URL. Although you can upload documents as attachments, this really isnā€™t meant as a document repository, and the intention is that most documents will reside in an external ECM (cloud or on-premise).
  • Each task can have subtasks, created by any participants; each of those subtasks is the same as a task, that is, it can have a description, documents and subtasks, but is nested as part of the parent task.
  • Any participant can add comments to a task or subtask, which appear in the activity stream alongside the task list but only in context: that is, a comment added to a subtask will only appear when that subtask is selected. Other actions, such as task creation and completion, are also shown in the activity stream.
  • When the subtask assignee checks Done to complete the subtask, they are prompted with the remaining subtasks in that task that are assigned to them. This does not happen when completing a top-level task, which seemed a bit inconsistent, but I probably need to play around with this functionality a bit more. In looking at how processes instances are handled, likely a task is executed as a process instance with its subtasks as activities within that instance, but that distinction probably isnā€™t clear to (or cared about by) a non-technical user.

Effektif process definition and execution (release version)Within Processes, the basic process creation looks very much like creating a task list in Tasks, except that youā€™re creating a reusable process template rather than a one-off task list. In its simplest form, a process is defined as a set of tasks, and a process instance is executed in the same way as a task with the process activities as subtasks. When defining a new process:

  • Each process has a name. By default, instances of this process will use the same name followed by a unique number.
  • Each process has a trigger, either manually in Effektif using the Start Process button, or by email to a unique email address generated for that process template.
  • The activities in the process are initially defined as a task list, where each is either a User Task or Script Task.
  • Each user task can have a description and be assigned to a user, similar to in the Tasks tab, but can also have a form created for that activity that includes text fields, checkboxes and drop-down selection lists. A key functionality with forms is that defining the form fields at any activity within a process creates process instance variables that can be reused at other activities in the process, including within scripts. In other words, you create the process data model implicitly by designing the UI form.
  • Effektif process definition and execution (release version)Each script task allows you to write Javascript code that will be executed in a secure NodeJS environment. Some samples are provided, plus field mapping for mapping instance variables to Javascript variables, and an inline test environment.
  • Optionally, the activities can be viewed as a BPMN process flow using an embedded, simplified version of the Signavio modeler: the list of tasks is just converted to process activities, and you can then draw connectors between them to define serial logic. XOR gateways can also be added, which automatically adds buttons to the previous activity to select the outbound pathway from the gateway. You can switch between the Activities (task list) and Process Flow (BPMN) views, creating tasks in either view, although I was able to cause some weird behaviors by doing that ā€“ my Secret Superpower is breaking other peopleā€™s code.
  • The process is published in order to allow process instances to be started from it.

To create a simple reusable task list template, you just give it a name, enter the activities as a list, and publish. If you want to enhance it later with triggers, forms and script tasks, you can come back and edit it later, and republish.

When running a process instance:

  • Effektif process definition and execution (release version)The process is started either by an email or manual trigger, which then creates a task in the assigned userā€™s task list for the process instance, containing the activities as subtasks. If no process flow was defined, then all activities appear as subtasks; if a flow was defined, then only the next available one is visible.
  • As with the ad hoc tasks, participants can create new subtasks for this process instance or its activities at execution time.
  • If gateways were added, then buttons will appear at the step prior to the gateway prompting which path to follow out of the gateway. Iā€™m not sure what happens if the step prior is a script task, e.g., a call to a rules engine to provide the flow logic.

As I played around with Effektif, the similarities and differences between tasks, processes (templates) and process instances started to become more clear, but thatā€™s definitely not part of the 5-minute promise.

Iā€™m not sure of the roadmap for tenanting within the cloud environment and sharing of information; currently they are using a NoSQL database with shards by tenant to avoid bottlenecks, but itā€™s not clear how a ā€œtenantā€ is defined or the scope of shared process templates and instances.

Other things on the roadmap:

  • Importing and exporting process models from the full Signavio modeler, or from other BPMN 2.0-compliant modelers, although only a small subset of activity types are supported: start, end, user task, script task, XOR gateway, plus an implied AND gateway by defining multiple paths out of a task.
  • Additional start event types, e.g., embeddable form, triggers from ECM systems such as triggering a workflow when a document is added to a folder.
  • Google Drive/Box integration for content.
  • Salesforce integration for content and triggers.
  • Common process patterns built in as wizards/templates, allowing users to deploy with simple parameterization (and learn BPMN at the same time).

Effektif is not targeting any particular industry verticals, but are positioned as a company-wide BPM platform for small companies, or as a departmental/team solution for support processes within larger companies. A good example of this is software development: both the Effektif and Signavio teams are using it for managing some aspects of their software development, release and support processes.

There will be three product editions, available directly on the website or (for the Enterprise version) through the Signavio sales force:

  • Collaborate, providing shared task list functionality and document sharing. Free for all users.
  • Team Workflow, adding process flows (BPMN modeling) and connectors to Salesforce.com, Google Drive and a few other common cloud services. The first five users are free, then paid for more than five.
  • Enterprise Process Management, adding advanced integration including with on-premise systems such as SAP and Oracle, plus analytics. That will be a paid offering for all users, and likely significantly more than the Team Workflow edition due to the increased functionality.

I donā€™t know the final pricing, since the full functionality isnā€™t there yet: Box, Google Drive and Salesforce integration will be released in the next month or two (currently, you still need to copy and paste the URL of a document or reference into Effektiv, and those systems canā€™t yet automatically trigger a workflow), and the enterprise integration and analytics will be coming later this year.

Go ahead and sign up: it only takes a minute and doesnā€™t require any information except your name and email address. If you want to hear more about Effektif, they are holding webinars on February 3rd (English) and 6th (German).

Effektif BPM