SlideShare a Scribd company logo
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

PDF
Mini-Training: NDepend
PDF
Why software projects fail in 2021?
PPTX
4 spring boot
PPTX
Aspect oriented programming
PPTX
How to build a Mobile API or HTML 5 app in 5 minutes
PPTX
WebMatrix
PDF
Boquet manager
PDF
Tdd2018 state of the software quality in Germany
Mini-Training: NDepend
Why software projects fail in 2021?
4 spring boot
Aspect oriented programming
How to build a Mobile API or HTML 5 app in 5 minutes
WebMatrix
Boquet manager
Tdd2018 state of the software quality in Germany

What's hot (19)

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

Viewers also liked (20)

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

Similar to Mini training- Scenario Driven Design (20)

PPT
How to design effective APIs
PPTX
APIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
PPTX
Api design part 1
PPT
Effective API Design
PPTX
Top 10 Lessons Learned from the Netflix API - OSCON 2014
PDF
Design & Deploy a data-driven Web API in 2 hours
PDF
Be My API How to Implement an API Strategy Everyone will Love
PPTX
API-First Redesign of a Legacy Application
PPTX
Succeed with a Developer-Centric API Strategy - Ronnie Mitra, Principal API A...
PPTX
Intro to API Design Principles
PPTX
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup
PPTX
Oscon2014 Netflix API - Top 10 Lessons Learned
PPTX
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
PDF
Why your APIs should fly first class
PPTX
Considerations For an API Strategy - Ronnie MItra API Architect Layer 7 Londo...
PDF
apidays London 2023 - Why and how to apply DDD to APIs, Radhouane Jrad, QBE E...
PPTX
API Strategy Evolution at Netflix
PPTX
On the shoulders of giants Learning About API Design by Looking Backwards
PPTX
Navigating the Post-OpenAPI Era with Innovative API Design Frameworks - Danie...
PDF
API Introduction - API Management Workshop Munich from Ronnie Mitra
How to design effective APIs
APIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
Api design part 1
Effective API Design
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Design & Deploy a data-driven Web API in 2 hours
Be My API How to Implement an API Strategy Everyone will Love
API-First Redesign of a Legacy Application
Succeed with a Developer-Centric API Strategy - Ronnie Mitra, Principal API A...
Intro to API Design Principles
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup
Oscon2014 Netflix API - Top 10 Lessons Learned
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
Why your APIs should fly first class
Considerations For an API Strategy - Ronnie MItra API Architect Layer 7 Londo...
apidays London 2023 - Why and how to apply DDD to APIs, Radhouane Jrad, QBE E...
API Strategy Evolution at Netflix
On the shoulders of giants Learning About API Design by Looking Backwards
Navigating the Post-OpenAPI Era with Innovative API Design Frameworks - Danie...
API Introduction - API Management Workshop Munich from Ronnie Mitra

More from Betclic Everest Group Tech Team (20)

PPTX
Mini training - Reactive Extensions (Rx)
PPTX
Mini training - Moving to xUnit.net
PPTX
Mini training - Introduction to Microsoft Azure Storage
PDF
Mini-Training: SSO with Windows Identity Foundation
PPTX
Training - What is Performance ?
PPTX
Mini-Training: Docker
PDF
Mini Training Flyway
PDF
Management 3.0 Workout
PDF
PPTX
Short-Training asp.net vNext
PPTX
Training – Going Async
PDF
Mini-Training: Mobile UX Trends
PPTX
Training: MVVM Pattern
PPTX
Mini-training: Personalization & Recommendation Demystified
PPTX
Mini-training: Let’s Git It!
PDF
AngularJS Best Practices
PDF
Mini-Training: Roslyn
PDF
Mini-Training: Netflix Simian Army
PPTX
WCF Configuration - The basics
Mini training - Reactive Extensions (Rx)
Mini training - Moving to xUnit.net
Mini training - Introduction to Microsoft Azure Storage
Mini-Training: SSO with Windows Identity Foundation
Training - What is Performance ?
Mini-Training: Docker
Mini Training Flyway
Management 3.0 Workout
Short-Training asp.net vNext
Training – Going Async
Mini-Training: Mobile UX Trends
Training: MVVM Pattern
Mini-training: Personalization & Recommendation Demystified
Mini-training: Let’s Git It!
AngularJS Best Practices
Mini-Training: Roslyn
Mini-Training: Netflix Simian Army
WCF Configuration - The basics

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
ai tools demonstartion for schools and inter college
PDF
System and Network Administration Chapter 2
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Transform Your Business with a Software ERP System
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Nekopoi APK 2025 free lastest update
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
L1 - Introduction to python Backend.pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Digital Strategies for Manufacturing Companies
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Introduction to Artificial Intelligence
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
ai tools demonstartion for schools and inter college
System and Network Administration Chapter 2
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Transform Your Business with a Software ERP System
Operating system designcfffgfgggggggvggggggggg
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Nekopoi APK 2025 free lastest update
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Navsoft: AI-Powered Business Solutions & Custom Software Development
L1 - Introduction to python Backend.pptx
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
Upgrade and Innovation Strategies for SAP ERP Customers
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction to Artificial Intelligence

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