Why a Universal Business Process Library for OFBiz?
OFBiz is maturing. The framework is quite nice and has been pretty stable for years. Based on it we've built all sorts of business level functionality, creating an excellent set of generic base application artifacts that can be reused in higher level applications. More recently a number of people have started working on applications that are meant for one special purpose or another.
To help push these efforts forward, to help refine the base and special purpose applications in OFBiz, to create a starting point for analysis for customization efforts, and to help organize ourselves as a community I'd like to propose that we create a Universal Business Process Library.
The general idea is to create something like the "Universal Data Model" that has been the foundation of OFBiz for the last 7.5 years, and that will continue to provide the basic business information concepts that we all use on a daily basis. Instead of for data structures, this would be for business processes.
I've spent some time over the years, and others I work work have spent some time more recently, trying to find some sort of business process library we could base this on, but with no real luck. The closest things I've found are some semi-helpful books about business best practices, and documents created as a part of a number of business related specifications. I've started a page with those here:
Still, these are not adequate for our needs, and even if they were I think we would want something that the community could get behind to maintain and expand, just like we do the code in OFBiz, and also tie these artifacts to actual things that exist in OFBiz. So, here we are, a few things I've thrown together to start assembling a Universal Business Process Library:
This isn't meant to include everything that every business might do, but to be a library of general business activities that make up common processes that are shared by a wide variety of businesses. Some may of course be less commonly used, just as certain features in OFBiz are, but the general intent will be similar to that of OFBiz, ie things that can be customized and reused or used as-is for a wide variety of businesses to help with their process automation efforts.
What is in this Library?
This library will consist of Business Process Stories. These stories are basically a series of sentences, each one consisting of an actor and an action. Just keep that in mind, it's always actor and action, actor and action, actor and action. Hopefully that's clear... All sentences need both, and may have conditions on them and other things as well, but always need an actor and an action. One basic rule based on that is no actions with actors.
The top level document has 3 main parts:
1. Actor Definitions
2. General Business Process Stories
3. Stories for Specific Types of Organizations
In part #2 we'll create the library of smaller stories that make up parts of the higher level stories that are in #3. For example, look at the Story of Retail Company:
There are a lot of high level steps in that story that describe general business activities. These are assembled in a way that makes sense for a retail company, but many of the individual activities are just as applicable in different parts of the high level stories for other types of organizations.
Again, part #2 has smaller scoped processes that can be reused in many different types of companies, and based on writing stories for specific types of organizations we'll flesh that out to include a wide variety of business activities organized according to yet higher level business concepts, like the Marketing, Sales, Warehouse Management, etc that are currently in there.
In part #2 each of these process names should also include both actor and action, and for higher level things like this the actor should be the "primary" actor for the story, there will certainly be other actors involved in most of them.
Concepts Behind This, and "HEMP"
The idea of using stories (aka "narratives") like this is a common one. Part of the reason for writing them specifically in the way I've described here is to make them a good starting point for business process oriented use cases, that can then have system interactions added to them (making them system interaction use cases) in order to drive further UI and system design efforts. For those interested, this is based on a lot of research I've done over the years while trying to work more effectively with clients, and I'm working on a book on that topic called "HEMP: Enterprise Software Analysis and Design", HEMP stands for "Holistic Enterprise Mechanization Process". On a side note, a better word for "mechanization" is "automation", but I thought HEMP would make a more colourful and interesting title than "HEAP".
The book for the lightweight version of this process, HEMP light, is now available on http://www.dejc.com/home/HEMP.html
A Special Note on Testing
The requirements and designs that come out of this effort will also help drive automated and manual testing efforts that go on in OFBiz. Sometimes a problem with testing is we don't know what to test, or what the business activities the software is trying to support. This will help with the problem. Along with these business process stories we may want test scenarios based on them, that are linked to from the stories. There may be many things linked to from these stories actually....