Download - Bpmn experiences
BPMN – An experience reportBPMN – An experience report
Jakob Freund, CEO camunda services GmbH
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
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
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
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 :-)
There is no „best“ model, only appropriate models
Our credits for this analogy go to Prof. Dr. Jan Mendling, Humboldt University Berlin
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
This is directly executable BPMN 2.0This is directly executable BPMN 2.0
Some Details depend on your BPM platformSome Details depend on your BPM platform
<?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>
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
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?
The User and the Solution collaborateThe User and the Solution collaborate
It‘s all about collaboration!It‘s all about collaboration!
ProcessEngine
Processparticipants
Domain Expert
Process EngineerEngine
Process Analyst
Domain Expert
Domain Expert
Domain Expert
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“
Hands-on-Collaboration: BPMN-Diagrams in JIRAHands-on-Collaboration: BPMN-Diagrams in JIRA
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
Appropriate Tooling…Appropriate Tooling…
� „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
Let‘s skip the peak (and the trough as well ☺)Let‘s skip the peak (and the trough as well ☺)
As-Is
To-Be
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