DevRelCon London 2019 - Developer Experience Workshop

DevRelCon London 2019 - Developer Experience Workshop

E0ee803f10db4d5fb85f8288a421850b?s=128

Cristiano Betta

December 09, 2019
Tweet

Transcript

  1. Developer Experience December 9th, 2̸19 hoopy.io

  2. Welcome hoopy.io

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

    Box hoopy.io Senior Developer Advocate @ Box Alyss Noland
  4. betta.io

  5. @cbetta cristiano@hoopy.io hoopy.io cbetta@box.com @PreciselyAlyss anoland@box.com

  6. hoopy.io

  7. Agenda • Defining Developer Experience • Developer Experience Journey •

    Documentation Types • Break • Developer Life Cycle • Friction logs • Operations hoopy.io
  8. 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
  9. Theory Exercises: Analysis + hoopy.io

  10. Ask me anything hoopy.io

  11. Oh, hi! hoopy.io

  12. Developer Experience hoopy.io

  13. What is DX? hoopy.io

  14. “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
  15. A platform

  16. A platform A successful user

  17. A developer platform A successful developer

  18. A developer platform A successful developer A fresh new developer

  19. A developer platform A fresh new developer Long term success

    A successful developer
  20. Developer Experience 1st site visit Successful integration Outreach Advocacy

  21. Developer Experience 1st site visit Successful integration Advocacy Outreach •

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

  23. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support • Feedback • Office hours • Beta Programmes Developer Advocacy
  24. Developer Experience 1st site visit Successful integration Outreach Advocacy

  25. APIs + SDKs Docs + Onboarding

  26. APIs + SDKs Docs + Onboarding

  27. APIs + SDKs Docs + Onboarding + External Developers

  28. Usability + External Developers

  29. Usability

  30. “Simple”

  31. Usability

  32. Discoverable Forgiving Learnable Correct Predictable Usability

  33. Correct hoopy.io

  34. None
  35. None
  36. Predictable hoopy.io

  37. Cognitive Load hoopy.io

  38. Cognitive Overload hoopy.io

  39. Cognitive Overload

  40. What can I do? What will happen? Will I break

    anything? Can I change my decision? hoopy.io
  41. _ Your name* hoopy.io

  42. Who can see this? Your name* hoopy.io

  43. Can I change this later? Your name* hoopy.io

  44. What can I do? What will happen? Will I break

    anything? Can I change my decision? hoopy.io
  45. Discoverable hoopy.io

  46. Where am I? What can I do? Where can I

    go? Where did I come from? hoopy.io
  47. None
  48. hoopy.io

  49. “Scent of information” hoopy.io

  50. None
  51. None
  52. Forgiving hoopy.io

  53. hoopy.io

  54. hoopy.io

  55. hoopy.io

  56. Learnable hoopy.io

  57. None
  58. None
  59. Usability Discoverable Forgiving Learnable Correct Predictable

  60. Usability hoopy.io

  61. Exercise hoopy.io

  62. None
  63. 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
  64. Usability Discoverable Forgiving Learnable Correct Predictable hoopy.io

  65. Usability hoopy.io

  66. Usability + External Developers hoopy.io

  67. External Developers hoopy.io

  68. External Developers hoopy.io

  69. Understanding Developers hoopy.io

  70. Understanding Developers

  71. Understanding Developers Documentation Types

  72. Understanding Developers Documentation Types Developer Journey

  73. Understanding Developers Documentation Types Developer Journey Wider Developer Lifecycle

  74. Understanding Developers Documentation Types Developer Journey Friction Logging Wider Developer

    Lifecycle
  75. Understanding Developers Documentation Types Developer Journey Friction Logging Wider Developer

    Lifecycle Operationalization
  76. hoopy.io Understanding Developers

  77. Understanding Developers • Enterprise Developers • Startup Developers • Hackers

    • Junior • N00bs • Senior
  78. Developer Drivers • Market • Organisation • Technical • Developer

  79. Developer Drivers • What we’re trying to understand • What

    we’re trying to overcome
  80. Developer Drivers • Product Experience • Industry Experience • Technical

    Experience • Life Experience • Motivation
  81. Developer Attributes • Experience • Motivation

  82. Developer Journey Experience Motivation

  83. Experience Motivation Your CTO Developer Journey

  84. Experience Motivation Your CTO Starter Developer Journey

  85. Experience Motivation Your CTO Convert Developer Journey Starter

  86. Experience Motivation Your CTO Convert Try Now Developer Journey Starter

  87. Experience Motivation Your CTO Convert Try Now Impl. Developer Journey

    Starter
  88. Experience Motivation Expert Convert Try Now Impl. Developer Journey Starter

  89. Experience Motivation Developer Journey

  90. Understanding Developers

  91. Understanding Developers Documentation Types Developer Journey

  92. Documentation Types hoopy.io

  93. Exercise hoopy.io

  94. 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
  95. Documentation Types hoopy.io

  96. Documentation Types • Get Started Guides • QuickStarts • Tutorials

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

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

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

    • Guides • Samples • Demos • Reference • Use Cases • Examples • Libraries & SDKs
  100. Documentation Types Experience Motivation

  101. Reference Experience Motivation hoopy.io

  102. None
  103. None
  104. Reference Experience Motivation hoopy.io

  105. Reference Exploration Experience Motivation hoopy.io

  106. None
  107. None
  108. None
  109. None
  110. Reference Exploration Experience Motivation hoopy.io

  111. Getting Started Reference Exploration Experience Motivation hoopy.io

  112. None
  113. None
  114. None
  115. None
  116. None
  117. Further Guidance Getting Started Reference Exploration Experience Motivation hoopy.io

  118. None
  119. None
  120. Further Guidance Getting Started Reference Exploration Experience Motivation hoopy.io

  121. None
  122. None
  123. None
  124. None
  125. Further Guidance Getting Started Reference Exploration Experience Motivation hoopy.io

  126. Further Guidance Getting Started Reference Exploration Developer Journey

  127. Understanding Developers Documentation Types Developer Journey

  128. Break hoopy.io

  129. Agenda • Defining Developer Experience • Developer Experience Journey •

    Documentation Types • Break • Developer Life Cycle • Friction logs • Operations hoopy.io
  130. Break hoopy.io

  131. Agenda • Defining Developer Experience • Developer Experience Journey •

    Documentation Types • Break • Developer Life Cycle • Friction logs • Operations hoopy.io
  132. Understanding Developers Documentation Types Developer Journey

  133. Understanding Developers Documentation Types Developer Journey Wider Developer Lifecycle

  134. Wider Developer Lifecycle

  135. Developer Experience 1st site visit Successful integration Outreach Advocacy

  136. Activation Retention AAARRRP Acquisition Revenue Awareness Referral Product

  137. Consideration Loyalty Customer Product Lifecycle Familiarity Purchase Awareness

  138. 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
  139. 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…
  140. 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
  141. Enablement Retention Engagement Tutorials, social media, traditional marketing… White papers,

    trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  142. 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
  143. Enablement Retention Engagement Tutorials, social media, traditional marketing… White papers,

    trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  144. 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
  145. Enablement Retention Engagement Tutorials, social media, traditional marketing… White papers,

    trials, testimonials, sample apps, webinars, quick starts… Beta programmes, newsletters, champion programmes…
  146. Exercise hoopy.io

  147. 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
  148. Understanding Developers Documentation Types Developer Journey Wider Developer Lifecycle

  149. Understanding Developers Documentation Types Developer Journey Friction Logging Wider Developer

    Lifecycle
  150. Friction Logging hoopy.io

  151. 1st site visit Successful integration Engagement Retention

  152. go.betta.io/dxgithub

  153. 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
  154. 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
  155. 5/80 rule hoopy.io

  156. 5 friction logs === 80% of major issues hoopy.io

  157. Quantifiable product feedback hoopy.io

  158. Product manager empathy hoopy.io

  159. Exercise hoopy.io

  160. 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
  161. Understanding Developers Documentation Types Developer Journey Friction Logging Wider Developer

    Lifecycle
  162. Understanding Developers Documentation Types Developer Journey Friction Logging Wider Developer

    Lifecycle Operationalization
  163. hoopy.io Operationalization

  164. hoopy.io The problem with DX

  165. 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
  166. hoopy.io It’s a lot of work that doesn’t scale

  167. hoopy.io No they won’t let you hire 30 people Unless

    you are Nexmo
  168. hoopy.io SCOOP - framework

  169. hoopy.io SCOOP CONTENT
 OUTREACH OPERATIONS PROGAMMES speakerdeck.com/johndbritton/marketing-to-developers

  170. hoopy.io OPERATIONS speakerdeck.com/johndbritton/marketing-to-developers “Make checklists, automate, refactor” - John Britton,

    DevRelCon 2017
  171. hoopy.io Automation

  172. hoopy.io Automation Instrumentation

  173. hoopy.io Automation 1. Anything that can be turned into a

    checklist should. 2. Checklists can be turned into an automated process.
  174. 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
  175. Exploration Get Started Guides Reference Content Matrix Example Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❎ ❎ ❎ ❎ ❎ ❎ ✅ ✅ Store Keys
  176. hoopy.io Automation API Specification • Automated spellchecks • Contract testing

    • Response sample generation
  177. SDKs • Autogeneration from API spec • Feature parity checking

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

    CLI Change Onboarding Changelog Newsletter Contract Validation
  179. hoopy.io Automation Instrumentation

  180. 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
  181. hoopy.io Measure deviation Sign up 100% Create app 80% API

    call 60%
  182. hoopy.io Sign up 100% Create app 80% API call 40%

    Measure deviation panic@example.com
  183. 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!
  184. Exercise hoopy.io

  185. 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?
  186. Recap hoopy.io

  187. DX is where your product and external developers collide hoopy.io

  188. External developers can be characterised by experience and motivation hoopy.io

  189. Most of the developer journey happens in four phases hoopy.io

  190. Exploration Getting Started Further Guidance Reference hoopy.io

  191. The wider developer lifecycle can be described in terms of

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

    yet effective way to gather product feedback hoopy.io
  193. DX is a product that can be scaled through automation

    and instrumentation hoopy.io
  194. Automation ensures your DX scales with your product hoopy.io

  195. Instrumentation protects the value of a DX by active monitoring

    key events hoopy.io
  196. Understanding Developers Documentation Types Developer Journey Friction Logging Wider Developer

    Lifecycle Operationalization
  197. Questions hoopy.io

  198. FAQ hoopy.io

  199. Which company does this the best? hoopy.io

  200. Experience Motivation hoopy.io

  201. Stripe Experience Motivation hoopy.io

  202. None
  203. Stripe Twilio Experience Motivation hoopy.io

  204. None
  205. Pusher Stripe Twilio Experience Motivation hoopy.io

  206. None
  207. Twilio??? Pusher Stripe Twilio Experience Motivation hoopy.io

  208. None
  209. How do I measure ROI? hoopy.io

  210. Measure Change hoopy.io

  211. hoopy.io

  212. Measure Success hoopy.io

  213. Marketing Metrics != DX Metrics hoopy.io

  214. Measure Support Load hoopy.io

  215. Should I own my SDKs? hoopy.io

  216. How can you determine the DX of something you don’t

    own? hoopy.io
  217. None
  218. “…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
  219. Tooling? hoopy.io

  220. Questions hoopy.io

  221. Thank you hoopy.io cbetta@box.com cristiano@hoopy.io anoland@box.com Alyss Noland Cristiano Betta