Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevRelCon London 2019 - Developer Experience Workshop

DevRelCon London 2019 - Developer Experience Workshop

Cristiano Betta

December 09, 2019
Tweet

More Decks by Cristiano Betta

Other Decks in Technology

Transcript

  1. Cristiano Betta Associate Consultant @ Hoopy Senior Developer Advocate @

    Box hoopy.io Senior Developer Advocate @ Box Alyss Noland
  2. Agenda • Defining Developer Experience • Developer Experience Journey •

    Documentation Types • Break • Developer Life Cycle • Friction logs • Operations hoopy.io
  3. Goals • Understand what makes for a great Developer Experience

    • Train your eye to spot bad Developer Experience • Provide you with the vocabulary to explain why something is bad DX • Inform what automation and instrumentation can be created to scale a developer experience hoopy.io
  4. “Developer experience is an extension of UX that focuses on

    the developer, who can either be the intermediary or, as is the case with many APIs, the end user. Whether or not you focus on DX design, your developers are always experiencing your API, and that experience may either be positive or negative.” - Jennifer Riggins | @jkriggins hoopy.io
  5. Developer Experience 1st site visit Successful integration Advocacy Outreach •

    Hackathons • Conferences • Talks • Blog posts • Tutorials Developer Outreach
  6. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support • Feedback • Office hours • Beta Programmes Developer Advocacy
  7. What can I do? What will happen? Will I break

    anything? Can I change my decision? hoopy.io
  8. What can I do? What will happen? Will I break

    anything? Can I change my decision? hoopy.io
  9. Where am I? What can I do? Where can I

    go? Where did I come from? hoopy.io
  10. Are there any usability issues? What type of usability problems

    are they? Discoverability, Predictability, Correctness, Learnability Or Forgiveness? What tricks can you see that make things more learnable, discoverable, etc? Teams of 2 Sign up for each other’s products
  11. What types of documentation can you recognise? For what level

    of experience and motivation is that documentation intended? How does the documentation flow from one type to the other? (Bonus) Using the same products you looked at before
  12. Documentation Types • Get Started Guides • QuickStarts • Tutorials

    • Guides • Samples • Demos • Reference • Use Cases • Examples • Libraries & SDKs
  13. Documentation Types • Get Started Guides • QuickStarts • Tutorials

    • Guides • Samples • Demos • Reference • Use Cases • Examples • Libraries & SDKs
  14. Documentation Types • Get Started Guides • QuickStarts • Tutorials

    • Guides • Samples • Demos • Reference • Use Cases • Examples • Libraries & SDKs
  15. Documentation Types • Get Started Guides • QuickStarts • Tutorials

    • Guides • Samples • Demos • Reference • Use Cases • Examples • Libraries & SDKs
  16. Agenda • Defining Developer Experience • Developer Experience Journey •

    Documentation Types • Break • Developer Life Cycle • Friction logs • Operations hoopy.io
  17. Agenda • Defining Developer Experience • Developer Experience Journey •

    Documentation Types • Break • Developer Life Cycle • Friction logs • Operations hoopy.io
  18. Consideration Loyalty Customer Product Lifecycle Familiarity Purchase Awareness Tutorials, social

    media, traditional marketing… White papers, trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes… Developer Experience
  19. Enablement Retention Customer Product Lifecycle Engagement Developer Experience Tutorials, social

    media, traditional marketing… White papers, trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  20. Engagement Tutorials, social media, traditional marketing… Developer Engagement “To create

    content and perform activities intended to raise awareness and familiarity of the product amongst the wider developer community” Mostly External Facing Often a marketing activity
  21. Enablement Retention Engagement Tutorials, social media, traditional marketing… White papers,

    trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  22. Enablement White papers, trials, testimonials, sample apps, webinars, quick starts…

    Developer Enablement “To create content and perform activities intended to enable internal and external developers to use your product, as well as enable go-to-market facing colleagues to enable others to use the product.” Both internal and external facing Generally an educational activity
  23. Enablement Retention Engagement Tutorials, social media, traditional marketing… White papers,

    trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  24. Retention Beta programmes, newsletters, champion programmes… Developer Retention “To create

    content and perform activities intended to ensure developers and customers understand the continued value of the product and are early adopters new value add-ons” Both internal and external facing Combination of marketing and educational activities
  25. Enablement Retention Engagement Tutorials, social media, traditional marketing… White papers,

    trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  26. What kind of activities or content does your company deliver

    for each of these? Where are the gaps? Is there an in-balance of focus? What would be a good next programme to fill these gaps? On paper or on spreadsheet, create three columns: Engagement, Enablement, and Retention
  27. Cristiano Betta - 9/12/2019 Upload a file to ImgApp *

    Go to developer.imgapp.com This took me to the Get Started Guide but then wasn’t clear on next steps … * Made the sample API call but received a 400 I copied the command literally from the tutorial
 and I got a 400 response with zero guidance on what I did wrong. No idea how to proceed. * Click on “Get Started” … The animated gif on the front-page showed me exactly what I can do with the API within 5 seconds. Discoverable Unpredictable Unforgiving Exploration Getting Started Reference
  28. Reference I copied the command literally from the tutorial
 and

    I got a 400 response with zero guidance on what I did wrong. No idea how to proceed. I wanted to share a link to a specific point in the docs and was unable to get a link as it’s an infinitely scrolling page without clear anchors Unforgiving Inaccessible Get Started Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Discoverable Forgiving Unpredictable
  29. 1. Create a friction log for this use case 2.

    Document on paper or in an online doc 3. Log the moments of delight, frustration, and anger “Send an Tweet with Nexmo” developer.nexmo.com Alternative for non-developers “Send a tweet with a new Twitter account” twitter.com
  30. hoopy.io The problem with DX Create an easy on boarding

    flow Write amazing guides and tutorials Maintain the API spec Create sample code for every API Create useful SDKs Create white papers Speak at conferences Keep in contact with existing customers Maintain a changeling Maintain social media Launch an ambassador programme Engage developers on the forum Work with partners on integrations
  31. hoopy.io Automation 1. Anything that can be turned into a

    checklist should. 2. Checklists can be turned into an automated process.
  32. hoopy.io Automation Documentation • Spellchecking • Translation • External and

    internal link validation • Cross-linking of related content • Create reports to provide other teams with insights into documentation coverage of APIs • Content Matrix
  33. Exploration Get Started Guides Reference Content Matrix Example Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❎ ❎ ❎ ❎ ❎ ❎ ✅ ✅ Store Keys
  34. SDKs • Autogeneration from API spec • Feature parity checking

    • Request sample generation • Standardization hoopy.io Automation
  35. hoopy.io Automation Pipeline Product API Spec Documentation Change SDKs Change

    CLI Change Onboarding Changelog Newsletter Contract Validation
  36. hoopy.io Instrumentation 1. Measure key moments in the developer journey

    as well as the wider developer lifecycle 2. Set up automated process to track improvements and actively warn of deterioration of key indicators
  37. Create app 100% Make API Call A After 2 weeks

    10% active Discover Retention 20% active Make API Call B 50% active Make API Call A+B Prioritize!
  38. Determine 3 key events in your developer lifecycle Pick an

    early moment of engagement, a moment of enablement, and a later moment of retention. Which indicator could be best used to drive further growth? Which indicator could be best used as an indicator of potential deterioration?
  39. The wider developer lifecycle can be described in terms of

    engagement, enablement, and retention hoopy.io
  40. Friction logs created by new users can be a cheap

    yet effective way to gather product feedback hoopy.io
  41. “…in reality, whatever people can pull down from their favorite

    package manager is their developer experience…” - Square’s Tristan Sokol @ DevXCon SF 2̸17 About SDKs hoopy.io