Jakob Freund @ BPMN 2010

39
Fachliche vs. Technische Prozesse Jakob Freund, camunda ser vices GmbH

description

 

Transcript of Jakob Freund @ BPMN 2010

Fachliche vs. Technische Prozesse

Jakob Freund, camunda services GmbH

YourBusiness

camundaBusiness Consulting

Camunda is a small BPM consulting company

YourProcess

Application

YourProcess

Application

YourProcess

Application

camundaIT Consulting

• BPM

• BPMN

• Agile

• BRM

Aktuelle Trends09/2009

07/2010

Quelle: BPM-Netzwerk.de

x2

x1,6

Über 80 Neukunden in zwei Jahren

Prozessmodelle für verschiedenste Zwecke und Rollen

ISO-Zertifizierung

WorkflowManagement

ServiceorientierteArchitekturen (SOA)

Schriftlich fixierte

Ordnung

MindestanforderungenFür Risiko-Management

(MARisk)

Prozessanalyse und-verbesserung

Organisationshandbuch

Automatisierung

Anforderungs-management

Bereitstellung von DSL-Anschlüssen

Aus- und Umbau des Mobilfunknetzes

Regulierung von Schäden (Kfz, Hausrat etc.)

Vertrieb von Darlehen

Vertrieb von Medikamenten

Logistische Abwicklung von Waren und Fertigungserzeugnissen

Prüf- und Genehmigungsverfahren (ÖD)

Rechnungseingangsbearbeitung

Angebotserstellung und -nachverfolgung

… und die Klassiker: Reisen, Urlaub, Fortbildung, Helpdesk etc.

Exemplarische Themen und Prozesse

Leben und leben lassen…

Business-IT-Alignment mit

We value…

• Developer-Friendliness over Zero Coding• Smart Communication over Single-Source-Models• Composite Architectures over one-stop-shops• Open Source over Out-of-the-Box

camunda BPMN-Framework

Ebene 2

Operatives Prozessmodell

Ebene 3a

Technisches

Prozessmodell

Ebene 1

Strategisches

Prozessmodell

Ebene 3b

IT-Spezifikation

Ebene 4b

Implementierung

Prozesslandschaft

Inhalt: Prozess im Überblick

Ziel: Schnelles Verständnis

Semantik: logisch-abstrakt

Inhalt: Operative Abläufe

Ziel: Abstimmung von Details

Semantik: physisch-konkret

Inhalt: Technische Details

Ziel: Umsetzung

Semantik: physisch-konkret

Fachlich

(Business)

Technisch

(IT)

Mit Process Engine

Ohne Process Engine

Der logisch-abstrakte Ablauf Branche: VerlagswesenTool: Signavio Process Editor

Der physisch-konkrete Ablauf Branche: VerlagswesenTool: Signavio Process Editor

Kerngedanke #1: Brüche nach oben verlagern

Ebene 2

Operatives Prozessmodell

Ebene 3a

Technisches

Prozessmodell

Ebene 1

Strategisches

Prozessmodell

Ebene 3b

IT-Spezifikation

Ebene 4b

Implementierung

Prozesslandschaft

Inhalt: Prozess im Überblick

Ziel: Schnelles Verständnis

Inhalt: Operative Abläufe

Ziel: Arbeits- und

Umsetzungsgrundlage

Inhalt: Technische Details

Ziel: Umsetzung

Fachlich

(Business)

Technisch

(IT)

Mit Process Engine

Ohne Process Engine

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

Business IT

Domain Expert

Process Analyst

Project Lead

Process Engineer Developer

Architect

•Manages the project•Creates/Manages typicalproject documents

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

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

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

•Defines Guidelines•Is somehow useful :-)

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

This is directly executable BPMN 2.0

Some 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"/><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>

The corresponding BPMN 2.0 - XML

Business-IT-Alignment with executable models?

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!

But there are parts of the process (that

concern me) missing!

Yes but those parts won‘t be executed by the engine. I cannot model them, they‘d

break the technical flow.

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.

Call CenterAgent

IT

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?

The User and the Solution collaborate

It‘s all about collaboration!

ProcessEngine

Processparticipants

Domain Expert

Process Analyst

Process Engineer

Domain Expert

Domain Expert

Domain Expert

Kerngedanke #2: Verschiedene Sichten auf Ebene 2

Ebene 2: Operatives

Prozessmodell

Process Participant Process Analyst Process EngineerBetrachter

„Wie muss ich

arbeiten?“

„Wie wird

gearbeitet?“

„Was macht die

Engine?“Zentrale Frage

Eigene

Orchestrierung

Gesamte

Kollaboration

Orchestrierung der

Process EngineSicht

Ebene 2

Operatives Prozessmodell

Ebene 3a

Technisches

Prozessmodell

Ebene 1

Strategisches

Prozessmodell

Ebene 3b

IT-Spezifikation

Ebene 4b

Implementierung

Prozesslandschaft

Inhalt: Prozess im Überblick

Ziel: Schnelles Verständnis

Inhalt: Operative Abläufe

Ziel: Arbeits- und

Umsetzungsgrundlage

Inhalt: Technische Details

Ziel: Umsetzung

Fachlich

(Business)

Technisch

(IT)

Mit Process Engine

Ohne Process Engine

Kundenbeispiel: Reisemanagement Branche: SchwerindustrieTool: SAP Netweaver CE 7.2

Kundenbeispiel: Stromzählerwartung Branche: EnergieversorgerTool: inubit BPM-Suite

Tool-Unterstützung am Beispiel Signavio

Tool-Unterstützung am Beispiel Signavio

Tool-Unterstützung am Beispiel Signavio

IT-Projekt vs. Prozess-Projekt

Activiti (Open Source BPM Platform), an european project

Activiti Cycle (Contributed by Camunda)

Also der „Glue“ zwischen Ebene 2 und 3

Signavio / Activiti Modeler / Oryx

JBoss jBPM / Activiti / Bonita

Activiti CycleBusiness-IT-Glue

Der Prozess im Zentrum der Anforderungen

Prozess

GUI Daten

Regeln

Tests

Funktio-nalität

NFRs

Basic Use Cases von Cycle

Prozessmodell mit JIRA koppeln

Hands-on-Collaboration: BPMN-Diagrams in JIRA

Den Entwicklungsfortschritt visualisieren

Wir machen uns Gedanken – Sie auch?

BPM-Netzwerk.de

Test.BPMN.info

BPMB.de

Camunda.com

I wish… I like…

I want…I hate… I think… I need…I ask…I mean…

I …I suck…

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

As-Is

To-Be

Vielen Dank für Ihre Aufmerksamkeit!

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.deDer Praxis-Blog zu BPM:

@camunda.com

Geschäftsführer

Jakob Freund

Jakob.Freund