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

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
Kevin DeRudder
 
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
 

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 Mapping
jascc1
 
What Will Game become?
What Will Game become?What Will Game become?
What Will Game become?
Cara Yu
 
Business Model Wargame, SunIdee 2012
Business Model Wargame, SunIdee 2012Business Model Wargame, SunIdee 2012
Business Model Wargame, SunIdee 2012
Martin 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

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

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

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

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