Professional Documents
Culture Documents
Beginning an SOA Initiative
Ian Robinson, ThoughtWorks
http://iansrobinson.com
Overview
• Where to Start?
• Stories and Capabilities
• Services and Contracts
• Delivery
Where to Start?
Beckett’s Dilemma
Client: Midstream oil and gas
A Map of the Territory
Why?
Who? What? How?
What For?
Benefits
Stakeholders Processes
want deliver
implemented by
provide automate
Outcomes realise
Capabilities
People
motivate
prevent
Forces
Technologies
Obstacles
Stories, Capabilities, Services and Contracts
Stories Capabilities
Describe goals Resources to
What & outcomes realise
outcomes
Contracts
Services
Assert
interactions Host How
between capabilities
services
Stories and Capabilities
Communication Barriers
Business
Folk IT
IT
Business Process Disorder
People Change, Processes Change, Technologies Change…
What Source
spare parts
How
Questions, Questions…
How (well) do you implement this capability today?
Is it core to your business?
Does it differentiate you from
your competitors?
Who’s responsible for its
execution when systems fail?
User Stories
Outside‐in
Outcomes
As a <role>
I want <fea
ture>
So that <b
enefit>
Value External
behaviour
Features: Outcomes and Capabilities
Story
As a <role>
I want <ou
tcome>
So that <b
enefit>
Responsibility‐Focused Stories
As <role>
I am respo
nsible for
<outcome>
,
Which del
ivers <ben
efi t>
Business Entity Domain Model
address policy
application
tax region position
form
Client: Financial services
The Entity Lifecycle
dormant
qualifies self applies accepted trades
debtor
Client: Financial services
Capability Map
Capability Map
Capability Map
Capabilities Drive the Entity Lifecycle
“Once more, with feeling!”
Client: Midstream oil and gas
“Aha!”
Move production Transform
production
Crude connected to terminal
Diluent connected to terminal
Lab analysis complete
Client: Midstream oil and gas
Services and Contracts
Three‐Layered Architecture
Presenta,on
Business
Data
And Now: At Distributed Proportions!
Process
Ac,vity
En,ty
Services Host Capabilities
Process integrity
Activities
compose
new EnterpriseApplication()
Capabilties
implemented by
f()
Activities
f()
compose
f()
Capabilties
f()
f()
Composability
Treat Services as Consumers
As order m
anagemen
I want to k t
now when
product ha a
s changed
So that I ca
n fulfill ord
based on c ers
urrent offe
rings
Events Satisfy Consumer Expectations
Order
Management Product Updated Product Updated
Product Regional
Management Distribution
Inventory
Product Updated
Communicate Consumer Contracts
communicate
Consumer
Consumer‐Driven Provider Contract Contract
Contract
adopt
adopt
Consumer
Contract
communicate
Delivery
Continuous Planning
Capability Delivery
Long‐lived capability delivery
teams
Visiting projects contribute
capital and resource
Multiple Delivery Streams
Client: Communications and entertainment
Thank you
http://iansrobinson.com