The Developer Experience
Upcoming SlideShare
Loading in...5
×
 

The Developer Experience

on

  • 14,058 views

A talk given at WDCNZ 2011. Abstract: ...

A talk given at WDCNZ 2011. Abstract:

"We all know what “user experience” is and we know that it’s important. We analyze drop-off rates for sign-in flows, do A/B testing on color schemes, and organize user focus groups for new features. But we rarely talk about the “developer experience” - what we all go through each time we try to use a developer tool, library, or API. How do we decide what tool to use? Is it easy to integrate with our development environment? How flexible is the API? Where do we go when something goes wrong? Those are the sort of questions that we can ask to understand what it’s like for a developer to use a product - and where it can be improved.

Whether you simply use developer products or you actually build one yourself, you should walk away from this talk with ideas on how to make a great developer experience - and why it matters."

Statistics

Views

Total Views
14,058
Views on SlideShare
11,067
Embed Views
2,991

Actions

Likes
24
Downloads
85
Comments
0

15 Embeds 2,991

http://blog.pamelafox.org 2777
http://zootlinux.blogspot.com 139
http://lanyrd.com 20
https://twitter.com 17
http://twitter.com 14
http://tweetedtimes.com 8
http://a0.twimg.com 4
https://si0.twimg.com 3
http://127.0.0.1:8795 2
http://translate.googleusercontent.com 2
http://us-w1.rockmelt.com 1
http://zootlinux.blogspot.de 1
http://cache.baidu.com 1
http://trunk.ly 1
http://zootlinux.blogspot.it 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.\nI’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. \nAlright, 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!\nOkay, good job everyone! I’m pretty sure you’re awake now, so you can sit down.\nFrom 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.\nALright back to the topic at hand: Developer Experience.\nToday 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.\n\n\n
  • 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.\n
  • 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.\n
  • 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.\n(That’s a sign of a reallly good UX).\nWhen 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.\n
  • 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.\n
  • 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.\n
  • 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.\n
  • Once I’m done that and want to explore other features, I get directed to watch videos explaining how the other features work.\nOh, 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.\n
  • When I do have a question, I can search help at the top, see forum questions, live chat, or email, whatever works for me.\n\nCertainly 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.\n\nBut, I’m not an expert in user experience, and that’s not what we’re here to talk about.\n\n
  • 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. \n\nAnd actually, we can break DX down into the same stages.\n
  • \n
  • For an example, we can look at Twilio, a dev tool known for a good experience. Anyone use it?\n\nWhen 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.\n\n
  • Signup is easy, and it tells me more features along the way.\n
  • I’m immediately greeted by a get started guide - which involves actually calling a phone number which sounds pretty fun.\n
  • I’m also prompted to start programming immediately, and hey look, monkey-themed tutorials!\n
  • 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.\n
  • And if I run into any problems, I can post in the forum or contact Twilio directly.\n
  • so that’s one example of a positive developer experience\n\nbefore we talk in detail about what makes a good experience, i first want to make sure you actually care about making a good experience.\nto do that, i need to understand who you are,\nbefore figuring that out, i have to figure out who you are \n
  • 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. \nTo 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.\n\nNow what about you guys? \nLet’s start with the easy question: how many of you are consumers? Hopefully all of you.\n\nHow 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.\n
  • java - API - dad told me, dont ask him, look online. probably my first developer experience.\nuniversity - started playing around with APIs. made a whopping $30 off amazon API, whee!\n\nso 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.\nbut maybe you need more of a reason than that..especially if youre spending money on making a developer experience.\n\n
  • For a consumer, obviously you want a good experience. But why does a provider care?\naka why should you care\nfacebook example (tried using it, dreaded it, phasing it out)\neveryone in survey hated it\nif google+ succeeds and has a good API, developers more willing to leave.\nfacebook has social graph API..buttt if it loses that..\n\n
  • 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.\nmaps 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..\n\n
  • \n
  • This question breaks down into a few questions.\n\nfirst question is one everyone asks- can this API help me accomplish what i want to do?\nto 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! \nand 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.\n\nsomething 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.\n\n
  • This question breaks down into a few questions.\n\nfirst question is one everyone asks- can this API help me accomplish what i want to do?\nto 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! \nand 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.\n\nsomething 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.\n\n
  • 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.\n\n
  • \nsomething 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.\n\n
  • \n
  • \n
  • automated key signup. \n\nmaps API - multiple domains - \n\nwont 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.\n\n
  • \n
  • \n
  • For each language, environment, and IDE.\nCommon dev environments - mac linux yes even windows, with customized launcher utilities for each of them.\nPLus, some languages are associated with IDEs- like java and eclipse - so they also provide an eclipse plugin.\nDevelopers 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.\n
  • If it’s an HTTP library, provide client libraries for each language.\nYes, 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.\nAnd make them open-source so they can just see how the library does it and adapt it to their needs.\n\nYou 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.\n
  • 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.\nNot everyone will use them, but you should always have a getting started tutorial that will step explicitly through the basics.\nBonus points if they can then base their actual code on the starter code.\nPhoneGap provides a tutorial for each environment.\n
  • 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. \nAt this point, developers will look for documentation to learn about the interface for the tool or API.\n
  • 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.\n\n
  • 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.\nmethods, params, error codes, defaults, return values\n\n
  • dev guide, reference, videos - both narrative and technical breakdown. people learn in different ways.\n
  • 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).\n\nhicharts 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.\n\n
  • Good documentation also has several features - they may seem obvious but they’re suprisingly rare to find them all.\n\nEasy to find, subnav, different versions. Everything has its own page, so it can be found, linked to, and searched for online.\ntable of contents, so people who are link to individual pages find everything.\n \nNot intimidating, even for newbies.\n\n
  • amazon APIs takes too many clicks. get list of different versions, have to figure out right one, then i get this metadata on the doc and choose what i want, and finally i get the page and realize it wasnt what i was looking for and start over. \n\nwhat not to do: be careful of wikis\n
  • Search for methods, search for methods inside a class.\nAlso needs normal SEO - many people will try to search in google.com. It’s popular like that.\nSo don’t mistake of a purely AJAX accessible doc set.\n\n
  • Search for methods, search for methods inside a class.\nAlso needs normal SEO - many people will try to search in google.com. It’s popular like that.\nSo don’t mistake of a purely AJAX accessible doc set.\n\n
  • 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.\n\n
  • \n
  • \n
  • usually a forum. could also be email support, if you’re daring..\n
  • \n
  • \n
  • \n
  • main places to get feedback are docs and API itself\n
  • If it’s an open or open-source technology, you might want to make your docs editable by the community at large. You’ll want moderators to make sure people don’t spread inaccurate information, but it can be a way to scale out documentation. Sometimes there are super-users out there just waiting for a way to share their knowledge.\n\nMozilla Dev Network uses a wiki for its popular HTML/CSS/JS docs, and anyone can login and edit the docs.\n\n
  • Comments aren’t for everyone - jquery had comments on each of their pages, with the hope of getting user contributed examples. They eventually closed the comments as it led to fragmentation of the community and weren’t bringing enough value. Now they direct people elsewhere.\n
  • \n
  • If it’s an open or open-source technology, you might want to make your docs editable by the community at large. You’ll want moderators to make sure people don’t spread inaccurate information, but it can be a way to scale out documentation. Sometimes there are super-users out there just waiting for a way to share their knowledge.\n\nMozilla Dev Network uses a wiki for its popular HTML/CSS/JS docs, and anyone can login and edit the docs.\n\n
  • Or you can make the docs forkable and editable, like SammyJS does.\n
  • simple! easy to use..low barrier..tho maybe not tooo low.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • just smile\n\ntake notes!\n\n
  • 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?\n
  • you have to care/love/give a shit - be attuned to what they need, serve\nmaps api: stayed awake with adrenalin\nmaps api: woke up in morning thinking of devs\n\nmaybe 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.\nMaps API - support, features, new API\nWave 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\n\n
  • you guys also need to care-care enough about what youre using to want it to be better\n\neven if youve made it better for just 5 other developers, thats a good thing.\n
  • conference attendee: most likely sessions you attend are for tech you consume. think how you'd improve, what constructive feedback you can give. talk to the speakers after, let them know.\nif they dont appreciate the feedback, then blame me - but i bet they’re happy to hear it, especially from live developers in person.\n\n\n
  • https://sites.google.com/site/googdevreljobs/\nhttp://apigee.com/about/jobs\n
  • https://sites.google.com/site/googdevreljobs/\nhttp://apigee.com/about/jobs\n
  • developer experience is a unique subset of user experience that deserves attention,\nproviding a positive experience is something everyone should strive for for the bettermint of developerkind.\nEveryone’s experience is different though, so I’d love to hear about yours - chat with me in the hallways or online.\nThanks and have a great day at WDCNZ!\n

The Developer Experience The Developer Experience Presentation Transcript

  • 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 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@jamespearce @paul_irish @avon
  • ...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 NavigateReference & 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 DesignFamiliarity CompatibilitySimplicity 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.
  • API Design: JavaScript Familiarity Compatibility Use object literals for Use a namespace. method options, not Don’t extend native additional arguments. objects. Simplicity DebuggabilityOffer common methods in core API, Offer a debugging everything else as plugins. extension. Do all that while keeping file size small.
  • How do I get help?
  • ForumEmail Subscription & FeedsSpam Handling & ModerationPoster Statistics & Badging
  • Forum
  • Forum
  • GETTING FEEDBACK
  • Documentation can have Comments
  • But they’re not for everybody.
  • Documentation can have Feedback Form
  • Documentation can be Editable
  • Documentation can be Forkable
  • Issue Tracker Comments Votes Status NotificationCategories Search
  • Issue Tracker
  • Issue Tracker
  • HUNGRY FOR MORE?
  • developerexperience.org
  • developer-support-handbook.org
  • BOOKS “If there is any one secret of success, it “The downside of attending to the emotional lies in the ability to get the other “Any extrinsic reward should be life of groups is that it can swamp the ability person’s point of view and see things unexpected and offered only after the to get anything done; a group can become more concerned with satisfying its membersfrom that person’s angle as well as from task is complete.” than with achieving its goals.” your own.” Take notes. Write up learnings. Share.
  • NOW WHAT?
  • PROVIDERS: 1. CareI 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!
  • CONFERENCE ATTENDEES ...that’s all of you. What do I like about X? Whatcould be bet ter? What can I learn fro m my experience? Thanks for the talk! I have some feedback for you...
  • THE DEVELOPER EXPERIENCE IT MATTERS LETS MAKE IT NOT SUCK twitter.com/ pamelafox.org @pamelafox pamelafox@ http:// gmail.com