I’m off to this year’s BPMG conference, Process 2006, where I’ll be giving a presentation on Wednesday about Web 2.0 and BPM. I’m doing some final edits on my slides (I know, I should have had them in to the conference organizers some time ago) and thinking about how I want to focus my talk, and I realize that it will include some elements of a rant against what systems integrators and corporate IT departments do to ruin perfectly good BPMS’.
I come from a systems integration background, having run my own 40-person firm for 13 years, but I was never a big proponent of over-building systems. Of course, back in the old days, you couldn’t just take the BPMS out of the box and make it run, you had to write code just to have any end-user interface at all. Now, however, most BPMS have some sort of user interface out of the box, and even though it isn’t integrated with a company’s line-of-business systems and data, it’s a perfectly respectable way to get started. This is especially true in organizations that are just deploying BPM for the first time, where the users (and IT) really have no idea what it can do for them. My motto is to get something simple into production fast, then start the next round of design in collaboration with the users to figure out where to do the customization and integration that will make things easier for them.
Systems integrators and corporate IT departments may be unmotivated to allow this to happen, although for different reasons:
- Systems integrators get paid for the amount of work that they do. If they write a from-the-ground-up, all-singing, all-dancing customization on top of the BPMS, they make more money up front, and more money down the road when they are required for changes to the application. Although I was never averse to making money as a systems integrator, I tended to push solutions with less customization because I had limited resources to deploy (I kept my team small and the quality extremely high), and I was easily bored so wanted to get something into production, make the customer happy, and move on to another project. In fact, after I returned to private consulting, a large systems integrator to whom I was subcontracted as the principal architect for a client project had me sidelined on the project because I had the audacity to suggest that we do less customization.
- Corporate IT departments feel that they need to maintain control over all software in an organization in order to justify their existence. If the users can create what they need themselves, or can get the software that they need via an SaaS model, IT decreases in importance (and, likely, size) and might even be outsourced. Encouraging the development of software that requires a complex collaboration between IT and the systems integrator in order to install or modify it is in the best interest of an empire-building IT department. So is encouraging software that can only be used for pre-determined tasks, rather than allowing the users to modify the functionality to respond to their changing requirements.
Before you totally flame me on this, I readily admit that these are generalizations: not all systems integrators are greedy, and not all corporate IT departments are control freaks. However, when you come across resistance to doing less customization and giving more control to the users, there is often a grain of truth to these hiding in there somewhere.
Getting back to BPM, this has huge ramifications: over-customization of a BPMS has the effect of turning a nascent Web 2.0 application into a big steaming pile of legacy code. I’m not saying that all BPMS’ are Web 2.0 applications, but if you go back to the original O’Reilly definition of Web 2.0, BPMS’ score reasonably well on a number of the points:
- Web as platform, since almost all BPMS provide their end-user experience on a reasonably lightweight web interface. Many of them still haven’t moved their process designers to a pure web platform yet, which is essential for widespread collaboration on process design, and some use heavy-footprint technologies such as downloaded Java applets, but a zero-footprint web interface seems to be the direction in which most are moving.
- Harnessing collective intelligence, at least in the BPMS’ that allow for collaborative process design (not just executing of collaborative processes). This implies some sort of universally-available process repository, so that I can create the first draft of a process, and a colleague in another location can make their own modifications. Think “process wiki” as a design paradigm. Harnessing collective intelligence would be hugely improved by allowing for tagging of process instances, too.
- Data is the next “Intel Inside”, or as Tim O’Reilly puts it, “database management is a core competency of Web 2.0 companies.” Almost without exception, BPMS’ are built on databases, although the focus in the past has been more on the functionality and not so much on the data as a commodity. However, emerging standards are allowing for the exchange of process designs via BPEL or XPDL, and most BPMS’ do some sort of streaming of process execution data to a business intelligence platform where it can be sliced and diced to your heart’s content. In-flight processes are a bit trickier, since that data is usually proprietary to the execution engine, but I think that the designs and the execution data are the key ones.
- Software above the level of a single device, where the interfaces are suitably advanced to allow not only the Mac or Linux desktops to participate, but mobile devices too. This is trailing somewhat behind the “web as platform” initiatives, since many vendors are still using platform-specific extensions in order to achieve web interfaces, and as I mentioned earlier, many of them also don’t have their process design and management tools fully webified.
- Rich user experiences for those vendors who have embraced AJAX for their user interface. Those that are lumbering along with downloaded Java applets don’t meet my standard here.
The Web 2.0 areas where I think that most BPMS’ fall down is with lightweight programming models, and in ending the software release cycle. In the case of lightweight programming models, we need a way to mashup process instances with other things in a way that can be done by someone in the business unit, not IT, or even by someone external to an organization if the process has external exposure. We also need RSS feeds from processes, which could easily replace/supplement email alerts and management dashboards for monitoring processes, and put the control of the monitoring process squarely in the hands of a user who wants to monitor for a particular condition.
In the case of ending the software release cycle, this is based in part on minimizing or eliminating customizations to the BPMS that increase the regression testing cycle, and in part on getting the BPMS vendors to commit to making their upgrades completely non-disruptive. I’ve been writing software for over 25 years, and I know that that’s easier said than done, but the vendors can’t start with the initial assumption that they can just throw their customer base into complete disarray with every upgrade due to, for example, database schema changes that require significant conversion efforts. Even better, get on the SaaS bandwagon and start offering BPMS as a service. As Salesforce.com has proven, if you offer a good service at a reasonable price, people will trust you with their data.
My point in this rather lengthy post is that many BPMS’ are already halfway to being Web 2.0 when you take them out of the box. It’s what you do with them after that that determines whether they live up to that potential, or just become more legacy code.