[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
Bpmn experiences
1. BPMN – An experience report
Jakob Freund, CEO camunda services GmbH
2. Camunda is a small BPM consulting company
Your • BPM
Business • BPMN
• Agile
• BRM
camunda
Business Consulting
Your Your Your
Process Process Process
Application Application Application
camunda
IT Consulting
3. Which process model is the better one?
Ausschreibung
erfolgreich
Aufgaben und
Sonstiges
Führungskraft Fachbereich
Anforderungen
mitteilen
Mehr Infos Stelle
erforderlich ausgeschrieben
Beschreibung
OK?
erhalten
HR-Portal
Stellenbe- Stellenbe-
Freie Stelle Korrektur
schreibung Nein schreibung
melden anmahnen
sichten freigeben
Personal-
bedarf Ja
Automatisch
Ausschreibung Erfolgsmeldung
durchführen senden
Stelle
ausgeschrieben
Process Engine
SB Personal
Stelle Stellenbe-
Ausschreibung
beschreiben schreibung
anstoßen
korrigieren
Nein
Alternative 1
Führungskraft
Stellenbe-
schreibung Ja
prüfen
OK?
F
Alles klar?
Stellenbe- Kanäle für
HR-Portal
Stelle
Ja schreibung Ausschreibung
beschreiben Ausschreibung
korrigieren anstoßen
festlegen
Freie Stelle Korrektur Beschreibung
gemeldet erbeten freigegeben
SB Personal
Nein
Sonstiges
Aufgaben und
Anforderungen
erfragen
Ausschreibung Stelle
erfolgreich ausgeschrieben
Alternative 2
Customer Sales check Logistics ship Accounting Customer
sends order order goods send invoice pays
4. Very
important!
It depends on who you ask…
Alternative 1, because it
contains the details I
need to know for
technical
implementations!
Management
IT Alternative 2, because
the other one is way to
complicated!
Ausschreibung
erfolgreich
Aufgaben und
Sonstiges
Führungskraft Fachbereich
Anforderungen
mitteilen
Mehr Infos Stelle
erforderlich ausgeschrieben
Beschreibung
OK?
erhalten
HR-Portal
Stellenbe- Stellenbe-
Freie Stelle Korrektur
schreibung Nein schreibung
melden anmahnen
sichten freigeben
Personal-
bedarf Ja
Automatisch
Ausschreibung Erfolgsmeldung
durchführen senden
Stelle
ausgeschrieben
Process Engine
SB Personal
Stelle Stellenbe-
Ausschreibung
beschreiben schreibung
anstoßen
korrigieren
Nein
Führungskraft
Stellenbe-
schreibung Ja
prüfen
OK?
Alles klar?
Stellenbe-
HR-Portal
Stelle Kanäle für
Customer Sales Accounting
Ja schreibung Ausschreibung
beschreiben Ausschreibung
korrigieren anstoßen
festlegen
Logistics Customer
Freie Stelle Korrektur Beschreibung
gemeldet erbeten freigegeben
SB Personal
sends check send
Nein
ship goods pays
order order invoice
Sonstiges
Aufgaben und
Anforderungen
erfragen
Ausschreibung Stelle
erfolgreich ausgeschrieben
5. Business vs. IT? It‘s NOT that simple!
•Is Expert in BPMN
•Manages the project •Creates Technical Processes etc.
•Creates/Manages typical •Plays the main part in process
project documents solution development
•Knows BPMN best (in IT)
•Is Expert in BPMN
Project Lead •Creates Process Models •Is expert in certain aspect (e.g. GUI)
•Links Process Models with •Supports Process Engineer if needed
other Requirements •Creates services / components used
•Knows BPMN Best (in in process by plain development
•Represents user Business)
•Knows the solution‘s
•Defines Guidelines
purpose best
•Is somehow useful :-)
•Can answer any question
about functionality
Process Analyst Architect
Process Engineer Developer
Domain Expert
Business IT
6. There is no „best“ model, only appropriate models
Our credits for this analogy go to
Prof. Dr. Jan Mendling,
Humboldt University Berlin
7. Next Slides are based on „incident management“
BPMN 2.0 by Example
http://www.omg.org/cgi-bin/doc?dtc/10-06-02
Activiti Showcase
http://www.bpm-guide.de/activiti/
Our credits go to
Signavio Process Editor
10. <?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">
The corresponding BPMN 2.0 - XML
<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"/>
<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>
11. Business-IT-Alignment with executable that‘s
Here‘s your to-be-
process, ready to models?
Huh, looks complicated!
Where is the part
deploy. Could you
please approve? 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 But there are parts of
decisions are completely the process (that
automated. concern me) missing!
Yes but those parts
won‘t be executed by
the engine. I cannot
And what are those
model them, they‘d
break the technical flow.
steps for then? Nobody Call Center
specified them!
Agent
IT Yes but we need those
steps. Otherwise we will
get data inconsistencies Inconti-what!? This is
in the process context. just your coding again,
and not my process!
I won‘t approve this.
Ah, F***
Y**!
12. This 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?
14. It‘s all about collaboration!
Domain Expert
Process
participants Process
Process Engineer
Engine
Domain Expert
Domain Expert
Process Analyst Domain Expert
15. The secret sauce of process modeling
Read a book or take
a training.
Process Analyst
Create Enjoy being a
appropriate successful
Learn BPMN
process Process
diagrams Analyst ☺
Depends on:
- Your target
audience
- what you want
No programmer! to discuss
Credits: This highly sophisticated
BPMN Diagram was made
with the famous BPMN-Tool
„Microsoft Powerpoint“
19. Summary about 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
− 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
20. Let‘s skip the peak (and the trough as well ☺)
As-Is
To-Be
21. camunda services GmbH
Vielen Dank! Zossener Str. 55-58
1096 Berlin
1
Telefon: +49 30 664 0409-00
Telefax: +49 30 664 0409-29
Email: info@camunda.com
Jakob Freund
Geschäftsführer
Jakob.Freund@camunda.com
SOA Symposium
Berlin, October 5th 2010
Der Praxis-Blog zu BPM:
www.bpm-guide.de