You are on page 1of 34

Steering the Northwest Passage 

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 

Role  Outcome  Value 


Feature 
Capability 
Outcome‐Focused Stories 

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

Manage  Process  Trade financial 


customer  application  markets 
party
account
id account
portfolio

application
tax region position
form

Client: Financial services 
The Entity Lifecycle 

dormant
qualifies self applies accepted trades

pre-lead lead applicant new active closed

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