Bpmn experiences

21
BPMN – An experience report BPMN – An experience report Jakob Freund, CEO camunda ser vices GmbH

Transcript of Bpmn experiences

Page 1: Bpmn experiences

BPMN – An experience reportBPMN – An experience report

Jakob Freund, CEO camunda services GmbH

Page 2: Bpmn experiences

YourBusiness

camundaBusiness Consulting

Camunda is a small BPM consulting companyCamunda is a small BPM consulting company

• BPM

• BPMN

• Agile

• BRM

YourProcess

Application

YourProcess

Application

YourProcess

Application

camundaIT Consulting

Page 3: Bpmn experiences

Freie Stelle

melden

Führungskraft Fachbereich

Personal-

bedarf

Aufgaben und

Anforderungen

mitteilen

Stellenbe-

schreibung

sichten

Korrektur

anmahnen

Stellenbe-

schreibung

freigeben

Nein

Ja

Stelle

ausgeschrieben

OK?Beschreibung

erhalten

Mehr Infos

erforderlich

HR-Portal

Sonstiges

Ausschreibung

erfolgreich

Process Engine

Automatisch

SB Personal

Führungskraft

Stelle

beschreiben

Stellenbe-

schreibung

prüfen

Stellenbe-

schreibung

korrigieren

Nein

Ausschreibung

anstoßen

Ja

Ausschreibung

durchführen

Stelle

ausgeschrieben

OK?

Erfolgsmeldung

senden

Which process model is the better one?

Alternative 1

Customersends order

Sales check order

Logistics ship goods

Accounting send invoice

Customer pays

SB Personal

Aufgaben und

Anforderungen

erfragen

Nein

Stelle

beschreibenJa

Stellenbe-schreibung

korrigieren

Kanäle für

Ausschreibung

festlegen

Stelle

ausgeschrieben

Alles klar?

Freie Stelle

gemeldet

Korrektur

erbeten

Ausschreibung

anstoßen

Beschreibung

freigegeben

Ausschreibung

erfolgreich

HR-Portal

Sonstiges

F

Alternative 2

Page 4: Bpmn experiences

It depends on who you ask…It depends on who you ask…

Alternative 1, because it contains the details I need to know for technical implementations!

Alternative 2, because IT

Management

Very Very important!

SB Personal

Aufgaben und

Anforderungen erfragen

Nein

Stelle

beschreibenJa

Stellenbe-

schreibung

korrigieren

Kanäle fürAusschreibung

festlegen

Stelle

ausgeschrieben

Alles klar?

Freie Stelle

gemeldet

Korrektur

erbeten

Ausschreibung

anstoßen

Beschreibung

freigegeben

Ausschreibung

erfolgreich

HR-Portal

Sonstiges

Freie Stelle

melden

Führungskraft Fachbereich

Personal-

bedarf

Aufgaben und

Anforderungen

mitteilen

Stellenbe-schreibung

sichten

Korrektur

anmahnen

Stellenbe-

schreibung

freigeben

Nein

Ja

Stelle

ausgeschrieben

OK?Beschreibung

erhalten

Mehr Infos

erforderlich

HR-Portal

Sonstiges

Ausschreibung

erfolgreich

Process Engine

Automatisch

SB Personal

Führungskraft

Stelle

beschreiben

Stellenbe-

schreibung prüfen

Stellenbe-

schreibung korrigieren

Nein

Ausschreibung anstoßen

Ja

Ausschreibung

durchführen

Stelle

ausgeschrieben

OK?

Erfolgsmeldung

senden

Alternative 2, because the other one is way to complicated!

Customersends order

Sales check order

Logistics ship goods

Accounting send

invoice

Customer pays

Page 5: Bpmn experiences

Business vs. IT? It‘s NOT that simple!Business vs. IT? It‘s NOT that simple!

Project Lead

•Manages the project•Creates/Manages typicalproject documents

•Represents user•Knows the solution‘s

•Is Expert in BPMN•Creates Process Models•Links Process Models with other Requirements•Knows BPMN Best (in Business)

•Is Expert in BPMN•Creates Technical Processes etc.•Plays the main part in processsolution development•Knows BPMN best (in IT)

•Defines Guidelines

•Is expert in certain aspect (e.g. GUI)•Supports Process Engineer if needed•Creates services / components usedin process by plain development

Business IT

Domain Expert

Process Analyst

Process Engineer Developer

Architect

•Knows the solution‘spurpose best•Can answer any questionabout functionality

•Defines Guidelines•Is somehow useful :-)

Page 6: Bpmn experiences

There is no „best“ model, only appropriate models

Our credits for this analogy go to Prof. Dr. Jan Mendling, Humboldt University Berlin

Page 7: Bpmn experiences

Next Slides are based on „incident management“Next Slides are based on „incident management“

BPMN 2.0 by Examplehttp://www.omg.org/cgi-bin/doc?dtc/10-06-02

Activiti Showcasehttp://www.bpm-guide.de/activiti/

Our credits go to Signavio Process Editor

Page 8: Bpmn experiences

This is directly executable BPMN 2.0This is directly executable BPMN 2.0

Page 9: Bpmn experiences

Some Details depend on your BPM platformSome Details depend on your BPM platform

Page 10: Bpmn experiences

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><definitions id="oryx_c6b54c98-e3e8-44aa-8745-1f092b3150b6" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.omg.org/bpmn20" xmlns="http://schema.omg.org/spec/BPMN/2.0" xmlns:bpmndi="http://bpmndi.org">

<process isClosed="false" processType="executable" id="oryx_45eeff22-1e3f-4543-be07-084ea7cfd0b7"><laneSet name="Process Engine" id="Process Engine">

<lane name="1st level support" id="1st level support_1"><flowElementRef>Handle Problem [ID: ${issueID}]: ${issueTitle}_2</flowElementRef><flowElementRef>Is issue resolved?_2</flowElementRef><flowElementRef>issue reported_2</flowElementRef><flowElementRef>Send an email back to the Call Center Agent_2</flowElementRef><flowElementRef>ticket closed_2</flowElementRef><flowElementRef>Send a confirmation email back to the Call Center Agent_2</flowElementRef><flowElementRef>Set the issue classifciation_2</flowElementRef>

</lane><lane name="2snd level support" id="2snd level support_1">

<flowElementRef>Task Finished_2</flowElementRef><flowElementRef>Edit Ticket from Level 1 [ID: ${issueID}]: ${issueTitle}_2</flowElementRef><flowElementRef>Is issue now resolved?_2</flowElementRef><flowElementRef>Insert issue into product backlog_2</flowElementRef>

</lane></laneSet><userTask implementation="webService" completionQuantity="1" startQuantity="1" isForCompensation="false" name="Handle Problem [ID: ${issueID}]: ${issueTitle}"

id="Handle Problem [ID: ${issueID}]: ${issueTitle}_2"/><exclusiveGateway gatewayDirection="Diverging" name="Is issue resolved?" id="Is issue resolved?_2"/><startEvent isInterrupting="true" name="issue reported" id="issue reported_2">

<messageEventDefinition/></startEvent><sendTask implementation="webService" completionQuantity="1" startQuantity="1" isForCompensation="false" name="Send an email back to the Call Center Agent" id="Send an

email back to the Call Center Agent_2"/><endEvent name="ticket closed" id="ticket closed_2"/><sendTask implementation="webService" completionQuantity="1" startQuantity="1" isForCompensation="false" name="Send a confirmation email back to the Call Center Agent"

id="Send a confirmation email back to the Call Center Agent_2"/>

The corresponding BPMN 2.0 - XMLThe corresponding BPMN 2.0 - XML

id="Send a confirmation email back to the Call Center Agent_2"/><scriptTask scriptLanguage="" completionQuantity="1" startQuantity="1" isForCompensation="false" name="Set the issue classifciation" id="Set the issue classifciation_2">

<script></script></scriptTask><message isInitiating="true" name="Task Finished" id="Task Finished_2"/><userTask implementation="webService" completionQuantity="1" startQuantity="1" isForCompensation="false" name="Edit Ticket from Level 1 [ID: ${issueID}]: ${issueTitle}"

id="Edit Ticket from Level 1 [ID: ${issueID}]: ${issueTitle}_2"/><exclusiveGateway gatewayDirection="Diverging" name="Is issue now resolved?" id="Is issue now resolved?_2"/><sendTask implementation="webService" completionQuantity="1" startQuantity="1" isForCompensation="false" name="Insert issue into product backlog" id="Insert issue into

product backlog_2"/><sequenceFlow targetRef="Is issue now resolved?_2" sourceRef="Edit Ticket from Level 1 [ID: ${issueID}]: ${issueTitle}_2" name="" id="SequenceFlow_6"/><sequenceFlow targetRef="ticket closed_2" sourceRef="Send an email back to the Call Center Agent_2" name="" id="SequenceFlow_5"/><sequenceFlow targetRef="Send a confirmation email back to the Call Center Agent_2" sourceRef="issue reported_2" name="" id="SequenceFlow_3"/><sequenceFlow targetRef="Handle Problem [ID: ${issueID}]: ${issueTitle}_2" sourceRef="Send a confirmation email back to the Call Center Agent_2" name=""

id="SequenceFlow_7"/><sequenceFlow targetRef="Set the issue classifciation_2" sourceRef="Handle Problem [ID: ${issueID}]: ${issueTitle}_2" name="" id="SequenceFlow_9"/><sequenceFlow targetRef="Is issue resolved?_2" sourceRef="Set the issue classifciation_2" name="" id="SequenceFlow"/><sequenceFlow targetRef="Send an email back to the Call Center Agent_2" sourceRef="Insert issue into product backlog_2" name="" id="SequenceFlow_4"/><sequenceFlow targetRef="Send an email back to the Call Center Agent_2" sourceRef="Is issue resolved?_2" name="" id="SequenceFlow_10">

<conditionExpression xsi:type="tFormalExpression" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">${issueResolved}</conditionExpression></sequenceFlow><sequenceFlow targetRef="Edit Ticket from Level 1 [ID: ${issueID}]: ${issueTitle}_2" sourceRef="Is issue resolved?_2" name="" id="SequenceFlow_8">

<conditionExpression xsi:type="tFormalExpression" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">${!issueResolved}</conditionExpression></sequenceFlow><sequenceFlow targetRef="Insert issue into product backlog_2" sourceRef="Is issue now resolved?_2" name="" id="SequenceFlow_1">

<conditionExpression xsi:type="tFormalExpression" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">${!issueResolved}</conditionExpression></sequenceFlow><sequenceFlow targetRef="Send an email back to the Call Center Agent_2" sourceRef="Is issue now resolved?_2" name="" id="SequenceFlow_2">

<conditionExpression xsi:type="tFormalExpression" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">${issueResolved}</conditionExpression></sequenceFlow>

</process></definitions>

Page 11: Bpmn experiences

Business-IT-Alignment with executable models?Business-IT-Alignment with executable models?

And what are those

But there are parts of the process (that

concern me) missing!

Yes but those parts won‘t be executed by the engine. I cannot

Here‘s your to-be-process, ready to deploy. Could you please approve?

Huh, looks complicated! Where is the part that‘s

my business?

Ehm, it‘s here. And there. And over there. Well

somehow, half of that is somone else‘s todo. And

some steps and decisions are completely

automated.

Ah, F***Y**!

Inconti-what!? This is just your coding again, and not my process!

I won‘t approve this.

Yes but we need those steps. Otherwise we will get data inconsistencies in the process context.

And what are those steps for then? Nobody

specified them!

the engine. I cannot model them, they‘d

break the technical flow. Call CenterAgent

IT

Page 12: Bpmn experiences

This what the Call Center Agent is really interested inThis what the Call Center Agent is really interested in

• What do I have to do? • Who is the one I must interact with?• How do I work with the system?• What are my concerns?

Page 13: Bpmn experiences

The User and the Solution collaborateThe User and the Solution collaborate

Page 14: Bpmn experiences

It‘s all about collaboration!It‘s all about collaboration!

ProcessEngine

Processparticipants

Domain Expert

Process EngineerEngine

Process Analyst

Domain Expert

Domain Expert

Domain Expert

Page 15: Bpmn experiences

Createappropriate

Enjoy being a successful

The secret sauce of process modeling

Learn BPMN

Pro

cess A

naly

st

Read a book or take a training.

appropriateprocess

diagrams

successful Process

Analyst ☺

Depends on:- Your target

audience- what you want

to discuss

Learn BPMN

Pro

cess A

naly

st

No programmer!

Credits: This highly sophisticatedBPMN Diagram was madewith the famous BPMN-Tool„Microsoft Powerpoint“

Page 16: Bpmn experiences

Hands-on-Collaboration: BPMN-Diagrams in JIRAHands-on-Collaboration: BPMN-Diagrams in JIRA

Page 17: Bpmn experiences

Goals

How to apply BPMN in your companyHow to apply BPMN in your company

Roles

• Process Documentation• Requirements

Engineering• Supporting SOA

• Domain Experts (Read)• Process Analysts (Create)• Process Engineers (Create)• Software Developers (Read)

1

2

GoalsMethods Tooling

Meta-Processes

• Signavio Process Editor• Excel (Business Rules)• JIRA (Requirements)• Wiki (More Info)• Whiteboards• BPMN-Magnets

• BPMN• Modeling Guidelines• UML Use Cases• UML Class Diagrams• Decision Tables• User Stories + Acceptance Criteria

• Process Discovery• Process Model QA• Process Design• Requirements Engineering

3

4

5

Page 18: Bpmn experiences

Appropriate Tooling…Appropriate Tooling…

Page 19: Bpmn experiences

� „BPMN is too complicated for Business“ is NONSENSE

� The key to success are „appropriate diagrams“

� The „single process model“ for both Business and IT is a myth

� Collaboration Diagrams are the most powerful instrument in BPMN

� BPMN is about Communication and not zero-coding

� Introduction of BPMN requires definition of

Summary about BPMN experiencesSummary about BPMN experiences

� Introduction of BPMN requires definition of

− Goals of modeling: What is it all about?

− Roles: who reads? Who creates?

− Methods: More than just a matter of symbols!

− Tooling: The process modeler is just a puzzle piece.

− Meta-Processes: Not always necessary, but helpful

Page 20: Bpmn experiences

Let‘s skip the peak (and the trough as well ☺)Let‘s skip the peak (and the trough as well ☺)

As-Is

To-Be

Page 21: Bpmn experiences

Vielen Dank!Vielen Dank!camunda services GmbHZossener Str. 55-5810961 Berlin

Telefon: +49 30 664 0409-00Telefax: +49 30 664 0409-29

Email: [email protected]

www.bpm-guide.de

Der Praxis-Blog zu BPM:

@camunda.com

Geschäftsführer

Jakob Freund

Jakob.Freund

SOA Symposium

Berlin, October 5th 2010