Turning a business process model into the specification, design and implementation of a software solution for process enactment is a non trivial task. It might be considered as not so relevant by business analysts (that typically focus more on BPR and BP optimization), but I think it’s a crucial issue anyway.
Indeed, the specified processes can be a mix of new functionality to be developed and interactions with pre-existing systems and the user’s activities must be supported through effective and usable interfaces, possibly compliant with the visual identity and interaction style of other corporate applications.
Furthermore, the business requirements embodied in the process models, as well as the technical context in which the underlying applications are deployed, are subject to evolution. This may cause severe alignment problems when trying to keep the business process and the application in sync.
I think that business process models per se are not enough for representing the complexity of real world software applications that implement them; therefore other design dimensions must be taken into account in the analysis, design, and implementation of applications.
The gap between process modeling and application development (aka, the business-IT gap) can be alleviated by increasing the degree of automation in the design, implementation and maintenance of applications derived from process models. The automation framework should support the semi-automatic translation of the process model into running applications, be flexible enough to incorporate different architectural and interaction requirements, and apply not only to the initial deployment of the application but also to its evolution and maintenance. An outstanding difficulty in providing such an automation framework is the semantic distance between the process model and the running application: the former dictates roles, activities and business constraints at a very abstract level, irrespective of how these are supported by computing tools; the latter embodies very low-level details, where business, architecture, and interaction aspects are blended together and hard to customize and evolve separately. As an example, the same user’s activity specified in the process model could be enacted in a variety of ways: by means of a wizard, by form editing, by using a legacy application interface, and so on.
With WebML and WebRatio we propose an integrated design approach to BPM that comprises modeling of business processes, application structure, master data, and user interaction, together with automatic model transformations among them. In this way, it is possible to work at different levels of abstraction and get quick prototypes to be discussed with the customers, but also generate production applications to be delivered as finalized systems. Indeed, the models allow the designers and analysts to work on orthogonal aspects of the design, and to fine tune the final application in several ways, e.g., by integrating the visual identity of the organization, plugging in new components, or connecting the business process to legacy applications via Web Services.
The basic design flow we propose is the following:
This is in line with and extends the vision of integrated BPM and MDM (Master data management) design proposed by Clay Richardson (Forrester) and studied by several research and industrial experts, including Rick Hull (IBM Research), ISIS Papyrus and Pallas Athena.
You can try our solution by downloading the free WebRatio tool at http://www.webratio.com .
Software AG buys Data Foundations: Business Acumen Meets Data Competency (Fri, 10/22/2010, Clay Richardson Forrester Blog)
I think your predictions are crucial for both the data and process management fields. I would actually read them more as a recommendation to potential adopters than a mere prediction. I think that the evolutions you mention in the vendor market are only external signals of a deep need that has been latent for (too) long.
I strongly believe that business process models “per se” are not enough for representing the complexity of real world enterprises and therefore also of software applications devoted to implement the enterprise processes.
I think that other design dimensions should be taken into account in the analysis, design, and implementation of such applications.
Besides business processes, data is definitely one of these dimensions, and probably the most important one. In the approach we have been devising for some years, we studied some further aspects:
– application structure
– user navigation
– visual identity
As a research team, we have tried for a long time to find a way to combine all these aspects together in a sensible way. We ended up with Model Driven Development (MDD): different orthogonal models represent the various aspects of the applications and a set of mappings and transformation rules allow a seamless integration of all of them (plus a set of nice-to-have features, such as quick prototyping, integrated documentation, automatic alignment of models and implementation, and so on).
I would be glad to get feedback on this. Do you think it makes sense to consider further aspects wrt data and processes? Might MDD be an interesting option for integrating them?