39
Myths, Truths and Wishful Thinking * Workflow Systems Brandon Satrom devLink 2010 http://speakerrate.com/talks/4108

Workflow systems

Embed Size (px)

DESCRIPTION

devLink 2010 presentation on Workflow and Workflow Systems, using Ruby, MassTransit and WF 4.0 as examples.

Citation preview

Page 1: Workflow systems

Myths, Truths and Wishful Thinking

*Workflow Systems

Brandon SatromdevLink 2010

http://speakerrate.com/talks/4108

Page 2: Workflow systems

*About Me

*Technology Evangelist @ Microsoft

*Software and Enterprise Architect

*Based in Austin, TX

*Husband and Father

Page 3: Workflow systems

*Why are you here?

*What is "workflow"?

*What makes a “Workflow System” different?

*What kind of problem is workflow designed to solve?

*Can workflow problems only be solved by tools?

*Are workflows always visual?

*How do I design a “workflow system”?

Page 4: Workflow systems

*You Want The Truth?

Page 5: Workflow systems

*Word Association

What comes to mind when you hear “workflow”?

Page 6: Workflow systems

*Visual

Page 7: Workflow systems

*Tools

Page 8: Workflow systems

*Process Automation

Page 9: Workflow systems

*Modifiable

Page 10: Workflow systems

* Can be maintained by someone other than the

original developer

Page 11: Workflow systems

*Six-Figure Cost

Page 12: Workflow systems

*Others?

Page 13: Workflow systems

*Here’s the truth…

Page 14: Workflow systems

* Our perception of workflow is wrong…

Page 15: Workflow systems

*Maybe “Workflow” can be simple…

Page 16: Workflow systems

*State Machine Demo

Page 17: Workflow systems

*Workflow: The Cure for Insomnia Definition

A workflow is a depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms. Workflow may be seen as any abstraction of real work, segregated in workshare, work split or other types of ordering. For control purposes, workflow may be a view on real work under a chosen aspect, thus serving as a virtual representation of actual work. The flow being described often refers to a document that is being transferred from one step to another. – from http://en.wikipedia.org/wiki/Workflow

Page 18: Workflow systems

*Workflow: simplistic

definitions

“abstraction of real work”

“coordination of work in a system”

Page 19: Workflow systems

*Isn’t that CODE?

Page 20: Workflow systems

*The Difference is…

Page 21: Workflow systems

*HUMANS are the process…

Page 22: Workflow systems

*…TIME Passes...

Page 23: Workflow systems

*…And The only constant is

CHANGE.

Page 24: Workflow systems

* Qualities of Workflow systems…

Page 25: Workflow systems

*Declarative

Activity A

Activity B

Page 26: Workflow systems

Activity A

Activity B

Activity C (Idle)

Activity D

(Active)

*Persistent

Persistence Store

External Stimulus

Page 27: Workflow systems

*Dynamic

Activity A

Activity B

Activity C

Activity D

Activity E

Activity F

Business Change

Divert to new activity

Page 28: Workflow systems

*Configurable

Activity A

Activity B

Activity C

Rules Store

Activity D

Activity E

Page 29: Workflow systems

*Centrally

Defined

Page 30: Workflow systems

*… though not necessarily

visual.

static SessionSaga(){ Define(() => { Initially( When(NewSession) .Then((saga, message) => saga.NewSessionStarted(message)) .TransitionTo(SessionActive) );

During(SessionActive, When(FeedbackCheckRequested) .Then((saga, message) => saga.CheckForFeedback(message)) When(new Timer() .StartOn(session.Start)

.RunAtInterval(session.CheckInterval) .Until(session.End))

.Then((saga, message) => saga.CheckForFeedback(message)) When(SessionComplete) .Then((saga, message) => saga.SessionEnded(message)) .Complete() ); });}

Page 31: Workflow systems

*Not just for workflow…

*State machine

*Saga

*Service Buses

*Workflow

Page 32: Workflow systems

*Saga Demo (MassTransit)

Page 33: Workflow systems

*Visual?

Page 34: Workflow systems

*Workflow Demo (WF 4.0)

Page 35: Workflow systems

* When Adopting Workflow, Consider…

*Complexity of the problem

*Skill level of development staff

*Who keeps it running?

*Value of a visual representation

Page 36: Workflow systems

* Any GOOD system will encourage good design…

*Declaratively define the FLOW

*Define discrete, separate ACTIVITIES

*Keep the RULES out of code

Page 37: Workflow systems

*Did We Answer These?

*What is "workflow"?

*What makes a “Workflow System” different?

*What kind of problem is workflow designed to solve?

*Can workflow problems only be solved by tools?

*Are workflows always visual?

*How do I design a “workflow system”?

Page 38: Workflow systems

*Resources

*Ruby Statemachine :: http://bit.ly/rstatemachine

*MassTransit :: http://masstransit-project.com/

*WF4 :: http://bit.ly/wf4-msdn

*WebMatrix :: http://bit.ly/devlink-wm

*Demo Source :: http://github.com/bsatrom/WorkflowSystems2010

Page 39: Workflow systems

*Questions?

* Email: [email protected]

* Twitter: @TheSatch

* Blog: www.userinexperience.com

* Rate this talk: http://speakerrate.com/talks/4108