SlideShare a Scribd company logo
1 of 39
Myths, Truths and Wishful Thinking Workflow Systems Brandon Satrom devLink2010 http://speakerrate.com/talks/4108
About Me Technology Evangelist @ Microsoft Software and Enterprise Architect Based in Austin, TX Husband and Father
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”?
You Want The Truth?
What comes to mind when you hear “workflow”? Word Association
Visual
Tools
Process Automation
Modifiable
Can be maintained by someone other than the original developer
Six-Figure Cost
Others?
Here’s the truth…
Our perception of workflow is wrong…
Maybe “Workflow” can be simple…
State Machine Demo
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 Workflow: The Cure for Insomnia Definition
Workflow: simplistic definitions “abstraction of real work” “coordination of work in a system”
Isn’t that CODE?
The Difference is…
HUMANS are the process…
…TIME Passes...
…And The only constant is CHANGE.
Qualities of Workflow systems…
Declarative
External Stimulus Persistence Store Persistent
Dynamic Business Change Activity F Divert to new activity
Activity D Activity E Rules Store Configurable
Centrally Defined
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()          );    });} … though not necessarily visual.
Not just for workflow… State machine Saga Service Buses Workflow
Saga Demo (MassTransit)
Visual?
The dangers of seeing too much…
Workflow Demo (WF 4.0)
When Adopting Workflow, Consider… Complexity of the problem Skill level of development staff Who keeps it running? Value of a visual representation
Any GOOD system will encourage good design… Declaratively define the FLOW Define discrete, separate ACTIVITIES Keep the RULES out of code
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”? Did We Answer These?
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 Resources

More Related Content

Similar to Workflow systems

...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappeared
Luc Bors
 
Infrastructure automation as a state of the art with Puppet and GIT
Infrastructure automation as a state of the art with Puppet and GITInfrastructure automation as a state of the art with Puppet and GIT
Infrastructure automation as a state of the art with Puppet and GIT
Cesar Mesquita
 
Effective Spring Transaction Management
Effective Spring Transaction ManagementEffective Spring Transaction Management
Effective Spring Transaction Management
UMA MAHESWARI
 
Effective Test Driven Database Development
Effective Test Driven Database DevelopmentEffective Test Driven Database Development
Effective Test Driven Database Development
elliando dias
 

Similar to Workflow systems (20)

About work flow
About work flowAbout work flow
About work flow
 
Pdf mbs workflow
Pdf mbs workflowPdf mbs workflow
Pdf mbs workflow
 
Blue Prism Training Brochure
Blue Prism Training Brochure Blue Prism Training Brochure
Blue Prism Training Brochure
 
Process design
Process design  Process design
Process design
 
Windows Workflow Foundation
Windows Workflow FoundationWindows Workflow Foundation
Windows Workflow Foundation
 
NAV 2016 Workflow
NAV 2016 WorkflowNAV 2016 Workflow
NAV 2016 Workflow
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappeared
 
Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE Incident Management in the Age of DevOps and SRE
Incident Management in the Age of DevOps and SRE
 
Informatica interview questions by H2kInfosys
Informatica interview questions by H2kInfosysInformatica interview questions by H2kInfosys
Informatica interview questions by H2kInfosys
 
Infrastructure automation as a state of the art with Puppet and GIT
Infrastructure automation as a state of the art with Puppet and GITInfrastructure automation as a state of the art with Puppet and GIT
Infrastructure automation as a state of the art with Puppet and GIT
 
]project-open[ Workflow Developer Tutorial Part 2
]project-open[ Workflow Developer Tutorial Part 2]project-open[ Workflow Developer Tutorial Part 2
]project-open[ Workflow Developer Tutorial Part 2
 
Effective Spring Transaction Management
Effective Spring Transaction ManagementEffective Spring Transaction Management
Effective Spring Transaction Management
 
Understanding Framework Architecture using Eclipse
Understanding Framework Architecture using EclipseUnderstanding Framework Architecture using Eclipse
Understanding Framework Architecture using Eclipse
 
What is a SOA Service - from the Business Perspective? How detailed, what le...
What is a SOA Service - from the Business Perspective?  How detailed, what le...What is a SOA Service - from the Business Perspective?  How detailed, what le...
What is a SOA Service - from the Business Perspective? How detailed, what le...
 
jBPM5 Community Training Module #5: Domain Specific Processes
jBPM5 Community Training Module #5: Domain Specific ProcessesjBPM5 Community Training Module #5: Domain Specific Processes
jBPM5 Community Training Module #5: Domain Specific Processes
 
jBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesjBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processes
 
jBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developersjBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developers
 
Automating With Excel An Object Oriented Approach
Automating  With  Excel    An  Object  Oriented  ApproachAutomating  With  Excel    An  Object  Oriented  Approach
Automating With Excel An Object Oriented Approach
 
Spring transaction part4
Spring transaction   part4Spring transaction   part4
Spring transaction part4
 
Effective Test Driven Database Development
Effective Test Driven Database DevelopmentEffective Test Driven Database Development
Effective Test Driven Database Development
 

More from Brandon Satrom

More from Brandon Satrom (6)

Secrets of Awesome JavaScript API Design
Secrets of Awesome JavaScript API DesignSecrets of Awesome JavaScript API Design
Secrets of Awesome JavaScript API Design
 
Coffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotesCoffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotes
 
Coding the right thing
Coding the right thingCoding the right thing
Coding the right thing
 
Keeping architectures relevant
Keeping architectures relevantKeeping architectures relevant
Keeping architectures relevant
 
Workflow Systems: Myths, Truths and Wishful Thinking
Workflow Systems: Myths, Truths and Wishful ThinkingWorkflow Systems: Myths, Truths and Wishful Thinking
Workflow Systems: Myths, Truths and Wishful Thinking
 
The Future Of Work And Workflow
The Future Of Work And WorkflowThe Future Of Work And Workflow
The Future Of Work And Workflow
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Workflow systems

  • 1. Myths, Truths and Wishful Thinking Workflow Systems Brandon Satrom devLink2010 http://speakerrate.com/talks/4108
  • 2. About Me Technology Evangelist @ Microsoft Software and Enterprise Architect Based in Austin, TX Husband and Father
  • 3. 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”?
  • 4. You Want The Truth?
  • 5. What comes to mind when you hear “workflow”? Word Association
  • 10. Can be maintained by someone other than the original developer
  • 14. Our perception of workflow is wrong…
  • 15. Maybe “Workflow” can be simple…
  • 17. 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 Workflow: The Cure for Insomnia Definition
  • 18. Workflow: simplistic definitions “abstraction of real work” “coordination of work in a system”
  • 21. HUMANS are the process…
  • 23. …And The only constant is CHANGE.
  • 24. Qualities of Workflow systems…
  • 26. External Stimulus Persistence Store Persistent
  • 27. Dynamic Business Change Activity F Divert to new activity
  • 28. Activity D Activity E Rules Store Configurable
  • 30. 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() ); });} … though not necessarily visual.
  • 31. Not just for workflow… State machine Saga Service Buses Workflow
  • 34. The dangers of seeing too much…
  • 36. When Adopting Workflow, Consider… Complexity of the problem Skill level of development staff Who keeps it running? Value of a visual representation
  • 37. Any GOOD system will encourage good design… Declaratively define the FLOW Define discrete, separate ACTIVITIES Keep the RULES out of code
  • 38. 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”? Did We Answer These?
  • 39. 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 Resources
  • 40. Questions? Email: brsatrom@microsoft.com Twitter: @TheSatch Blog: www.userinexperience.com Rate this talk: http://speakerrate.com/talks/4108

Editor's Notes

  1. We associate workflow not with what it does, or it’s value but with tools that label themselves as “Workflow”Expensive BPM suitesWindows Workflow Foundation
  2. “abstraction of real work” describes all software"coodination of work“ describes every system Which might be why so much can "sound like workflow" if you let it
  3. These are the problems Workflow is trying to solve? The reason systems like this exist
  4. When humans are key to the process, and time between steps cannot be measured, Workflow systems are needed.This is why CM/Document Approval processes are so often used around WF systems. Human involvement is key in the process.
  5. "coordination of RESUMABLE work" Needs to allow the system to run for an indeterminate amount of time To be responsive and reactive, instead of proactive
  6. …Though not necessarily visual. Even though visual is usually stated
  7. "Coordination of (long-running) work" is more than a problem solved just by workflowBack to Ruby statemachine… does it fit?
  8. “A well traveled fable claims the Cyclops made a deal with Hades in which they traded an eye for the ability to see the future. Upholding his end of the bargain, Hades removed an eye and allowed the cyclops to foretell the day of their death.”- http://en.wikipedia.org/wiki/CyclopsTell the story of the trouble devs had working with WF 3.5 workflows to make minor changes…
  9. Show off WebMatrix and Silicon Bakery siteShow OrderProcessor WFFlowchartActivitiesShow Baker WFShow Code-only Baker WFShow Workflow Service
  10. Quickly-changing aspects of the system Design workflows so that Activities change the most, flows themselves change the least The over-arching process should be stable Steps in that process change the most Or even rules within those steps Visualization => Flows (most stable) => Activities (changing) => Rules (most fluid)