SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Measuring REST	

     Subbu Allamaraju	
   http://www.subbu.org	
http://twitter.com/sallamar
My (Im)Maturity	

Level   1: What is REST?	
	
Level   2: Wow! … What? … Aha!	
	
Level   3: Explain, rationalize	
	
Level   4: Build stuff
Hypermedia and





	
  
 Media Types
How to measure REST?	

  What to measure?
100	
  %	
  REST?	
  
                        Performance – 	
                          	network performance, user 	
                          	perceived performance, and 	
                          	network efficiency	
                        	
                        Scalability	
                        	
                        Simplicity 	
REST Constraints	       	
                        Modifiability – 	
                          	evolvability, extensibility, 	
                          	customizability, 	
                          	configurability, and reusability	
                        	
                        Visibility	
                        Portability	
                        Reliability
•  But “glory” is not a systemic
   quality.	
•  Glory is not measurable	
•  Does not lead to $$$
Show me 100%
RESTful apps
Is REST a hoax
    then?
Question #1: Is this a marketing
     or messaging problem?
Question #2: Can you prove that
   sum(constraints) leads to
        sum(qualities)?
Hand-wave	
Reason out and rationalize in the
abstract	
 	
 Nah, we need to put some
 engineering back into software
Question #3: Can you prove that
 any given constraint leads to
          any quality?
Hand-wave	
Advocate: “Make judicious
tradeoffs”	
 	
 But how do I know if I’m making
 judicious tradeoffs?
Step #1: Agree on a set of
qualities that matter for your app
Ex:	
	
•  Performance	
•  Ease of use 	
•  Adoption	




 Roy’s list is not the super-set
Step #2: Contextualize the
 qualities into scenarios
•  Performance	
  •    Serve a photo in “t” msec	
  •    Process “n” photos per hour 	
•  Ease of use 	
  •    A developer should be able to build
       a client app in 30 minutes	
•  Adoption	
  •    Must gain “y00” developers in 3
       months after launch
Step #3: Prioritize qualities and
            scenarios
•  Adoption	
  •    Must gain “y00” developers in 3
       months after launch	
•  Performance	
  •    Serve a photo in “t” msec	
  •    Process “n” photos per hour 	
•  Ease of use 	
  •    A developer should be able to build
       a client app in 30 minutes
Step #4: Pick solutions among
alternatives that you think meet
         the scenarios
•  Adoption	
  •    Must gain “y00” developers in 3
       months after launch	
•  Performance	
  •    Serve a photo in “t” msec	
  •    Process “n” photos per hour 	
•  Ease of use 	
  •    A developer should be able to build
       a client app in 30 minutes
What should you measure?	

                $$$	
              $$$,$$$	
            $$$,$$$,$$$	


Make the case for REST constraints based
  on specific scenarios and priorities

Mais conteúdo relacionado

Semelhante a Measuring REST: Make the Case for Constraints

Usability Show+Tell
Usability Show+TellUsability Show+Tell
Usability Show+Tellgcotrell
 
RQS - Requirements Quality Suite
RQS - Requirements Quality SuiteRQS - Requirements Quality Suite
RQS - Requirements Quality SuiteThe REUSE Company
 
Joseph W. Yoder, Being Agile about Quality
Joseph W. Yoder, Being Agile about QualityJoseph W. Yoder, Being Agile about Quality
Joseph W. Yoder, Being Agile about QualityHironori Washizaki
 
Microservices or does the size matter?
Microservices or does the size matter?Microservices or does the size matter?
Microservices or does the size matter?Yuriy Senko
 
Whose View is it Anyway: Addressing Multiple Stakeholder Concerns
Whose View is it Anyway: Addressing Multiple Stakeholder ConcernsWhose View is it Anyway: Addressing Multiple Stakeholder Concerns
Whose View is it Anyway: Addressing Multiple Stakeholder Concernssferoz
 
SWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration Tools
SWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration ToolsSWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration Tools
SWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration ToolsJosep Brunetti
 
Beyond Staggered Sprints: Integrating User Experience and Agile
Beyond Staggered Sprints: Integrating User Experience and AgileBeyond Staggered Sprints: Integrating User Experience and Agile
Beyond Staggered Sprints: Integrating User Experience and AgileJeff Gothelf
 
Uber's new mobile architecture
Uber's new mobile architectureUber's new mobile architecture
Uber's new mobile architectureDhaval Patel
 
QA is not quality
QA is not qualityQA is not quality
QA is not qualityAlex Wilson
 
Web Performance Bootcamp 2014
Web Performance Bootcamp 2014Web Performance Bootcamp 2014
Web Performance Bootcamp 2014Daniel Austin
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017
Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017
Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017Amazon Web Services
 
AWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAmazon Web Services
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsGiulio Roggero
 
Best Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdfBest Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdfDarshanaMallick
 
UX @ NICE enterprise
UX @ NICE enterpriseUX @ NICE enterprise
UX @ NICE enterpriseRan Liron
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringVanessa Turke
 
Microservices music city code v2
Microservices  music city code v2Microservices  music city code v2
Microservices music city code v2Gregory Beamer
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013Daniel Austin
 

Semelhante a Measuring REST: Make the Case for Constraints (20)

Usability Show+Tell
Usability Show+TellUsability Show+Tell
Usability Show+Tell
 
RQS - Requirements Quality Suite
RQS - Requirements Quality SuiteRQS - Requirements Quality Suite
RQS - Requirements Quality Suite
 
Joseph W. Yoder, Being Agile about Quality
Joseph W. Yoder, Being Agile about QualityJoseph W. Yoder, Being Agile about Quality
Joseph W. Yoder, Being Agile about Quality
 
Microservices or does the size matter?
Microservices or does the size matter?Microservices or does the size matter?
Microservices or does the size matter?
 
Whose View is it Anyway: Addressing Multiple Stakeholder Concerns
Whose View is it Anyway: Addressing Multiple Stakeholder ConcernsWhose View is it Anyway: Addressing Multiple Stakeholder Concerns
Whose View is it Anyway: Addressing Multiple Stakeholder Concerns
 
SWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration Tools
SWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration ToolsSWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration Tools
SWET­‐QUM: A Quality in Use Extension Model for Semantic Web Exploration Tools
 
Beyond Staggered Sprints: Integrating User Experience and Agile
Beyond Staggered Sprints: Integrating User Experience and AgileBeyond Staggered Sprints: Integrating User Experience and Agile
Beyond Staggered Sprints: Integrating User Experience and Agile
 
Uber's new mobile architecture
Uber's new mobile architectureUber's new mobile architecture
Uber's new mobile architecture
 
QA is not quality
QA is not qualityQA is not quality
QA is not quality
 
Web Performance Bootcamp 2014
Web Performance Bootcamp 2014Web Performance Bootcamp 2014
Web Performance Bootcamp 2014
 
Software quality
Software qualitySoftware quality
Software quality
 
Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017
Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017
Deep Dive on Microservices and Docker - AWS Summit Cape Town 2017
 
AWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWS
 
Unit ii
Unit   iiUnit   ii
Unit ii
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Best Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdfBest Practices for React Developer Test Technical Assessment for Hiring.pdf
Best Practices for React Developer Test Technical Assessment for Hiring.pdf
 
UX @ NICE enterprise
UX @ NICE enterpriseUX @ NICE enterprise
UX @ NICE enterprise
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements Gathering
 
Microservices music city code v2
Microservices  music city code v2Microservices  music city code v2
Microservices music city code v2
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013
 

Mais de Subbu Allamaraju

What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)Subbu Allamaraju
 
Are We Ready for Serverless
Are We Ready for ServerlessAre We Ready for Serverless
Are We Ready for ServerlessSubbu Allamaraju
 
How to Sell Serverless to Your Colleagues
How to Sell Serverless to Your ColleaguesHow to Sell Serverless to Your Colleagues
How to Sell Serverless to Your ColleaguesSubbu Allamaraju
 
Turning Containers into Cattle
Turning Containers into CattleTurning Containers into Cattle
Turning Containers into CattleSubbu Allamaraju
 
Keystone at the Center of Our Universe
Keystone at the Center of Our UniverseKeystone at the Center of Our Universe
Keystone at the Center of Our UniverseSubbu Allamaraju
 
Journey and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalJourney and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalSubbu Allamaraju
 
ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale Subbu Allamaraju
 
RESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs FictionRESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs FictionSubbu Allamaraju
 

Mais de Subbu Allamaraju (16)

Five Rules
Five RulesFive Rules
Five Rules
 
Leading a Transformation
Leading a TransformationLeading a Transformation
Leading a Transformation
 
Taming the Rate of Change
Taming the Rate of ChangeTaming the Rate of Change
Taming the Rate of Change
 
What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)
 
Are We Ready for Serverless
Are We Ready for ServerlessAre We Ready for Serverless
Are We Ready for Serverless
 
How to Sell Serverless to Your Colleagues
How to Sell Serverless to Your ColleaguesHow to Sell Serverless to Your Colleagues
How to Sell Serverless to Your Colleagues
 
Turning Containers into Cattle
Turning Containers into CattleTurning Containers into Cattle
Turning Containers into Cattle
 
Keystone at the Center of Our Universe
Keystone at the Center of Our UniverseKeystone at the Center of Our Universe
Keystone at the Center of Our Universe
 
Journey and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalJourney and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPal
 
Engineering operations
Engineering operationsEngineering operations
Engineering operations
 
Open stack@ebay
Open stack@ebayOpen stack@ebay
Open stack@ebay
 
ql.io at NodePDX
ql.io at NodePDXql.io at NodePDX
ql.io at NodePDX
 
ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale
 
REST: Theory vs Practice
REST: Theory vs PracticeREST: Theory vs Practice
REST: Theory vs Practice
 
RESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs FictionRESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs Fiction
 
Pragmatic Rest
Pragmatic RestPragmatic Rest
Pragmatic Rest
 

Último

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Último (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Measuring REST: Make the Case for Constraints

  • 1. Measuring REST Subbu Allamaraju http://www.subbu.org http://twitter.com/sallamar
  • 2. My (Im)Maturity Level 1: What is REST? Level 2: Wow! … What? … Aha! Level 3: Explain, rationalize Level 4: Build stuff
  • 3.
  • 5. How to measure REST? What to measure?
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. 100  %  REST?   Performance – network performance, user perceived performance, and network efficiency Scalability Simplicity REST Constraints Modifiability – evolvability, extensibility, customizability, configurability, and reusability Visibility Portability Reliability
  • 11.
  • 12. •  But “glory” is not a systemic quality. •  Glory is not measurable •  Does not lead to $$$
  • 13.
  • 15. Is REST a hoax then?
  • 16. Question #1: Is this a marketing or messaging problem?
  • 17. Question #2: Can you prove that sum(constraints) leads to sum(qualities)?
  • 18. Hand-wave Reason out and rationalize in the abstract Nah, we need to put some engineering back into software
  • 19. Question #3: Can you prove that any given constraint leads to any quality?
  • 20. Hand-wave Advocate: “Make judicious tradeoffs” But how do I know if I’m making judicious tradeoffs?
  • 21. Step #1: Agree on a set of qualities that matter for your app
  • 22.
  • 23. Ex: •  Performance •  Ease of use •  Adoption Roy’s list is not the super-set
  • 24. Step #2: Contextualize the qualities into scenarios
  • 25. •  Performance •  Serve a photo in “t” msec •  Process “n” photos per hour •  Ease of use •  A developer should be able to build a client app in 30 minutes •  Adoption •  Must gain “y00” developers in 3 months after launch
  • 26. Step #3: Prioritize qualities and scenarios
  • 27. •  Adoption •  Must gain “y00” developers in 3 months after launch •  Performance •  Serve a photo in “t” msec •  Process “n” photos per hour •  Ease of use •  A developer should be able to build a client app in 30 minutes
  • 28. Step #4: Pick solutions among alternatives that you think meet the scenarios
  • 29. •  Adoption •  Must gain “y00” developers in 3 months after launch •  Performance •  Serve a photo in “t” msec •  Process “n” photos per hour •  Ease of use •  A developer should be able to build a client app in 30 minutes
  • 30. What should you measure? $$$ $$$,$$$ $$$,$$$,$$$ Make the case for REST constraints based on specific scenarios and priorities