3. 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
7. Branche: Telekommunikation
BPM(N) im großen Stil Tooling: Signavio / JBoss jBPM
Was? Lessons Learned?
• u.a. DSL-Bereitstellung • Wie trage ich BPMN in die Breite?
• Portierung auf JBoss jBPM • Konventionen erforderlich
• Mapping BPMN 2 => jPDL 3 • Dezentrales Engagement schwierig
• Tooling notwendig
• Akutes Projekt vs. Meta-Ebene
Erfolge?
• Bessere Abstimmung Business-IT
• Bessere Abstimmung IT-IT
• Weniger Probleme im Betrieb
8. Branche: Telekommunikation
„Hurra, ein Projekt ☺“ Tool: ADONIS
Was? Lessons Learned?
• Generelle BPMN-Einführung • Trennung Business Analyst vs.
• Modellierung Netzbetrieb Modellierer
• Requirements für neue Software • Konkrete Projekte erforderlich
• Commitment erforderlich
Erfolge?
• Verständnis für BPMN
• Abgleich mit bestehender Prozessdokumentation
9. Branche: Schwerindustrie
Reisemanagement Tool: SAP Netweaver CE 7.2
Was? Lessons Learned?
• Reisemanagement • BPMN ist anspruchsvoll
• Vom Antrag bis zur Abrechnung • Ständiges Refactoring der Modelle
• Ausführung als Workflow • „camunda-Methodik“ hat geholfen
• Angemessenes Tooling erforderlich
Erfolge?
• Besseres Verständnis für Anforderungen
• Schnellere und passgenauere Umsetzung
• Trennung zwischem „menschlichem“ und „technischem“ Prozess
10.
11. Branche: Online-Apotheke
Requirements Engineering Tool: Signavio Process Editor
Was? Lessons Learned?
• Prozessmodellierung • Schwieriges Handling komplexer
• Klärung von Fragen Diagramme
• Detail-Anforderungen ableiten • Gefahr dass Dinge vergessen
werden die keinen Prozessbezug
haben
Erfolge?
• Durchdringung komplexer Probleme „von grob nach fein“
• Sehr schnelle Klärung von Fragen
• Dokumentation im Zuge der Fragenklärung
• Keiner der Beteiligten hatte BPMN-Vorkenntnisse
• Gutes Tooling für Diskussionen & Rückfragen
• Gute Grundlage für Agiles Arbeiten
19. Business vs. IT? It‘s NOT that simple!
•Creates Technical Processes etc.
•Manages the project •Plays the main part in process
•Creates/Manages typical solution development
project documents •Knows BPMN best (in IT)
•Creates Process Models
Project Lead •Links Process Models with •Is expert in certain aspect (e.g. GUI)
other Requirements •Supports Process Engineer if needed
•Knows BPMN Best (in •Creates services / components used
Business) in process by plain development
•Represents user
•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
28. Next Slides are based on BPMN 2.0 by Example
BPMN 2.0 by Example
http://www.omg.org/cgi-bin/doc?dtc/10-06-02
Activiti Showcase
http://www.bpm-guide.de/activiti/
31. <?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>
32. 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**!
33. 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?
35. It‘s all about collaboration!
Domain Expert
Process
participants Process
Process Engineer
Engine
Domain Expert
Domain Expert
Process Analyst Domain Expert
36. Kerngedanke #2: Verschiedene Sichten auf Ebene 2
Betrachter Process Participant Process Analyst Process Engineer
„Wie muss ich „Wie wird „Was macht die
Zentrale Frage
arbeiten?“ gearbeitet?“ Engine?“
Eigene Gesamte Orchestrierung der
Sicht
Orchestrierung Kollaboration Process Engine
Ebene 2: Operatives
Prozessmodell
42. How to apply BPMN in your company
Roles &
Skills
Methods
Goals Tooling
Meta-
Processes
43. Wir machen uns Gedanken – Sie auch?
I wish… I like…
I mean… I ask…
I hate… I think… I want…
I… I need…
I suck…
BPM-Netzwerk.de
Test.BPMN.info
BPMB.de
camunda.com