SlideShare a Scribd company logo
1 of 60
Download to read offline
The Developer Experience
            WHAT IT IS

        WHY IT MATTERS

  HOW TO MAKE IT NOT SUCK


                     twitter.com/
       pamelafox.org @pamelafox pamelafox@
   http://                               gmail.com
User Experience

“The sum of all interactions and events,
 both positive and negative, between a
        user and a web site.”
               AKA
           “bla bla bla”
User Experience
   Do I want to use it?


   How do I sign up?


  How do I get started?


    How do I use it?


   How do I get help?
DO I WANT TO USE IT?
HOW DO I SIGN UP?
HOW DO I SIGN UP?
HOW DO I GET STARTED?
HOW DO I USE IT?
HOW DO I GET HELP?
DEVELOPER EXPERIENCE

“The sum of all interactions and events,
 both positive and negative, between a
  developer and a library, tool, or API.”
DEVELOPER EXPERIENCE
      Do I want to use it?


      How do I sign up?


     How do I get started?


       How do I use it?


      How do I get help?
DO I WANT TO USE IT?
HOW DO I SIGN UP?
HOW DO I GET STARTED?
HOW DO I USE IT?
HOW DO I GET HELP?
why should you care?
Who are you?
        Developer Experience

            (Library, Tool, API, ...)



PROVIDERS                        CONSUMERS
...who am I?
Childhood          University               hood          Now
            2002                2006               2011




  CONSUMER                             PROVIDER      CONSUMER
why does DX matter?
               Bad Experience




                      I have to use X.




Bare Minimum Usage       Low Barrier for Leaving
why does DX matter?
              Good Experience




      I like to use X.




Innovative Usage         External Evangelism
let’s break it down...
Do I want to use it?
Does it have the features I need?

Documentation         Interactive Explorer
Can I safely build a business on top of it?
  Licensing                   Pricing




                Stability
Case Studies
How do I sign up?
How do I sign up?
Best answer: No signup! No key!
Automated Key Signup
Usage Dashboard
How do I get started?
Downloads for Every Environment
Client Libraries for Every Language
“Hello World”
(From 0 to 60 in 15 minutes)
How do I use it?

How do I learn how to use it?


     Do I enjoy using it?
How do I learn how to use it?

       Documentation
 Comprehensive      Easy to Navigate

Reference & Guide    Easy to Search
  Running Code      Feedback Loop
Documentation
                      should be Comprehensive




      Every method, parameter, return value, defaults,
implementation notes, errors, side effects, deprecation notices.

        When in doubt, document.
Documentation
    should include both Reference & Guide
Documentation
       should include Runnable Code
Documentation should be   Easy to Navigate
Documentation should be   Easy to Search
Documentation should be   Easy to Search
                             on Google, too
Do I enjoy using it?


        API Design

Familiarity      Compatibility

Simplicity       Debuggability
API Design:          HTTP
   Familiarity           Compatibility
   Use standards          Support both
(when it makes sense)     JSON & XML.
 REST, RPC, OAuth.


    Simplicity          Debuggability
   Don’t throttle.        Give meaningful
                          error messages.

  Most importantly: Never ever use SOAP.
How do I get help?
Forum
Email & Feeds Stats & Badges   !Spam
Issue Tracker
    Comments        Votes Search
Status Categories   Notification
THE EXPERIENCE CURVE
THE FEEDBACK LOOP
     ..should be infinite..
Feedback Forms
Surveys




QT Survey   Mozilla Add-Ons SDK   Blackboard API Survey
Usability Testing


              Did you complete the task?
              How hard was it?

              Would you recommend this API?

              What would have made the
              experience of using the API better?

              Whose API does it better than we do?




   AT&T Usability Testing
Paying Attention


 Twitter
                  Conference Talks


Blog posts


             Google Alerts
MAKEOVER TIME!
Google Maps API

            v2                        v3

           keys                   no keys!
                                   MVC architecture
  bloated library                 (smaller download)

   GMap, GMarker,...               google.maps.*

GPolygon(latlngs, strokeColor,
strokeWeight, strokeOpacity,       google.maps.Polygon(options)
  fillColor, fillOpacity, opts)
ZeptoJS
NOW WHAT?
providers:
                   1. Care


I
                 2. Prioritize




                 3. Improve
CONSUMERS
                               Thanks!
It’d be great if you
     changed X.


       I’d use it more if it
          had feature Y.



      Thanks - look what
        I made with it!
The Developer Experience
                     IT MATTERS

              LETS MAKE IT NOT SUCK


for more...
developerexperience.org      developer-support-handbook.org
                          @pamelafox

More Related Content

What's hot

Intro to jQuery - LUGOR - Part 1
Intro to jQuery - LUGOR - Part 1Intro to jQuery - LUGOR - Part 1
Intro to jQuery - LUGOR - Part 1Ralph Whitbeck
 
WordPress Standardized Loop API
WordPress Standardized Loop APIWordPress Standardized Loop API
WordPress Standardized Loop APIChris Jean
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontoRalph Whitbeck
 
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliGetting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliRebecca Eloise Hogg
 
"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, TembooYandex
 
Wookie Meetup
Wookie MeetupWookie Meetup
Wookie Meetupscottw
 
Build a production ready PWA with Angular and Firebase
Build a production ready PWA with Angular and FirebaseBuild a production ready PWA with Angular and Firebase
Build a production ready PWA with Angular and FirebaseÖnder Ceylan
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Matteo Collina
 
Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000Jon Boutelle
 
Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Todd Jordan
 
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Onely
 
Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011dimakovalenko
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformApigee | Google Cloud
 
J Query - Your First Steps
J Query - Your First StepsJ Query - Your First Steps
J Query - Your First StepsBronson Quick
 
Idea2app
Idea2appIdea2app
Idea2appFlumes
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org Ali Bakhtiari
 

What's hot (19)

Intro to jQuery
Intro to jQueryIntro to jQuery
Intro to jQuery
 
Intro to jQuery - LUGOR - Part 1
Intro to jQuery - LUGOR - Part 1Intro to jQuery - LUGOR - Part 1
Intro to jQuery - LUGOR - Part 1
 
WordPress Standardized Loop API
WordPress Standardized Loop APIWordPress Standardized Loop API
WordPress Standardized Loop API
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days Toronto
 
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliGetting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
 
"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo
 
Wookie Meetup
Wookie MeetupWookie Meetup
Wookie Meetup
 
Build a production ready PWA with Angular and Firebase
Build a production ready PWA with Angular and FirebaseBuild a production ready PWA with Angular and Firebase
Build a production ready PWA with Angular and Firebase
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000
 
Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019
 
Reusable Apps
Reusable AppsReusable Apps
Reusable Apps
 
Google Hacking
Google HackingGoogle Hacking
Google Hacking
 
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
 
Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps Platform
 
J Query - Your First Steps
J Query - Your First StepsJ Query - Your First Steps
J Query - Your First Steps
 
Idea2app
Idea2appIdea2app
Idea2app
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org
 

Similar to The Developer Experience

The Developer Experience
The Developer ExperienceThe Developer Experience
The Developer ExperienceAtlassian
 
The Developer Experience
The Developer ExperienceThe Developer Experience
The Developer ExperiencePamela Fox
 
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...CA API Management
 
User Research on a Shoestring
User Research on a ShoestringUser Research on a Shoestring
User Research on a Shoestringteaguese
 
Guerrilla Usability: Insight on a Shoestring
Guerrilla Usability: Insight on a ShoestringGuerrilla Usability: Insight on a Shoestring
Guerrilla Usability: Insight on a ShoestringDavid Sturtz
 
Engaging a Developer Audience: Documentation and More
Engaging a Developer Audience: Documentation and MoreEngaging a Developer Audience: Documentation and More
Engaging a Developer Audience: Documentation and MoreAnya Stettler
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable apiWojtek Erbetowski
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014openi_ict
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014Michael Petychakis
 
How Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectHow Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectWan Leung Wong
 
What is this UX thing?
What is this UX thing?What is this UX thing?
What is this UX thing?Youmna Aoukar
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersSarah Dutkiewicz
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for DevelopersSarah Dutkiewicz
 
Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Anya Stettler
 
Quality and the "Secret Mission:" From End-Stage Tester to Skilled Analyst
Quality and the "Secret Mission:" From End-Stage Tester to Skilled AnalystQuality and the "Secret Mission:" From End-Stage Tester to Skilled Analyst
Quality and the "Secret Mission:" From End-Stage Tester to Skilled AnalystDevorah Firestone
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopCitrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopReuven Cohen
 

Similar to The Developer Experience (20)

The Developer Experience
The Developer ExperienceThe Developer Experience
The Developer Experience
 
The Developer Experience
The Developer ExperienceThe Developer Experience
The Developer Experience
 
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
 
User Research on a Shoestring
User Research on a ShoestringUser Research on a Shoestring
User Research on a Shoestring
 
Guerrilla Usability: Insight on a Shoestring
Guerrilla Usability: Insight on a ShoestringGuerrilla Usability: Insight on a Shoestring
Guerrilla Usability: Insight on a Shoestring
 
PyTexas 2014
PyTexas   2014PyTexas   2014
PyTexas 2014
 
Engaging a Developer Audience: Documentation and More
Engaging a Developer Audience: Documentation and MoreEngaging a Developer Audience: Documentation and More
Engaging a Developer Audience: Documentation and More
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable api
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014
 
How Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectHow Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your Project
 
What is this UX thing?
What is this UX thing?What is this UX thing?
What is this UX thing?
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Ice dec05-04-wan leung
Ice dec05-04-wan leungIce dec05-04-wan leung
Ice dec05-04-wan leung
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for Developers
 
From Python to Java
From Python to JavaFrom Python to Java
From Python to Java
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for Developers
 
Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)
 
Quality and the "Secret Mission:" From End-Stage Tester to Skilled Analyst
Quality and the "Secret Mission:" From End-Stage Tester to Skilled AnalystQuality and the "Secret Mission:" From End-Stage Tester to Skilled Analyst
Quality and the "Secret Mission:" From End-Stage Tester to Skilled Analyst
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopCitrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
 

More from Pamela Fox

Teaching Programming Online
Teaching Programming OnlineTeaching Programming Online
Teaching Programming OnlinePamela Fox
 
Django Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryDjango Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryPamela Fox
 
A Year of Hermit Hacking
A Year of Hermit HackingA Year of Hermit Hacking
A Year of Hermit HackingPamela Fox
 
Making JavaScript Libraries More Approachable
Making JavaScript Libraries More ApproachableMaking JavaScript Libraries More Approachable
Making JavaScript Libraries More ApproachablePamela Fox
 
How I became a born again vegetable-tarian
How I became a born again vegetable-tarianHow I became a born again vegetable-tarian
How I became a born again vegetable-tarianPamela Fox
 
No, Really, I'm Shy
No, Really, I'm ShyNo, Really, I'm Shy
No, Really, I'm ShyPamela Fox
 
Writing Apps the Google-y Way (Brisbane)
Writing Apps the Google-y Way (Brisbane)Writing Apps the Google-y Way (Brisbane)
Writing Apps the Google-y Way (Brisbane)Pamela Fox
 
Writing Apps the Google-y Way
Writing Apps the Google-y WayWriting Apps the Google-y Way
Writing Apps the Google-y WayPamela Fox
 
The Wonders of the "Onesie"
The Wonders of the "Onesie"The Wonders of the "Onesie"
The Wonders of the "Onesie"Pamela Fox
 
I’M A Barbie Girl In A CS World
I’M A Barbie Girl In A CS WorldI’M A Barbie Girl In A CS World
I’M A Barbie Girl In A CS WorldPamela Fox
 
Collaborative Mapping with Google Wave
Collaborative Mapping with Google WaveCollaborative Mapping with Google Wave
Collaborative Mapping with Google WavePamela Fox
 
Google Products: Deep Dive on Google Maps
Google Products: Deep Dive on Google MapsGoogle Products: Deep Dive on Google Maps
Google Products: Deep Dive on Google MapsPamela Fox
 
Google Products & Google Maps
Google Products & Google MapsGoogle Products & Google Maps
Google Products & Google MapsPamela Fox
 
A World of Words
A World of WordsA World of Words
A World of WordsPamela Fox
 
Web APIs & Google APIs
Web APIs & Google APIsWeb APIs & Google APIs
Web APIs & Google APIsPamela Fox
 
Growing up Geek: My Dad, the Computer Scientist
Growing up Geek: My Dad, the Computer ScientistGrowing up Geek: My Dad, the Computer Scientist
Growing up Geek: My Dad, the Computer ScientistPamela Fox
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructurePamela Fox
 
Client Killed the Server Star
Client Killed the Server StarClient Killed the Server Star
Client Killed the Server StarPamela Fox
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIASFlex vs. HTML5 for RIAS
Flex vs. HTML5 for RIASPamela Fox
 
NORAD Santa Tracker: Tips & Tricks
NORAD Santa Tracker: Tips & TricksNORAD Santa Tracker: Tips & Tricks
NORAD Santa Tracker: Tips & TricksPamela Fox
 

More from Pamela Fox (20)

Teaching Programming Online
Teaching Programming OnlineTeaching Programming Online
Teaching Programming Online
 
Django Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryDjango Admin: Widgetry & Witchery
Django Admin: Widgetry & Witchery
 
A Year of Hermit Hacking
A Year of Hermit HackingA Year of Hermit Hacking
A Year of Hermit Hacking
 
Making JavaScript Libraries More Approachable
Making JavaScript Libraries More ApproachableMaking JavaScript Libraries More Approachable
Making JavaScript Libraries More Approachable
 
How I became a born again vegetable-tarian
How I became a born again vegetable-tarianHow I became a born again vegetable-tarian
How I became a born again vegetable-tarian
 
No, Really, I'm Shy
No, Really, I'm ShyNo, Really, I'm Shy
No, Really, I'm Shy
 
Writing Apps the Google-y Way (Brisbane)
Writing Apps the Google-y Way (Brisbane)Writing Apps the Google-y Way (Brisbane)
Writing Apps the Google-y Way (Brisbane)
 
Writing Apps the Google-y Way
Writing Apps the Google-y WayWriting Apps the Google-y Way
Writing Apps the Google-y Way
 
The Wonders of the "Onesie"
The Wonders of the "Onesie"The Wonders of the "Onesie"
The Wonders of the "Onesie"
 
I’M A Barbie Girl In A CS World
I’M A Barbie Girl In A CS WorldI’M A Barbie Girl In A CS World
I’M A Barbie Girl In A CS World
 
Collaborative Mapping with Google Wave
Collaborative Mapping with Google WaveCollaborative Mapping with Google Wave
Collaborative Mapping with Google Wave
 
Google Products: Deep Dive on Google Maps
Google Products: Deep Dive on Google MapsGoogle Products: Deep Dive on Google Maps
Google Products: Deep Dive on Google Maps
 
Google Products & Google Maps
Google Products & Google MapsGoogle Products & Google Maps
Google Products & Google Maps
 
A World of Words
A World of WordsA World of Words
A World of Words
 
Web APIs & Google APIs
Web APIs & Google APIsWeb APIs & Google APIs
Web APIs & Google APIs
 
Growing up Geek: My Dad, the Computer Scientist
Growing up Geek: My Dad, the Computer ScientistGrowing up Geek: My Dad, the Computer Scientist
Growing up Geek: My Dad, the Computer Scientist
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
 
Client Killed the Server Star
Client Killed the Server StarClient Killed the Server Star
Client Killed the Server Star
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIASFlex vs. HTML5 for RIAS
Flex vs. HTML5 for RIAS
 
NORAD Santa Tracker: Tips & Tricks
NORAD Santa Tracker: Tips & TricksNORAD Santa Tracker: Tips & Tricks
NORAD Santa Tracker: Tips & Tricks
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
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
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
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
 
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)
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
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!
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

The Developer Experience

Editor's Notes

  1. Hey everyone! It’s great to be here in New Zealand speaking to you guys - I’ve attended enough NZ conferences in the past to know the developers here are really top-notch. I’m also honored to be presenting first thing in the morning, but to tell the truth, I’m also a bit nervous that you all will fall asleep on me. I’ve devised a clever plan however - I’m going to teach you a dance. I’ve been practicing it in the hotel room, and I think it should be the official dance of WDCNZ. Okay, now, everyone stand up. Alright, this dance is to the tune of YMCA. First we do the W, D, C, N - this one’s tricky, then Z. Okay then we put it together with the melody. WDCNZ! dododood WDCNZ! Okay, good job everyone! I’m pretty sure you’re awake now, so you can sit down. From now on, that will also be our secret code dance, in case we meet outside the conference and want to confirm we’re in the WDCNZ cult. ALright back to the topic at hand: Developer Experience. Today I’m going to talk about what it is, why it matters, and how to make it good- or in more technical terms, how to make it not suck.
  2. Developer Experience is a new term that doesn’t get used much, so let’s start with discussing a term you probably hear all the time: user experience. There’s lots of fancy definitions for it, but it’s basically the experience that somebody goes through when using a product, and when we hear it, it’s usually in terms of a website user.
  3. There are lots of websites out there, but for many of them, the experience can be broken into these stages - discovery, deciding whether to use it, signing up, getting started, actually using it continually, and getting help when something goes wrong.
  4. For a concrete example, let’s look at the website for MailChimp. Have any of you used MailChimp? I actually hadn’t used it before last week and had no idea what it did, but I kept hearing that it had a great user experience, so I signed up just to check it out. (That’s a sign of a reallly good UX). When I first visit the site, I’m greeted with a huge adorable mail chimpanzee (bonus points because I love monkeys), a giant headline that tells me what it does, and an enticing button to sign up for free. So I continue on.
  5. Then I go to the signup screen, expecting a long form, and all I have to do is enter my email username and password, and I get nice confirmations along the way that I’ve entered everything correctly.
  6. Once I respond to an email confirming that address, I fill out a longer form. Okay, not as great, but atleast the form tells me along the way why it needs each bit of information.
  7. After that, I’m brought to the user home screen and immediately see a step-by-step guide to getting started. I don’t have to search around, I know my first step: create a subscriber list.
  8. Once I’m done that and want to explore other features, I get directed to watch videos explaining how the other features work. Oh, and along the way, the monkey at the top says stuff..like right now, he’s not wearing any pants. This gets better and better.
  9. When I do have a question, I can search help at the top, see forum questions, live chat, or email, whatever works for me. Certainly there are other aspects of the MailChimp experience, but that gives you a good idea for what it’d be like to be a MailChimp user -pretty good, from what I can tell. But, I’m not an expert in user experience, and that’s not what we’re here to talk about.
  10. We’re here to talk about developer experience. We can make up fancy definitions for DX as well, but really, it’s just user experience in the developer realm - the experience of a developer trying to use a tool, library, or API. And actually, we can break DX down into the same stages.
  11. For an example, we can look at Twilio, a dev tool known for a good experience. Anyone use it? When I first visit, I see a landing page a lot like MailChimp - cute relevant graphics (unfortunately no monkey), a big headline that explains what it does, and a signup for free button.
  12. Signup is easy, and it tells me more features along the way.
  13. I’m immediately greeted by a get started guide - which involves actually calling a phone number which sounds pretty fun.
  14. Once I get past the hello monkeys, I can browse through their examples or API reference to do what I actually want to get done.
  15. And if I run into any problems, I can post in the forum or contact Twilio directly.
  16. so that’s one example of a positive developer experience before we talk in detail about what makes a good experience, i first want to make sure you actually care about making a good experience. to do that, i need to understand who you are, before figuring that out, i have to figure out who you are
  17. When it comes to developer experience there are providers - the people who create the experience and provide the library, tool, or API - and there are consumers - the people who use that product. To give you examples of people you already know, I checked out the speakers list. James Pearce works for Sencha as a developer evangelist for their platform, so he is very much on the provider side. Karl Van Randow creates iPhone apps using the Apple platform, so he is more of a consumer. Of course, many developers are in the middle - often when you’re doing it right, you also consume the tool you provide. Paul Irish uses HTML5 to create websites, but he now also works for Google Developer Relations, working with the Chrome team and teaching other people how to use it. Now what about you guys? Let’s start with the easy question: how many of you are consumers? Hopefully all of you. How many of you are providers? That might mean you work for a developer facing product, but also could mean you work on an internal API for your company, or you are an open source maintainer in your free time.
  18. java - API - dad told me, dont ask him, look online. probably my first developer experience. university - started playing around with APIs. made a whopping $30 off amazon API, whee! so i cared because i was paid to do it but also because i started off as a developer, knew id be a developer in the future, and just wanted for developers what i would have wanted. but maybe you need more of a reason than that..especially if youre spending money on making a developer experience.
  19. For a consumer, obviously you want a good experience. But why does a provider care? aka why should you care facebook example (tried using it, dreaded it, phasing it out) everyone in survey hated it if google+ succeeds and has a good API, developers more willing to leave. facebook has social graph API..buttt if it loses that..
  20. developers will want to stay with it and get others to use it too - crowd-sourced advocacy effort. they’ll also use it for fun, even when they don’t have to, and come up with really cool things. maps API..used it whenever i had the chance. developers did more with it than we ever imagined, and got great publicity out of the out there ones. there are competitors but..
  21. This question breaks down into a few questions. first question is one everyone asks- can this API help me accomplish what i want to do? to figure that out they need to understand the API feature set- if the docs are public (as they should be), they can read theirs, see the method they need and move on. even better, if there’s an interactive explorer, they can see for themselves the code that will do what they want- seeing IS believing! and then anyone who’s not just using a tool for shits and giggles will actually care if they can legally use it and afford it. they want to know the licensing, pricing. they want to feel it’s stable - dont want to build a business on top of something that will change or go away, especially if its not open source. they also want to think the team is committed to keeping it, so a general degree of polish and professionalism can help with it. something that can help answer both these questions are case studies -case studies show how a 3rd party developer has used something, and also prove that another developer trusts the tool enough to build on top of it. if you’re trying to attract non-hobbyist developers, case studies can be very useful. they also showcase the kind of apps you’re expecting developers to build.
  22. This question breaks down into a few questions. first question is one everyone asks- can this API help me accomplish what i want to do? to figure that out they need to understand the API feature set- if the docs are public (as they should be), they can read theirs, see the method they need and move on. even better, if there’s an interactive explorer, they can see for themselves the code that will do what they want- seeing IS believing! and then anyone who’s not just using a tool for shits and giggles will actually care if they can legally use it and afford it. they want to know the licensing, pricing. they want to feel it’s stable - dont want to build a business on top of something that will change or go away, especially if its not open source. they also want to think the team is committed to keeping it, so a general degree of polish and professionalism can help with it. something that can help answer both these questions are case studies -case studies show how a 3rd party developer has used something, and also prove that another developer trusts the tool enough to build on top of it. if you’re trying to attract non-hobbyist developers, case studies can be very useful. they also showcase the kind of apps you’re expecting developers to build.
  23. and then anyone who’s not just using a tool for shits and giggles will actually care if they can legally use it and afford it. they want to know the licensing, pricing. they want to feel it’s stable - dont want to build a business on top of something that will change or go away, especially if its not open source. they also want to think the team is committed to keeping it, so a general degree of polish and professionalism can help with it.
  24. something that can help answer both these questions are case studies -case studies show how a 3rd party developer has used something, and also prove that another developer trusts the tool enough to build on top of it. if you’re trying to attract non-hobbyist developers, case studies can be very useful. they also showcase the kind of apps you’re expecting developers to build.
  25. automated key signup. maps API - multiple domains - wont name names, but one i had to fill out a form, wait 3 days, and then got emailed with the addresses all CCed. dont make developers wait.
  26. For each language, environment, and IDE. Common dev environments - mac linux yes even windows, with customized launcher utilities for each of them. PLus, some languages are associated with IDEs- like java and eclipse - so they also provide an eclipse plugin. Developers dont want to spend their time setting your thing up, they want to spend it actually using it. If it takes too long before they get their first whoa moment, then you might be discarded.
  27. If it’s an HTTP library, provide client libraries for each language. Yes, they can construct the HTTP requests themselves, but particularly if there’s anything sort of authentication involved, it’s much easier if they can use a library. And make them open-source so they can just see how the library does it and adapt it to their needs. You don’t have to write all the client libraries yourself - you can encourage 3rd party developers to do it, and link to them. Just be careful about deprecations and upgrades.
  28. Some people hate on hello worlds, but here’s the thing: humans like to see output. It makes us feel good, and motivates us to keep going. If we can follow a tutorial that will get us running with our first project that uses something- even if it’s simple- that will give us the confidence to keep going. Not everyone will use them, but you should always have a getting started tutorial that will step explicitly through the basics. Bonus points if they can then base their actual code on the starter code. PhoneGap provides a tutorial for each environment.
  29. Once you actually get something minimal running, you want to figure out how to use it to accomplish your actual goal - which is probably more complicated. At this point, developers will look for documentation to learn about the interface for the tool or API.
  30. first rule of documentation is to have it be thorough. if something isn’t documented, it basically doesn’t exist. even if your documentation has to say this is buggy, document it. better that you document what you know than have developers out there each spending hours to figure it out.
  31. first rule of documentation is to have it be thorough. if something isn’t documented, it basically doesn’t exist. even if your documentation has to say this is buggy, document it. better that you document what you know than have developers out there each spending hours to figure it out. methods, params, error codes, defaults, return values
  32. dev guide, reference, videos - both narrative and technical breakdown. people learn in different ways.
  33. in the reference, every class/method comes with example code below the definition, and sometimes that code can even be run in the browser. (Or for HTTP APIs, sample request and responses in every data format are offered). hicharts atleast one example jsfiddle for every option, which is both runnable and editable. and they have 100s of options. its made it a lot easier for me to use their API over the past few weeks, cuz i can test stuff out without touching my code and figure out what option i need.
  34. Good documentation also has several features - they may seem obvious but they’re suprisingly rare to find them all. Easy to find, subnav, different versions. Everything has its own page, so it can be found, linked to, and searched for online. table of contents, so people who are link to individual pages find everything. Not intimidating, even for newbies.
  35. Search for methods, search for methods inside a class. Also needs normal SEO - many people will try to search in google.com. It’s popular like that. So don’t mistake of a purely AJAX accessible doc set.
  36. Search for methods, search for methods inside a class. Also needs normal SEO - many people will try to search in google.com. It’s popular like that. So don’t mistake of a purely AJAX accessible doc set.
  37. first rule of documentation is to have it be thorough. if something isn’t documented, it basically doesn’t exist. even if your documentation has to say this is buggy, document it. better that you document what you know than have developers out there each spending hours to figure it out.
  38. So now that I’ve filled your head with ideas on what makes a good developer experience (and doesn’t), what can you do with that information?
  39. simple! easy to use..low barrier..tho maybe not tooo low.
  40. simple! easy to use..low barrier..tho maybe not tooo low.
  41. So now that I’ve filled your head with ideas on what makes a good developer experience (and doesn’t), what can you do with that information?
  42. So now that I’ve filled your head with ideas on what makes a good developer experience (and doesn’t), what can you do with that information?
  43. simple! easy to use..low barrier..tho maybe not tooo low.
  44. simple! easy to use..low barrier..tho maybe not tooo low.
  45. So now that I’ve filled your head with ideas on what makes a good developer experience (and doesn’t), what can you do with that information?
  46. you have to care/love/give a shit - be attuned to what they need, serve maps api: stayed awake with adrenalin maps api: woke up in morning thinking of devs maybe thats extreme but the point is this- if you dont genuinely care, it will be hard for you to know how to make it better. Maps API - support, features, new API Wave API - new API (both features + design - the common things were too hard, some things weren't possible at all), then docs, then we got killed
  47. you guys also need to care-care enough about what youre using to want it to be better even if youve made it better for just 5 other developers, thats a good thing.
  48. developer experience is a unique subset of user experience that deserves attention, providing a positive experience is something everyone should strive for for the bettermint of developerkind. Everyone’s experience is different though, so I’d love to hear about yours - chat with me in the hallways or online. Thanks and have a great day at WDCNZ!