Thursday, November 15, 2007

Batch processing example in BPMN




Recently I was presented with this scenario by a colleague and asked, how would I do it in BPMN.
Following is the use case and then there is a proposed BPMN solution out there.
* Process starts with a receive from an queue.
* Queue returns a set of structured elements
* For each element
o Check If element is invalid
o Group elements as type A / B / GP
* End Loop *

* Now, for each set, process as follows
o Invalid elements
+ Prepare report based on invalid elements
+ Email report to managers
o sub-element-set A
+ Group each set of sub-element-A by any common values
+ Determine task assignee for each grouping of elements
+ Generate a human workflow task for each grouping of lements
+ Return immediately (e.g. don't wait for task to complete)
o sub-element-set B/element-GP
+ Merge the two sets of elements
+ Prioritize each of the new set of elements
+ Group each set of elements if they have a common sub-element-B value
+ Determine task assignee for each grouping of elements
+ Generate a human workflow task for each grouping of lements
+ Return immediately (e.g. don't wait for task to complete)
* Done.



Tuesday, October 16, 2007

BPMN diagram updates - who owns Business or IT?

Talking to a prospective customer, the inevitable question cropped up what happens if IT suggests changes to blueprint. Should IT be allowed to modify the process definition at all. Since Business owns BPMN diagrams, should implementation be allowed to update the business process defintion.

In my opinion it should be left to individual implementing organizations. THe tools should support both options: allowing IT to update the Business process and preventing it. Lets give the control to business and IT users and let them decide what changes are allowed. Every organization will have its own dynamics.
  • Some orgs, where IT is deeply entrenched and understands business for a long time, can definitely benefit from the flexibility.
  • Other organizations may have a more strict guidelines and controls over the BP definition with business users.
  • Some other orgs may identify process architects who can make the decision and controls / vets the process definition both before and after implementation.

Another interesting thing that was pointed out was the need for best practices and supporting trainings / tutorials / documents detailing how the tools should be used. I strongly think empowering customers with the capabilities of the tools is the key to successful adoption. I hope this blog is also contributing to the same.

Sunday, September 02, 2007

Lanes and Pools

I was doing a training recently and the audience was predominantly technical. They knew WSDL, BPEL, JCA etc. One question that came up was why do we need lanes and pools. There is no implementation artifact being directly created based on lanes.
I could easily point that Pools are process boundaries, and I could see heads nodding. Even then questions remained about boundaries of pools. Then the question became why lanes?
At that point I realized that it is more important to emphasize the reason why people do BPM. It is not just to draw pretty pictures, it is :
to have a common understanding of processes;
to identify and document their processes as is;
to identify inter and intra departmental communications;
to find the bottlenecks;
to ensure that the processes as defined / documented is the same as implemented.

Once you see this value proposition of a BPM project, the value of pools and lanes becomes obvious. Pools help you identify the exact boundaries of your process. Pools will also show you inter-departmental communications - often the bottlenecks.
Lanes facilitate clear identification of roles and responsibilities within the organization. Identification of ownership of a given activity is at times the biggest reason why that activity will be performed in time. The intra communication points between various parts of your organization can be found using lanes.

That in summary is the value of using lanes and pools to document your process.

Sunday, August 19, 2007

Business and IT views

I have been looking at the perspective of a business user and comparing that with one of an IT developer. Very interesting observation: let me begin with an example,
Business user view (BPMN):
1. Lets do a credit check. (Activity)
2. If good score do X, if avg do Y and if below avg do Z. (Gateway)

How does this get implemented by IT
Step 1: Credit Check.
1. How do we do credit check - automatic using a computer system or a human operator keying in values and getting the credit score?
2. Is it existing customer or a new customer?
--If existing and in good standing do we still need a credit check?

--- If not existing customer, lets get credit score from Experian.
3. Or should we get multiple scores and then average them out.
4. What happens if I dont get a response back from Experian in 2 minutes given a SSN? Should our IT system try multiple times - of course but then how many 5 -10 and at what interval?

These are SOME of the challenges that your IT staff will need to answer to implement a so called single step in your business process.
Does the solution you are looking at provide this ability?
Moreover, if Experian astarted charging you more $ for the credit check how easily can you move your business to start using scores from Equifax?
Will you need professional services from the vendor to make changes?
Or do you think the solution is standards based so you can have your IT staff make the changes internally?

How about a tool that lets the business user design their business process with the simplicity as outlined in the Business View and gives IT users freedom to implement this activity in keeping with organizational IT policies. Well does something like this exist? Have a closer look at Oracle BPA Suite. - Apologies for the product pitch but yes this tool does preserve the simplicity of BPMN and also gives the IT developer the power to implement the activity as a unit with all these intricacies.

Wednesday, August 01, 2007

What is BPM - a quest, a journey

I was talking to abunch of people at OMG's BPM think tank and there was a lot of confusion about what exactly is BPM.

Instead of trying to define what BPM is - lets see what is it that people are trying to achieve when they are talking BPM.

Cat 1 - Business users needing to document their processes
Cat 2 - Single project champions, take one process at a time, design and deploy it.
Cat 3 - Users seeking Enterprise BPM.

Cat 1 users can use any tool.
Cat 2 users may succeed in their specific project but then taking it to the next level is going to be a tall order. Reusing vendor specific components will be hard, if not impossible and definitely increase the TCO (total cost of ownership) manifold. Do you want vendor specific code etc to lock your enterprise wide components. Or do you want open standards based implementations.
This leads us to the third category of users who are starting small but thinking big. The components they build will be standard compliant, can be independently reused, change their specific implementation based on new business requirements / technological advancement and would therefore be an enterprise asset. The TCO will be lower if your solution uses industry wide standards adopted by majority of tool vendors, thus guaranteeing a wider skill pool as well.

Hopefully, based on the above there can be a better appreciation and common understanding of BPM but I am sure it is much more than just the categories of use cases. More later.

Wednesday, July 25, 2007

Blogware

I have coined this term - well there is a tool by that name but I can still say that this is term for "furthering your opinions under the garb of a blogger".
Now back to BPM - BPEL is not for humans- this is a thing I read on many blogs. However nothing can be farther from the truth. BPEL is extensible by nature, it allows a process developer to call out to any standard workflow service and create a Human Task. On completion the workflow server can update the process back / BPEL process can detect that the task has been marked complete and carry on the execution of the process.
Thankfully, there is a spec BPEL4People to answer all the acronym happy analysts and bloggers!

OMG - BPM - BPMN - ?

Spent three crucial days at OMG's BPM think tank. What I heard :
1. Standards are not important to business users. I heard this more than once - at an OMG conference thats interesting to say the least. My take - if standards dont matter than the analysts are going to make the same mistakes they did earlier. Custom made / built applications -> higher TCO (total cost of ownership) -> deal with costly Professional services folks :(
2. There is no common definition of BPM - among vendors, among anlysts and .... customers.
3. Field day for independent consultants to make even more consluting dollars while this conundrum lasts.
4. BPEL - the engine that executes your processes - I am surprised that the execution work horse is not being given its due.
5. ITP commerce had a good demo and were willing to show it to one and all - unlike other big name vendors and sponsors.
6. A new acronym BPDM was introduced. The spec does not have a XSD. Looks like a rushed attempt by one (or two) vendors - I may say. Even some of the (other) authors declined to comment / give more details.

Friday, July 13, 2007

BP Publisher

BP Publisher problem - : "BP Publisher problem - no models published


Checklist of things when publishing:
1. Login with the correct Filter.
2. Make sure that model types are included in the filter
3. Ensure User permission to view the models.
4. Ensure groups have hte permission
5. Last but not the least - makse sure the web export is activated. "

Sunday, July 08, 2007

Pools and Processes

BPMN spec suggests usage of pool as a boundary for a process. Specifically for internal private and abstract processes.
For an internal process - the mapping to a single process is an obvious choice. The whole goal of defining an internal process using BPMN is to be able to capture the sequence of steps required to accomplish a particular business goal. In terms of mapping an internal process definition to an executable notation. BPEL is an obvious choice for mapping to execuatble. It is industry standard for orchestrating services and human interaction (even more so with bpel4people spec).

For abstract processes again mapping a process to one BPEL4WS abstract process is the recommended approach. Even though the current version of spec does not delve into the mappings.

Saturday, June 30, 2007

BPMN value proposition

BPMN has few obvious value propositions:

1. Common notations.
2. Depicts sequence of flow in an e2e process.
3. Identifies messages between various.

It is meant for the whole spectrum of business users both very high level and very detail oriented business process modelers. A set of business users can document their processes; starting from a broad set of activities and decision points to a detailed process definition which captures the intricacies of everyday business including specific details of activities, conditions of gateways, default branches, subprocesses, exception handling and so on.

This will ensure that businesses understand themselves and their processes, are able to document those processes in simple notation and identify the participants. This will ensure that the business can be agile when it comes to adopting new requirements both internal to the org as well as external.

Further it facilitates IT to capture correct business requirements - validate those requirements, understand and capture corner cases. The notation being business user friendly still retains its value.
Another advantage is being able to identify coarse business services which can be further mapped to actual IT services or a combination thereof.

To give an analogy it will do the same to business prcoess modeling as what UML did to software engg, WSDL did to service description.

more details at http://www.bpmn.org

Tuesday, June 26, 2007

BPMN and BPEL

BPMN is a standardized graphical notation for drawing business processes. The standard has seen considerable traction in the BPM industry. Several pure play vendors have now BPMN representations supported out of the box in the modeling tool. Evidently, the first version of the spec wants to standardize the business process modeling notation. The spec very wisely provides a direct mapping to BPEL for execution. This further adds in favor of close tie up between business processes modeling and loosely coupled IT infrastructure.
The BPD modeled using BPMN can be easily realized as a BPEL process. The BPEL process may not be syntactically complete but has all the semantic elements correctly captured. The business definition of the process is captured with sanctity and transparently provided to IT as a blueprint for implementation.

BPM + SOA = Agile business

There has been a constant need for closer alignment of software with business। Instead of locking all the business process logic in a bunch of programming routines, SOA facilitates disparate independent services that can be orchestrated to accomplish business goals. This paradigm also ensures agile businesses that can accommodate changing business requirements. BPM is now complemented by middleware technologies for agility, and within middleware BPM and Service Oriented Architecture (SOA) lead the charge। BPM is an investment in future agility of the enterprise। BPM and SOA together define a new business and IT world, which requires driving innovation and agility based on existing IT systems. The new paradigm promotes loosely coupled IT systems, which replace tightly integrated, hard-wired packaged applications; inherent is the paradigm of business excellence rather than functional excellence. It is difficult for business to predict the future needs of modification of business processes and hence the requirement to keep the processes loosely coupled becomes even more important. IT across industry has been adopting rapidly to SOA. BPEL has become the defacto standard for web services orchestration and integration. It is layered on top of Web services and XML and different component building blocks. Most people are already working in SOAP, WSDL, XML, and XML Schema, and most companies are already moving toward XML-based integration.

Sunday, June 24, 2007

BPM Terminology

BPM - Business Process Management, some people also use it for Business Process Modeling.
BPMN - Business Process Modeling Notation - A standard notation orgininally defined by BPMI and subsequently owned and released by OMG. Pl note it is just a notation and has no serialization. It does define a mapping to BPEL4WS.
BPEL - Business Process Execution Language - This is the OASIS standard for orchestrating web services to execute business processes.
BPMS - Business Process Management Suites - A term used for product (or a set thereof) that provides definition and execution of business processes.
BPDM - Business Process Definition Metamodel - A meta model proposal for serializing BPMN diagrams. It is in RFP stage.
XPDL - XML Process Definition Language

BPM - Demystifying Business

Business users and business process modeling mean different things to different people.
One the one end of the spectrum are business users who know their processes in their mind. On the other end of the spectrum are business users who have sufficient technology background and will to make their hands dirty with service definitions.
As for BPModel, again everything from a flow chart on a white board to a graphical representation in a tool is construed as a businesss process model.

Moving my BPM blog here

I am moving my BPM blog here!