Last night, a friend asked me about where I’m travelling next, and when I responded “Newark, Philadelphia, San Diego, Orlando and San Francisco”, she assumed that was everything up to the end of May. Alas, that only gets me to the end of March. Here’s the conferences that I’ll be attending or presenting at over the next couple of months:
DST AWD Advance, Orlando, March 17-19: I’m presenting The Technical Side of Process Excellence, particularly around the use of configurable process-based applications for quick solution delivery.
bpmNEXT, Monterey, March 25-27: I’m attending and blogging, as I mentioned in yesterday’s post. I’ll be in San Francisco for the beginning of that week, and possibly stopping in the South Bay area at the end of the week to visit the Computer History Museum.
IBM Impact, Las Vegas, April 27-30: I’m attending the analyst event at Impact and as much of the show that I can cram in in the short time, because after almost a month without conferences, I’ll be doing two in one week.
Appian World, DC, April 30-May 2: I’m attending after a year away (recently, this always conflicts with IBM Impact).
PegaWorld, DC, June 8-10: Again, one that I’ve missed a few times since it was conflicting with the IRM BPM conference in London, but this year they are a week apart and I’ll be there.
BPM Europe, London, June 16-18: I haven’t yet been added to the agenda for IRM’s annual BPM conference, but I’ve been there the past several years so it’s likely that I’ll be there again.
Hopefully, that’s it for the next four months, although there are always last-minute changes. Let me know if you’ll be nearby or at any of these and want to meet up. It’s a fair bet that I’ll be blogging from each of these as well.
The conference that I was most excited to attend last year was bpmNEXT, conceived and executed by Bruce Silver and Nathaniel Palmer: “it’s like DEMO for BPM” is how Bruce original described it to me, and that’s how it turned out. I blogged almost 7,000 words about bpmNEXT and the individual sessions in two days (on an Android tablet, no less), which gives you an idea of the value that I got from it; you can read what I wrote or watch the recorded sessions from 2013 to see for yourself. Of course, a lot of the interesting bits weren’t in the sessions, but in the face-to-face interactions with the world’s BPM afficiandos, many of whom I hadn’t previously met IRL.
This year’s bpmNEXT is coming up on March 25-27, back at Asilomar – a lovely setting, although a bit of a drive from San Francisco – and you can see the list of scheduled presentations here and register here. You have until February 28 to get the early bird pricing, which includes housing and meals.
To be clear, this is an opportunity for learning, networking and collaborating, not selling to customers. Send your people in charge of strategic product direction and innovation, not your usual conference team. If you’re giving a demo, you have the chance to show off your cool new BPM stuff, whether early-stage demo or released product, and get feedback from your peers. If you’re in the audience, you’ll have your mind expanded and your creativity sparked with the mix of new ideas, and have time to discuss them and make some new business connections.
Disclosure: Bruce and Nathaniel have been kind enough to waive the conference portion of my fee, so that I pay only the housing/meals portion plus my own travel expenses. Note that this is one of the few conferences where I pay my own travel expenses to attend (I would be broke, otherwise), so you can take that as my further endorsement of bpmNEXT.
Following the Bosch ConnectedWorld Day 1 keynotes, we broke out to two streams of sessions: business and technology. I’m at the technology track, where we heard from Jim Morrish of Machina Research on the market evolution from M2M to IoT. He had some great examples of how the early telematics/SCADA market evolved to M2M, and is now becoming the more complex and connected IoT market that includes far more than just industrial machines and applications: corporate IT systems, published data feeds, crowdsourced and social media data, and more. Instead of end-to-end connections between hundreds or thousands of like devices, solutions now need to include millions of heterogenous devices and data sources. These changing requirements ripple through the entire software stack: from communications infrastructure and device management to the applications development and operational environments. Being able to communicate, support devices and manage the data flow are the base functionality required, whereas the application development tools are where we’re seeing the competitive differentiators between solutions. In M2M, it was all about the devices and connectivity; in IoT, those are assumed to be offered as a standard platform, and the application developer is key to to creating flexible device-agnostic applications and providing deep integration to business processes.
The remainder of the track was led by the Bosch methodology and solution architecture team — Dr. Frank Puhlmann, Veronika Brandt and Steffen Gürtler — showing us the Bosch software suite for IoT and how the components within it are assembled into a solution. Puhlmann started out by defining the platform, which includes M2M, BPM and BRM; he stressed that a key differentiator for them is being able to have a tight integration between devices and business processes. He used the example of ACME Cleaners (cue Coyote and Roadrunner), an office cleaning company that has a fleet of robot cleaners. And yes, we had a robot cleaner in the presentation room. It’s a commodity cleaner (iRobot), but integrated with a variety of other devices and processes: motion detectors and scheduling software to determine when to run, but also linked to the customer service information such as contracts. He highlighted some of their partners’ hardware involved in the test solution, including a Cisco router and Vodafone SIM M2M, plus their own motion sensors. He also showed a smartphone app that can turn the cleaner on and off, return it to its dock, and even play sounds. He demonstrated a portal that they created, allowing ACME to monitor status and to control devices remotely, but also to process related contracts and invoices. We also saw the Vodaphone portal that can be used to monitor and control the SIM card connections for each device at a more technical level. The entire stack supporting this includes a UI integrator and forms engine connecting to BPM, BRM and M2M management, and including identity management for security. The development environment is model-based, including BPMN for process models, and tightly integrated with the device management.
Brandt and Gürtler then gave a deeper technical look at the ACME Cleaners scenario implementation. In general, the M2M layer interacts with the device events, capturing information that will be used by the higher-level layers, such as area covered by any individual robot cleaner, which may impact billing amounts. The BPM and BRM layers handle customer and device registration, and invoicing according to the billing rules.
The M2M architecture has a central registry of devices that includes information such as the properties of each device, a standardized container for accessing devices, event subscription and processing, and REST APIs. Pretty much any device with an IP address can be integrated into their architecture fairly easily, even more so it if has a REST API already; the ability to control any device will be specific to what functionality that the device exposes. The BPM suite provides a model-driven environment for creating process models, while Visual Rules provides decision tables and trees for modeling rules and decisions. Bringing these together allows for both process-to-device flows — controlling the device schedule, for example — and device-to-process such as sending maintenance requests, with a common identity management layer to control security and access.
Apologies for the graphics quality: the presentation slides aren’t available yet so I’m making do with some bad shots of the projected screen using my phone, and inserting using WordPress for Android which I apparently haven’t completely figured out.
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.
The 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.
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.
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:
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).
My fellow Enterprise Irregular Susan Scrupski posted last month on the split between enterprise initiatives in social media (external-facing marketing) and social collaboration (mostly internal work production and knowledge sharing) – apparently the number of organizations actually integrating these efforts is near-zero. I don’t find this particular surprising, since the people involved and the purposes of the initiatives are quite different, but it doesn’t bode well for efforts to directly connect internal business processes to customers via social media. I started to incorporate themes of linking external social presence into core business processes (recorded screencast here) a couple of years ago in my presentations and writing, based on my own experiences as well as those of my clients. However, when I talk about that Zipcar/Twitter example today, I still get a lot of “wow” reactions in the audience: for most organizations, the idea that social media can be directly integrated as a near-real-time customer interaction channel seems like science fiction. And even for those that do see social media as a customer engagement channel, it often has serious limitations: as soon as you actually need to do a “transaction”, the social media team has to hand off to an operations team, usually requiring that the customer restart their interaction over again through a different channel.
Many organizations are still struggling with the idea of internal social collaboration. Although the software functionality for the social enterprise is robust, and has become integrated with line-of-business functionality such as in BPM and ERP systems, I’m still working with many traditional industries, where managers still want to know exactly how how long people spend on break, and certainly don’t trust them enough to enable on-demand collaboration features in their systems. Although, of course, the workers do collaborate: they just do it outside the systems, creating hidden business processes that provide the collaborative and dynamic aspects using (primarily) email.
This is more than just an outside-in realignment, although that’s a necessary starting point: there’s a combination of technology and corporate culture that needs to allow for the direct connection of external social media and internal social collaboration.
On August 31, camunda released camunda BPM platform 7.0 (community open source and enterprise editions), the first major release of the software since it was forked from the Activiti project in March, although there were nine community releases between the fork at the release of 7.0. I had the chance for a couple of briefings over a period following that with Daniel Meyer, the project lead, and promised that I’d actually get this post written in time for Christmas.
The 7.0 release contains a significant amount of new code, but their focus remains the same: a developer-friendly BPM platform rather than a tool positioned for use by end users or non-technical analysts. As I discussed in a recent webinar, BPMS have become model-driven application development environments, hence having a BPMS positioned explicitly for developers meets a large market segment, especially for complex core processes.
The basic tasklist and other modeler and runtime features are mostly unchanged in this version, but there are big changes to the engine and to Cockpit, the technical process monitoring/administration module. Here’s what’s new:
Inspect/repair process instances, including retrying failed service calls.
Create instance variables at runtime, and update variable values.
Reassign human activities.
Send a link directly to a specific instance or view.
Create a business key corresponding to a line-of-business system variable, providing a fast and easy to search on LOB data.
Add tabs to the detailed views of process instance, e.g., a link to LOB or other external data.
A new authorization framework (also manifesting in admin capabilities for users/groups/authorizations): this is a preview feature in 7.0, supporting only application, group, group membership authorization. In the future, this will be expanded to include process definition and instance authorization. Users can be maintained in an internal camunda database or using a direct link to LDAP.
A complete rewrite of the history/audit log, splitting the history and runtime databases, which is potentially a huge performance booster. Updates to the history are triggered from events on running instances, whereas previously, writing history records required querying and updating existing records for that instance. The history log can be redirected to a database that is shared by multiple process engines; since some amount of the Cockpit monitoring is done on the history database, this makes it easier to consolidate monitoring of multiple process engines if the history logs are redirected to the same database. The logs can also be written directly to an external database based on the new history event stream API. Writes to the history log are asynchronous, which also improves performance. At the time of release, they were seeing preliminary benchmarks of 10-20% performance improvement in the process engine, and a significant reduction in the runtime database index size.
There is some increase in the coverage of the BPMN 2.0 standard; their reference document shows supported elements in orange with a link through on each element to the description and usage, including code snippets where appropriate. Data objects/stores are still not supported, nor are about half of the event types, but their track record is similar to most vendors in this regard.
In September, camunda released a cloud application for collaborating on process models, camunda share. This is not a full collaborative authoring environment, but a place to upload, view and discuss process models. The camunda team created it during their “ShipIt-Day”, where they are tasked with creating something awesome within 24 hours. There’s no real security, your uploaded model generates a unique URL that you can send to others, but it provides the option to anonymize the process model by removing labels if your process contains proprietary information. A cool little side project that could let you avoid sending around PDFs of your process models for review.
camunda’s business model is in providing and supporting the enterprise edition of the software, which includes some proprietary functions in Cockpit but is otherwise identical to the community open source edition, plus in consulting and training services to help you get started with camunda BPM. They provide a great deal of the effort behind the community edition, while encouraging and supporting platform extensions such as fluent testing, PHP developer support and enterprise integration via Apache Camel.