SlideShare a Scribd company logo
1 of 22
MAXIME LEMAITRE – 18/6/2015
Scenario Driven Design
… Yet another Blabla Driven Design …
Agenda
• Inspirations
• The dashboard problem
• Introducing Scenario Driven design
• Examples
– VOD
– Twitter
– Office for Ipad
– “Betclic”
• Conclusion
Inspirations
Scenario Driven API Design
Or: how to make more usable APIs
By Ivo Jansch (APIDays, Paris)
… a long time ago …
Our page is so slow to load
can you fix the performance problem ?
• The design
– /orders
– /orders/:id
– /orders/:id/details
– /products
– /products/:id
– …
5
The basic design
“A Home page showing the user’s open orders,
the order status, one product for each order
plus the thumb, and a list of the last 5 sent
orders” … What about performance ?
26 API Calls !!
“But our API is so RESTfull !”
What’s the problem ?
What’s the problem ?
What is a REST resource ?
Is you raw data model ?
Where is the Business logic ?
Where it should be ?
What if you need to release a new client ? (WebApp, Mobile, …)
What’s the problem² ?
• This is not a REST problem
– REST is a great way to expose data
• But…
– REST is not an excuse to expose your raw data model
– REST is not an excuse to stop thinking about business logic
“Smart Data & dumb code works a lot better
than the other way around“
The Cathedral & The Bazaar, Eric S. Raymond
 Smart APIs, dump clients
Note : Batch requests could help, but business logic is still on client side...
Introducing ‘Scenario Driven API Design’
Introducing Scenario Driven Design
1. Client analysis
– Identify client needs
– Usage scenarios
2. Service design
– Optimal ways to service the client
scenarios
3. Data modelling
– Create data model to support the
scenario’s
– Low level and high level concepts
4. Interface design
– REST/HAL etc. interface
– Versioning, etc.
Reminders :
• Data Driven Design
 from Data to generic clients
• Client Driven Design
 from Specific clients to data
Typical VOD features
Scenario Driven Design Approach
• Identify all relevant scenarios
– Order a movie
– Watch a movie
– See list of my movies
– Promote content on the home screen
– See what’s available
– Like/unlike movies
Interactions are platform-specific,
Scenarios usually aren’t.
Promote content on the home page
• All clients should present, on
their home screen, after login:
– The user’s most recently
rented movies
– User specific
recommendations
– Movie top 20
– Featured movies
Scenario Driven Design
(1) ‘Home’ screen
(4) /promoslots/home
(2) Promote content to the home
screen
(3) Movies, collections, banners,
Interface Design
• Exemples
– /recommendations
• or /users/@me/recommendations
– /promoslots/:screen
– /users/@me/movies
– /users/@me/movies/liked
– /movies
• Consider scenario’s at the highest level
– Business Logic entirely API side
– Important: find balance between generic and specific
Framework Design
Framework Design Guidelines: Conventions, Idioms,
and Patterns for Reusable .NET Libraries
by Krzysztof Cwalina & Brad Abrams
” Frameworks often contain a very large set of
APIs. This enables advanced scenarios that require
power and expressiveness. However, most
development revolves around a small set of
common scenarios that use a relatively small
subset of the full framework. To optimize the
overall productivity of the developers using a
framework, it is crucial to invest heavily in the
design of APIs that are used in the most common
scenarios.”
Do & Don’t
http://blogs.msdn.com/b/kcwalina/archive/2005/05/05/scenariodrivendesign.aspx
• Do make sure that the API design specification is the central part of
the design of any feature that includes a publicly accessible API.
• Do define top usage scenarios for each major feature area.
• Do ensure that the scenarios correspond to appropriate abstraction
level. They should roughly correspond to the end user use cases.
• Do design APIs by first writing code samples for the main scenarios
and then defining the object model to support the code samples.
• Do not rely solely on standard design methodologies (for example
UML) when designing the public APIs layer of a framework.
• Do not start API design with object model diagrams.
• Do organize usability studies to test APIs in main scenarios.
Examples
The example of Twitter API
• The Twitter API exposes many methods for tweets, favorites, retweets, followers,
search, …
• What is the most common feature of twitter ? => Timelines
• The home timeline is central to how most users interact with the Twitter service.
Do no try to reinvent the wheel
Dumb clients, Smart APIs
Office for Ipad
“designed for iPad” as opposed to “ported to iPad
• Several key mobile scenarios
– Packing up for the ride home
– Starting from scratch
– Last minute scramble
– Buttoning things up
– Collaborating with coworkers
– Taking notes
• “bringing over hundreds of
Office commands, toolbars,
and dialogs to the iPad would
be, simply put, a mistake.”
Conclusion
- Better Usability
- Better Performance
- Better maintainability
- Less duplicates
Questions
References
• http://blogs.msdn.com/b/kcwalina/archive/2005/05/05/scenariodrivendesign.asp
x
• https://speakerdeck.com/ijansch/scenario-driven-api-design-apidays-paris
• https://speakerdeck.com/ijansch/scenario-driven-api-design
• https://github.com/dotnet/corefx/wiki/Framework-Design-Guidelines-Digest
• http://www.slideshare.net/clintedmonson/advanced-oop-laws-principles-idioms-
presentation?qid=63cb2104-5ac7-48e9-b3eb-
aebf85cf7459&v=qf1&b=&from_search=1
• http://www.streetinsider.com/Insiders+Blog/Microsoft+%28MSFT%29+Shows+Ho
w+Office+for+iPad+was+Designed/9519656.html

More Related Content

What's hot

VISUG: Visual studio for web developers
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developersKevin DeRudder
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionOutSystems
 
Building cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesBuilding cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesKevin DeRudder
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue componentsFilip Rakowski
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitablePromet Source
 
Web Development and Web Development technologies - Temitayo Fadojutimi
Web Development and Web Development technologies - Temitayo FadojutimiWeb Development and Web Development technologies - Temitayo Fadojutimi
Web Development and Web Development technologies - Temitayo FadojutimiTemitayo Fadojutimi
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...Krzysztof (Chris) Ozog
 
Overview of SharePoint Framework (SPFx)
Overview of SharePoint Framework (SPFx)Overview of SharePoint Framework (SPFx)
Overview of SharePoint Framework (SPFx)Małgorzata Borzęcka
 
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mindDrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mindJoeri van Dooren
 
What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013Danijel Malik
 
The StartUp Agency - A Case Study on CFPB
The StartUp Agency - A Case Study on CFPBThe StartUp Agency - A Case Study on CFPB
The StartUp Agency - A Case Study on CFPBGovLoop
 

What's hot (19)

VISUG: Visual studio for web developers
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developers
 
Job manager 2020 in Angular
Job manager 2020 in AngularJob manager 2020 in Angular
Job manager 2020 in Angular
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
 
Building cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesBuilding cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile Services
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue components
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & Profitable
 
Web Development and Web Development technologies - Temitayo Fadojutimi
Web Development and Web Development technologies - Temitayo FadojutimiWeb Development and Web Development technologies - Temitayo Fadojutimi
Web Development and Web Development technologies - Temitayo Fadojutimi
 
Vue Storefront MUG
Vue Storefront MUGVue Storefront MUG
Vue Storefront MUG
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...
 
Browser As Platform
Browser As PlatformBrowser As Platform
Browser As Platform
 
Overview of SharePoint Framework (SPFx)
Overview of SharePoint Framework (SPFx)Overview of SharePoint Framework (SPFx)
Overview of SharePoint Framework (SPFx)
 
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mindDrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
 
What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013
 
The StartUp Agency - A Case Study on CFPB
The StartUp Agency - A Case Study on CFPBThe StartUp Agency - A Case Study on CFPB
The StartUp Agency - A Case Study on CFPB
 
Lightswitch
LightswitchLightswitch
Lightswitch
 

Viewers also liked

Ideation Mind Mapping
Ideation Mind MappingIdeation Mind Mapping
Ideation Mind Mappingjascc1
 
Web 2 0 Tools To Get Organised
Web 2 0 Tools To Get OrganisedWeb 2 0 Tools To Get Organised
Web 2 0 Tools To Get OrganisedBGS Library
 
Business Value and Business Model Innovation in Decentralized Interoperabilit...
Business Value and Business Model Innovation in Decentralized Interoperabilit...Business Value and Business Model Innovation in Decentralized Interoperabilit...
Business Value and Business Model Innovation in Decentralized Interoperabilit...Boris Otto
 
Technique to design Business Model from the book: Business Model Generation
Technique to design Business Model from the book: Business Model GenerationTechnique to design Business Model from the book: Business Model Generation
Technique to design Business Model from the book: Business Model GenerationRoukaya Issaoui
 
Design Techniques for Business Model Generator
Design Techniques for Business Model GeneratorDesign Techniques for Business Model Generator
Design Techniques for Business Model GeneratorHani Tarabichi
 
Solucionario de int3pids del I Wargame de Sbd - 2011
Solucionario de int3pids del I Wargame de Sbd - 2011Solucionario de int3pids del I Wargame de Sbd - 2011
Solucionario de int3pids del I Wargame de Sbd - 2011secbydefault
 
Using Scenario Analysis to Predict the Future of the Semantic Web
Using Scenario Analysis to Predict the Future of the Semantic WebUsing Scenario Analysis to Predict the Future of the Semantic Web
Using Scenario Analysis to Predict the Future of the Semantic WebAugust Jackson
 
TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...
TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...
TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...TAUS - The Language Data Network
 
What Will Game become?
What Will Game become?What Will Game become?
What Will Game become?Cara Yu
 
Wargame Results for The Battle of Stocker's Ridge
Wargame Results for The Battle of Stocker's RidgeWargame Results for The Battle of Stocker's Ridge
Wargame Results for The Battle of Stocker's RidgeMr.J
 
War Games (Remote Control 2014, Utrecht)
War Games (Remote Control 2014, Utrecht)War Games (Remote Control 2014, Utrecht)
War Games (Remote Control 2014, Utrecht)Stefan Werning
 
"The “inevitable future” scenario-building methodology" by Artiom Zheltov
"The “inevitable future” scenario-building methodology" by Artiom Zheltov"The “inevitable future” scenario-building methodology" by Artiom Zheltov
"The “inevitable future” scenario-building methodology" by Artiom ZheltovArtiom Zheltov
 
Scenario Analysis Use Case: 3G/4G Wireless Data
Scenario Analysis Use Case: 3G/4G Wireless DataScenario Analysis Use Case: 3G/4G Wireless Data
Scenario Analysis Use Case: 3G/4G Wireless DataAugust Jackson
 
Business Model Wargame, SunIdee 2012
Business Model Wargame, SunIdee 2012Business Model Wargame, SunIdee 2012
Business Model Wargame, SunIdee 2012Martin Klitsie
 

Viewers also liked (20)

Email Management in Outlook
Email Management in OutlookEmail Management in Outlook
Email Management in Outlook
 
Ideation Mind Mapping
Ideation Mind MappingIdeation Mind Mapping
Ideation Mind Mapping
 
Web 2 0 Tools To Get Organised
Web 2 0 Tools To Get OrganisedWeb 2 0 Tools To Get Organised
Web 2 0 Tools To Get Organised
 
Business Value and Business Model Innovation in Decentralized Interoperabilit...
Business Value and Business Model Innovation in Decentralized Interoperabilit...Business Value and Business Model Innovation in Decentralized Interoperabilit...
Business Value and Business Model Innovation in Decentralized Interoperabilit...
 
Technique to design Business Model from the book: Business Model Generation
Technique to design Business Model from the book: Business Model GenerationTechnique to design Business Model from the book: Business Model Generation
Technique to design Business Model from the book: Business Model Generation
 
Design Techniques for Business Model Generator
Design Techniques for Business Model GeneratorDesign Techniques for Business Model Generator
Design Techniques for Business Model Generator
 
Solucionario de int3pids del I Wargame de Sbd - 2011
Solucionario de int3pids del I Wargame de Sbd - 2011Solucionario de int3pids del I Wargame de Sbd - 2011
Solucionario de int3pids del I Wargame de Sbd - 2011
 
Using Scenario Analysis to Predict the Future of the Semantic Web
Using Scenario Analysis to Predict the Future of the Semantic WebUsing Scenario Analysis to Predict the Future of the Semantic Web
Using Scenario Analysis to Predict the Future of the Semantic Web
 
TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...
TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...
TAUS Roundtable Moscow, Planning for an Uncertain Future, Jaap van der Meer, ...
 
What Will Game become?
What Will Game become?What Will Game become?
What Will Game become?
 
Wargame Results for The Battle of Stocker's Ridge
Wargame Results for The Battle of Stocker's RidgeWargame Results for The Battle of Stocker's Ridge
Wargame Results for The Battle of Stocker's Ridge
 
Wargame
WargameWargame
Wargame
 
Last Day
Last DayLast Day
Last Day
 
WgSbD2
WgSbD2WgSbD2
WgSbD2
 
Scenarios
ScenariosScenarios
Scenarios
 
CDE Marketplace 2016: NSC
CDE Marketplace 2016: NSCCDE Marketplace 2016: NSC
CDE Marketplace 2016: NSC
 
War Games (Remote Control 2014, Utrecht)
War Games (Remote Control 2014, Utrecht)War Games (Remote Control 2014, Utrecht)
War Games (Remote Control 2014, Utrecht)
 
"The “inevitable future” scenario-building methodology" by Artiom Zheltov
"The “inevitable future” scenario-building methodology" by Artiom Zheltov"The “inevitable future” scenario-building methodology" by Artiom Zheltov
"The “inevitable future” scenario-building methodology" by Artiom Zheltov
 
Scenario Analysis Use Case: 3G/4G Wireless Data
Scenario Analysis Use Case: 3G/4G Wireless DataScenario Analysis Use Case: 3G/4G Wireless Data
Scenario Analysis Use Case: 3G/4G Wireless Data
 
Business Model Wargame, SunIdee 2012
Business Model Wargame, SunIdee 2012Business Model Wargame, SunIdee 2012
Business Model Wargame, SunIdee 2012
 

Similar to Mini training- Scenario Driven Design

PLAT-20 Building Alfresco Prototypes in a Few Hours
PLAT-20 Building Alfresco Prototypes in a Few HoursPLAT-20 Building Alfresco Prototypes in a Few Hours
PLAT-20 Building Alfresco Prototypes in a Few HoursAlfresco Software
 
Putting together a web app
Putting together a web appPutting together a web app
Putting together a web appRyan Lou
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias
 
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerKeith Boyd
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)Oursky
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserStrongback Consulting
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building ProductsHayden Bleasel
 
Android Effective UI: Tips, Tricks and Patterns
Android Effective UI: Tips, Tricks and PatternsAndroid Effective UI: Tips, Tricks and Patterns
Android Effective UI: Tips, Tricks and PatternsAdham Enaya
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadSoftware Guru
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppRené Winkelmeyer
 
Architectural Considerations for Startups
Architectural Considerations for StartupsArchitectural Considerations for Startups
Architectural Considerations for StartupsNiall Roche
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraCA API Management
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?European Collaboration Summit
 

Similar to Mini training- Scenario Driven Design (20)

PLAT-20 Building Alfresco Prototypes in a Few Hours
PLAT-20 Building Alfresco Prototypes in a Few HoursPLAT-20 Building Alfresco Prototypes in a Few Hours
PLAT-20 Building Alfresco Prototypes in a Few Hours
 
Putting together a web app
Putting together a web appPutting together a web app
Putting together a web app
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
 
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
Android Effective UI: Tips, Tricks and Patterns
Android Effective UI: Tips, Tricks and PatternsAndroid Effective UI: Tips, Tricks and Patterns
Android Effective UI: Tips, Tricks and Patterns
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To App
 
Architectural Considerations for Startups
Architectural Considerations for StartupsArchitectural Considerations for Startups
Architectural Considerations for Startups
 
How to do b tech be projects or any academic projects
How to do b tech be projects or any academic projectsHow to do b tech be projects or any academic projects
How to do b tech be projects or any academic projects
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 

More from Betclic Everest Group Tech Team

Mini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation DemystifiedMini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation DemystifiedBetclic Everest Group Tech Team
 

More from Betclic Everest Group Tech Team (20)

Mini training - Reactive Extensions (Rx)
Mini training - Reactive Extensions (Rx)Mini training - Reactive Extensions (Rx)
Mini training - Reactive Extensions (Rx)
 
Mini training - Moving to xUnit.net
Mini training - Moving to xUnit.netMini training - Moving to xUnit.net
Mini training - Moving to xUnit.net
 
Mini training - Introduction to Microsoft Azure Storage
Mini training - Introduction to Microsoft Azure StorageMini training - Introduction to Microsoft Azure Storage
Mini training - Introduction to Microsoft Azure Storage
 
Akka.Net
Akka.NetAkka.Net
Akka.Net
 
Mini-Training: SSO with Windows Identity Foundation
Mini-Training: SSO with Windows Identity FoundationMini-Training: SSO with Windows Identity Foundation
Mini-Training: SSO with Windows Identity Foundation
 
Training - What is Performance ?
Training  - What is Performance ?Training  - What is Performance ?
Training - What is Performance ?
 
Mini-Training: Docker
Mini-Training: DockerMini-Training: Docker
Mini-Training: Docker
 
Mini Training Flyway
Mini Training FlywayMini Training Flyway
Mini Training Flyway
 
Management 3.0 Workout
Management 3.0 WorkoutManagement 3.0 Workout
Management 3.0 Workout
 
Lean for Business
Lean for BusinessLean for Business
Lean for Business
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Training – Going Async
Training – Going AsyncTraining – Going Async
Training – Going Async
 
Mini-Training: Mobile UX Trends
Mini-Training: Mobile UX TrendsMini-Training: Mobile UX Trends
Mini-Training: Mobile UX Trends
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Mini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation DemystifiedMini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation Demystified
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
AngularJS Best Practices
AngularJS Best PracticesAngularJS Best Practices
AngularJS Best Practices
 
Mini-Training: Roslyn
Mini-Training: RoslynMini-Training: Roslyn
Mini-Training: Roslyn
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
 
WCF Configuration - The basics
WCF Configuration - The basicsWCF Configuration - The basics
WCF Configuration - The basics
 

Recently uploaded

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

Mini training- Scenario Driven Design

  • 1. MAXIME LEMAITRE – 18/6/2015 Scenario Driven Design … Yet another Blabla Driven Design …
  • 2. Agenda • Inspirations • The dashboard problem • Introducing Scenario Driven design • Examples – VOD – Twitter – Office for Ipad – “Betclic” • Conclusion
  • 3. Inspirations Scenario Driven API Design Or: how to make more usable APIs By Ivo Jansch (APIDays, Paris)
  • 4. … a long time ago … Our page is so slow to load can you fix the performance problem ?
  • 5. • The design – /orders – /orders/:id – /orders/:id/details – /products – /products/:id – … 5 The basic design “A Home page showing the user’s open orders, the order status, one product for each order plus the thumb, and a list of the last 5 sent orders” … What about performance ? 26 API Calls !! “But our API is so RESTfull !” What’s the problem ?
  • 6. What’s the problem ? What is a REST resource ? Is you raw data model ? Where is the Business logic ? Where it should be ? What if you need to release a new client ? (WebApp, Mobile, …)
  • 7. What’s the problem² ? • This is not a REST problem – REST is a great way to expose data • But… – REST is not an excuse to expose your raw data model – REST is not an excuse to stop thinking about business logic “Smart Data & dumb code works a lot better than the other way around“ The Cathedral & The Bazaar, Eric S. Raymond  Smart APIs, dump clients Note : Batch requests could help, but business logic is still on client side...
  • 9. Introducing Scenario Driven Design 1. Client analysis – Identify client needs – Usage scenarios 2. Service design – Optimal ways to service the client scenarios 3. Data modelling – Create data model to support the scenario’s – Low level and high level concepts 4. Interface design – REST/HAL etc. interface – Versioning, etc. Reminders : • Data Driven Design  from Data to generic clients • Client Driven Design  from Specific clients to data
  • 11. Scenario Driven Design Approach • Identify all relevant scenarios – Order a movie – Watch a movie – See list of my movies – Promote content on the home screen – See what’s available – Like/unlike movies Interactions are platform-specific, Scenarios usually aren’t.
  • 12. Promote content on the home page • All clients should present, on their home screen, after login: – The user’s most recently rented movies – User specific recommendations – Movie top 20 – Featured movies
  • 13. Scenario Driven Design (1) ‘Home’ screen (4) /promoslots/home (2) Promote content to the home screen (3) Movies, collections, banners,
  • 14. Interface Design • Exemples – /recommendations • or /users/@me/recommendations – /promoslots/:screen – /users/@me/movies – /users/@me/movies/liked – /movies • Consider scenario’s at the highest level – Business Logic entirely API side – Important: find balance between generic and specific
  • 15. Framework Design Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries by Krzysztof Cwalina & Brad Abrams ” Frameworks often contain a very large set of APIs. This enables advanced scenarios that require power and expressiveness. However, most development revolves around a small set of common scenarios that use a relatively small subset of the full framework. To optimize the overall productivity of the developers using a framework, it is crucial to invest heavily in the design of APIs that are used in the most common scenarios.”
  • 16. Do & Don’t http://blogs.msdn.com/b/kcwalina/archive/2005/05/05/scenariodrivendesign.aspx • Do make sure that the API design specification is the central part of the design of any feature that includes a publicly accessible API. • Do define top usage scenarios for each major feature area. • Do ensure that the scenarios correspond to appropriate abstraction level. They should roughly correspond to the end user use cases. • Do design APIs by first writing code samples for the main scenarios and then defining the object model to support the code samples. • Do not rely solely on standard design methodologies (for example UML) when designing the public APIs layer of a framework. • Do not start API design with object model diagrams. • Do organize usability studies to test APIs in main scenarios.
  • 18. The example of Twitter API • The Twitter API exposes many methods for tweets, favorites, retweets, followers, search, … • What is the most common feature of twitter ? => Timelines • The home timeline is central to how most users interact with the Twitter service. Do no try to reinvent the wheel Dumb clients, Smart APIs
  • 19. Office for Ipad “designed for iPad” as opposed to “ported to iPad • Several key mobile scenarios – Packing up for the ride home – Starting from scratch – Last minute scramble – Buttoning things up – Collaborating with coworkers – Taking notes • “bringing over hundreds of Office commands, toolbars, and dialogs to the iPad would be, simply put, a mistake.”
  • 20. Conclusion - Better Usability - Better Performance - Better maintainability - Less duplicates
  • 22. References • http://blogs.msdn.com/b/kcwalina/archive/2005/05/05/scenariodrivendesign.asp x • https://speakerdeck.com/ijansch/scenario-driven-api-design-apidays-paris • https://speakerdeck.com/ijansch/scenario-driven-api-design • https://github.com/dotnet/corefx/wiki/Framework-Design-Guidelines-Digest • http://www.slideshare.net/clintedmonson/advanced-oop-laws-principles-idioms- presentation?qid=63cb2104-5ac7-48e9-b3eb- aebf85cf7459&v=qf1&b=&from_search=1 • http://www.streetinsider.com/Insiders+Blog/Microsoft+%28MSFT%29+Shows+Ho w+Office+for+iPad+was+Designed/9519656.html