Developer Experience Workshop

Developer Experience Workshop

My workshop slides for DevXCon SF 2017

E0ee803f10db4d5fb85f8288a421850b?s=128

Cristiano Betta

May 23, 2017
Tweet

Transcript

  1. Developer Experience May 23, 2̸17 betta.io

  2. Welcome betta.io

  3. Cristiano Betta DX Consultant @ Work Betta Ex-Dev Advocate @

    Braintree betta.io
  4. Cristiano Betta Event Organiser @ Geeks of London > 15

    years dev experience betta.io
  5. Maintainer of Hack Day Manifesto and Hack Code of Conduct

    betta.io
  6. hackdaymanifesto.com

  7. hackcodeofconduct.org

  8. Author betta.io

  9. betta.io

  10. betta.io

  11. @cbetta cristiano@betta.io betta.io

  12. betta.io

  13. Agenda betta.io

  14. Agenda • Defining Developer Experience betta.io

  15. Agenda • Defining Developer Experience • Developer Experience Journey betta.io

  16. Agenda • Defining Developer Experience • Developer Experience Journey •

    Core Use Cases betta.io
  17. Agenda • Defining Developer Experience • Developer Experience Journey •

    Core Use Cases • Break betta.io
  18. Agenda • Defining Developer Experience • Developer Experience Journey •

    Core Use Cases • Break • Building Blocks betta.io
  19. Agenda • Defining Developer Experience • Developer Experience Journey •

    Core Use Cases • Break • Building Blocks • Maturity Model betta.io
  20. Agenda • Defining Developer Experience • Developer Experience Journey •

    Core Use Cases • Break • Building Blocks • Maturity Model • Content Matrix betta.io
  21. Ask me anything betta.io

  22. Developer Experience betta.io

  23. What is DX? betta.io

  24. “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.” betta.io - Jennifer Riggins | @jkriggins
  25. A platform betta.io

  26. A platform A successful user betta.io

  27. A developer platform A successful developer

  28. A developer platform A successful developer A fresh new developer

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

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

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

    Outreach betta.io
  32. Developer Experience 1st site visit Successful integration Advocacy Outreach •

    Hackathons Developer Outreach betta.io
  33. Developer Experience 1st site visit Successful integration Advocacy Outreach •

    Hackathons • Conferences Developer Outreach betta.io
  34. Developer Experience 1st site visit Successful integration Advocacy Outreach •

    Hackathons • Conferences • Talks Developer Outreach betta.io
  35. Developer Experience 1st site visit Successful integration Advocacy Outreach •

    Hackathons • Conferences • Talks • Blog posts Developer Outreach betta.io
  36. Developer Experience 1st site visit Successful integration Advocacy Outreach •

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

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

    Advocacy betta.io
  39. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support Developer Advocacy betta.io
  40. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support • Feedback Developer Advocacy betta.io
  41. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support • Feedback • Tooling Developer Advocacy betta.io
  42. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support • Feedback • Tooling • Office hours Developer Advocacy betta.io
  43. Developer Experience 1st site visit Successful integration Outreach Advocacy •

    Support • Feedback • Tooling • Office hours • Beta Programmes Developer Advocacy betta.io
  44. Developer Experience 1st site visit Successful integration Outreach Advocacy

  45. APIs + SDKs Documentation betta.io

  46. APIs + SDKs Documentation betta.io

  47. APIs + SDKs Documentation + External Developers betta.io

  48. Usability + External Developers betta.io

  49. Usability betta.io

  50. Discoverable Forgiving Learnable Correct Predictable Usability betta.io

  51. Correct betta.io

  52. None
  53. None
  54. Predictable betta.io

  55. Cognitive Load betta.io

  56. Delete betta.io

  57. Delete... betta.io

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

    anything? betta.io
  59. None
  60. None
  61. None
  62. betta.io

  63. betta.io

  64. Discoverable betta.io

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

    go? Where did I come from? betta.io
  66. None
  67. betta.io

  68. Forgiving betta.io

  69. betta.io

  70. betta.io

  71. betta.io

  72. Learnable betta.io

  73. None
  74. Usability Discoverable Forgiving Learnable Correct Predictable betta.io

  75. Usability betta.io

  76. Usability + External Developers betta.io

  77. External Developers betta.io

  78. External Developers betta.io

  79. Understanding Developers betta.io

  80. Understanding Developers

  81. Understanding Developers Documentation Types

  82. Understanding Developers Documentation Types Developer Journey

  83. Understanding Developers Documentation Types Developer Journey Building Blocks

  84. Understanding Developers Documentation Types Developer Journey Building Blocks Content Matrix

  85. Understanding Developers Documentation Types Developer Journey Building Blocks Content Matrix

    Maturity Model
  86. Understanding Developers Documentation Types Developer Journey Building Blocks Content Matrix

    Maturity Model Success & Celebration
  87. Understanding Developers betta.io

  88. Understanding Developers betta.io

  89. Understanding Developers • Enterprise Developers betta.io

  90. Understanding Developers • Enterprise Developers • Startup Developers betta.io

  91. Understanding Developers • Enterprise Developers • Startup Developers • Hackers

    betta.io
  92. Understanding Developers • Enterprise Developers • Startup Developers • Hackers

    • Junior betta.io
  93. Understanding Developers • Enterprise Developers • Startup Developers • Hackers

    • Junior • N00bs betta.io
  94. Understanding Developers • Enterprise Developers • Startup Developers • Hackers

    • Junior • N00bs • Senior betta.io
  95. Developer Attributes betta.io

  96. Developer Attributes • Money? betta.io

  97. Developer Attributes • Money? • Seniority? betta.io

  98. Developer Attributes • Money? • Seniority? • Age? betta.io

  99. Developer Attributes • Money? • Seniority? • Age? • Gender?

    betta.io
  100. Educational Attributes betta.io

  101. Educational Attributes • Product Experience betta.io

  102. Educational Attributes • Product Experience • Industry Experience betta.io

  103. Educational Attributes • Product Experience • Industry Experience • Technical

    Experience betta.io
  104. Educational Attributes • Product Experience • Industry Experience • Technical

    Experience • Life Experience betta.io
  105. Educational Attributes • Product Experience • Industry Experience • Technical

    Experience • Life Experience • Motivation betta.io
  106. Educational Attributes • Experience • Motivation betta.io

  107. Developer Journey Experience Motivation betta.io

  108. Experience Motivation Your CTO Developer Journey betta.io

  109. Experience Motivation Your CTO Newbie Developer Journey betta.io

  110. Experience Motivation Your CTO Newbie Convert Developer Journey betta.io

  111. Experience Motivation Your CTO Newbie Convert Try Now Developer Journey

    betta.io
  112. Experience Motivation Your CTO Newbie Convert Try Now Impl. Developer

    Journey betta.io
  113. Experience Motivation Expert Newbie Convert Try Now Impl. Developer Journey

    betta.io
  114. Experience Motivation Developer Journey betta.io

  115. Experience Motivation Developer Journey betta.io

  116. Experience Motivation Developer Journey betta.io

  117. Experience Motivation Developer Journey betta.io

  118. Experience Motivation Developer Journey betta.io

  119. Understanding Developers betta.io

  120. Understanding Developers Documentation Types Developer Journey Building Blocks Content Matrix

    Maturity Model Success & Celebration
  121. Documentation Types betta.io

  122. Exercise betta.io

  123. betta.io stripe.com/docs developer.github.com firebase.google.com

  124. betta.io stripe.com/docs developer.github.com firebase.google.com

  125. betta.io stripe.com/docs developer.github.com firebase.google.com What types of documentation can we

    recognise?
  126. betta.io stripe.com/docs developer.github.com firebase.google.com What types of documentation can we

    recognise? For what level of experience and motivation is that documentation intended?
  127. betta.io stripe.com/docs developer.github.com firebase.google.com What types of documentation can we

    recognise? For what level of experience and motivation is that documentation intended? How does the documentation flow from one type to the other? (Bonus)
  128. betta.io stripe.com/docs developer.github.com firebase.google.com What types of documentation can we

    recognise? For what level of experience and motivation is that documentation intended? How does the documentation flow from one type to the other? (Bonus) Can you spot any problems in their Developer Experience? (Bonus)
  129. None
  130. None
  131. None
  132. betta.io stripe.com/docs developer.github.com firebase.google.com What types of documentation can we

    recognise? For what level of experience and motivation is that documentation intended? How does the documentation flow from one type to the other? (Bonus) Can you spot any problems in their Developer Experience? (Bonus)
  133. None
  134. None
  135. betta.io

  136. betta.io

  137. None
  138. None
  139. None
  140. None
  141. None
  142. None
  143. None
  144. Documentation Types betta.io

  145. Documentation Types betta.io

  146. Documentation Types betta.io • Get Started Guides

  147. Documentation Types betta.io • Get Started Guides • QuickStarts

  148. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials
  149. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials • Guides
  150. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials • Guides • Samples
  151. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials • Guides • Samples • Demos
  152. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials • Guides • Samples • Demos • Reference
  153. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials • Guides • Samples • Demos • Reference • Use Cases
  154. Documentation Types betta.io • Get Started Guides • QuickStarts •

    Tutorials • Guides • Samples • Demos • Reference • Use Cases • Examples
  155. Documentation Types betta.io • Get Started Guides • QuickStarts •

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

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

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

    Tutorials • Guides • Samples • Demos • Reference • Use Cases • Examples • Libraries & SDKs
  159. Documentation Types Experience Motivation betta.io

  160. Experience Motivation betta.io

  161. Reference Experience Motivation betta.io

  162. Reference Exploration Experience Motivation betta.io

  163. None
  164. None
  165. None
  166. Reference Exploration Experience Motivation betta.io

  167. Getting Started Reference Exploration Experience Motivation betta.io

  168. None
  169. None
  170. None
  171. None
  172. Further Guidance Getting Started Reference Exploration Experience Motivation betta.io

  173. None
  174. Further Guidance Getting Started Reference Exploration Experience Motivation betta.io

  175. Further Guidance Getting Started Reference Exploration Developer Journey

  176. Understanding Developers Documentation Types Developer Journey

  177. Understanding Developers Documentation Types Developer Journey Building Blocks

  178. Core Use Cases betta.io

  179. Money betta.io

  180. Developer Experience 1st site visit Successful integration

  181. Successful Integration

  182. First implementation

  183. First implementation

  184. First implementation $$$

  185. Core Use Case $$$

  186. Core Use Cases betta.io

  187. Core Use Cases • Sufficiently simple betta.io

  188. Core Use Cases • Sufficiently simple • Relevant to a

    majority of integrations betta.io
  189. Core Use Cases • Sufficiently simple • Relevant to a

    majority of integrations • Minimal overlap betta.io
  190. Exercise betta.io

  191. betta.io stripe.com/docs developer.github.com firebase.google.com

  192. betta.io stripe.com/docs developer.github.com firebase.google.com

  193. betta.io stripe.com/docs developer.github.com firebase.google.com What features are presented most prominently?

  194. betta.io stripe.com/docs developer.github.com firebase.google.com What features are presented most prominently?

    What use cases are presented most prominently?
  195. betta.io stripe.com/docs developer.github.com firebase.google.com What features are presented most prominently?

    What use cases are presented most prominently? What do you think their core use cases are? (Bonus)
  196. betta.io stripe.com/docs developer.github.com firebase.google.com What features are presented most prominently?

    What use cases are presented most prominently? What do you think their core use cases are? (Bonus) Do you think they picked the right use cases? (Bonus)
  197. None
  198. None
  199. None
  200. None
  201. None
  202. None
  203. None
  204. None
  205. None
  206. None
  207. betta.io stripe.com/docs developer.github.com firebase.google.com What features are presented most prominently?

    What use cases are presented most prominently? What do you think their core use cases are? (Bonus) Do you think they picked the right use cases? (Bonus)
  208. None
  209. None
  210. betta.io

  211. betta.io

  212. betta.io • Charge a customer money once

  213. betta.io • Charge a customer money once • Charge a

    customer money with a subscription
  214. None
  215. None
  216. None
  217. betta.io

  218. betta.io • Get data from, and push data to GitHub

  219. betta.io • Get data from, and push data to GitHub

    • Get notified when data changes on GitHub
  220. betta.io • Get data from, and push data to GitHub

    • Get notified when data changes on GitHub • Integrate with the GitHub.com UI
  221. None
  222. None
  223. None
  224. betta.io

  225. betta.io

  226. betta.io • Log events

  227. betta.io • Log events • Analyse log

  228. betta.io • Log events • Analyse log • Manage users

  229. betta.io • Log events • Analyse log • Manage users

    • Log in users
  230. betta.io • Log events • Analyse log • Manage users

    • Log in users • ….
  231. betta.io • Log events • Analyse log • Manage users

    • Log in users • …. • ….
  232. betta.io @cbetta

  233. betta.io @cbetta

  234. Coffee Break betta.io @cbetta

  235. Agenda • Defining Developer Experience • Developer Experience Journey •

    Core Use Cases • Break • Building Blocks • Maturity Model • Content Matrix betta.io
  236. Understanding Developers Documentation Types Developer Journey Building Blocks Content Matrix

    Maturity Model Success & Celebration
  237. Building Blocks betta.io

  238. Mental Models betta.io

  239. Mental Models Information betta.io

  240. Mental Models betta.io

  241. Mental Models betta.io

  242. Mental Models betta.io

  243. Mental Models betta.io

  244. Mental Models betta.io

  245. How We Learn • Learn • Build • Reflect betta.io

  246. How We Learn • Learn • Build • Reflect betta.io

  247. How We Learn ? betta.io

  248. How we reflect betta.io

  249. How we reflect • Minimise ability to deviate betta.io

  250. How we reflect • Minimise ability to deviate • Provide

    checkpoints betta.io
  251. How we reflect • Minimise ability to deviate • Provide

    checkpoints • Support user error betta.io
  252. How we reflect betta.io

  253. How we reflect • Small steps… betta.io

  254. How we reflect • Small steps… • …that clearly document

    the expected output betta.io
  255. How we reflect • Small steps… • …that clearly document

    the expected output • …and document common mistakes betta.io
  256. Building Blocks

  257. Building Blocks Encrypted Communication Use Case #1

  258. Building Blocks Encrypted Communication Use Case #1 Encrypted Storage Use

    Case #2
  259. Building Blocks Initialization Use Case #1 Initialization Use Case #2

    Encrypted Communication Encrypted Storage
  260. Building Blocks Initialization Use Case #1 Initialization Use Case #2

    Encrypted Communication Encrypted Storage Create Keys for Alice Create Keys for Bob Create Keys for Alice
  261. Building Blocks Initialization Encrypted Comms Initialization Encrypted Storage Create Keys

    for Alice Create Keys for Bob Create Keys for Alice Encrypt (for Bob) Decrypt (as Bob) Encrypt (for Alice) Decrypt (as Alice)
  262. Building Blocks Installation Initialization Create Keys Create Cards Find Cards

    Encrypt Decrypt Sign Verify Primary betta.io
  263. Building Blocks Installation Initialization Create Keys Create Cards Find Cards

    Encrypt Decrypt Sign Verify Primary Storing Keys Loading Keys Multi Encrypt Secondary betta.io
  264. Exercise betta.io

  265. betta.io stripe.com/docs developer.github.com firebase.google.com

  266. betta.io stripe.com/docs developer.github.com firebase.google.com

  267. betta.io stripe.com/docs developer.github.com firebase.google.com What building blocks can the core

    use cases be split into?
  268. betta.io stripe.com/docs developer.github.com firebase.google.com What building blocks can the core

    use cases be split into? What secondary building blocks exist?
  269. betta.io stripe.com/docs developer.github.com firebase.google.com What building blocks can the core

    use cases be split into? What secondary building blocks exist? • Charge a customer money once • Charge a customer money with a subscription
  270. betta.io stripe.com/docs developer.github.com firebase.google.com What building blocks can the core

    use cases be split into? What secondary building blocks exist? • Charge a customer money once • Charge a customer money with a subscription • Get data from, and push data to GitHub • Get notified when data changes on GitHub • Integrate with the GitHub.com UI
  271. betta.io stripe.com/docs developer.github.com firebase.google.com What building blocks can the core

    use cases be split into? What secondary building blocks exist? • Charge a customer money once • Charge a customer money with a subscription • Get data from, and push data to GitHub • Get notified when data changes on GitHub • Integrate with the GitHub.com UI • Register a new user • Login an existing user • Login an anonymous user
  272. API/SDK Design betta.io

  273. Problematic API/SDK betta.io

  274. betta.io

  275. betta.io Install SDK

  276. betta.io Install SDK Initialize SDK

  277. betta.io Install SDK Initialize SDK Charge Card

  278. betta.io

  279. betta.io gem install stripe

  280. betta.io gem install stripe stripe = Stripe.new(‘username’, ‘password’)

  281. betta.io gem install stripe stripe = Stripe.new(‘username’, ‘password’) stripe.charge(’card_number’, ‘cvv’,

    ‘amount’)
  282. betta.io Install SDK Initialize SDK Charge Card

  283. betta.io Install SDK Initialize SDK

  284. betta.io Install SDK Initialize SDK Create a Customer

  285. betta.io Install SDK Initialize SDK Create a Customer Save a

    card for a customer
  286. betta.io Install SDK Initialize SDK Create a Customer Save a

    card for a customer Charge a customer
  287. betta.io gem install stripe stripe = Stripe.new(‘username’, ‘password’) customer =

    stripe.customer.create(‘name’) customer.cards.create(’card_number’, ‘cvv’) customer.charge(‘amount’)
  288. betta.io gem install stripe stripe = Stripe.new(‘username’, ‘password’) stripe.customer.createAndCharge(_)

  289. Problematic Documentation betta.io

  290. betta.io stripe = Stripe.new(‘appId’, ‘appSecret’)

  291. betta.io stripe = Stripe.new(‘appId’, ‘appSecret’) create new “app” on site

  292. betta.io

  293. betta.io

  294. betta.io send a sms from number buy a phone number

  295. betta.io send a sms from number find a number log

    in to site copy number into code go to site Buy a number
  296. betta.io send a sms from number copy number into code

    > nexmo number:buy US 1312* --confirm
  297. betta.io

  298. betta.io Building Blocks

  299. Understanding Developers Documentation Types Developer Journey Building Blocks Content Matrix

    Maturity Model Success & Celebration
  300. betta.io Content Matrix

  301. betta.io Content Matrix

  302. betta.io Exploration Content Matrix

  303. betta.io Exploration Get Started Content Matrix

  304. betta.io Exploration Get Started Guides Content Matrix

  305. betta.io Exploration Get Started Guides Reference Content Matrix

  306. betta.io Exploration Get Started Guides Reference Content Matrix

  307. betta.io Exploration Get Started Guides Reference Content Matrix Install

  308. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

  309. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys
  310. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards
  311. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards
  312. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards
  313. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt
  314. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt
  315. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign
  316. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify
  317. Exploration Get Started Guides Reference Content Matrix Install Initialize Create

    Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify
  318. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify
  319. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅
  320. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
  321. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
  322. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
  323. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❎ ❎ ❎ ❎ ❎ ❎
  324. betta.io Exploration Get Started Guides Reference Content Matrix Install Initialize

    Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❎ ❎ ❎ ❎ ❎ ❎ ✅ ✅
  325. Exploration Get Started Guides Reference Content Matrix Install Initialize Create

    Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❎ ❎ ❎ ❎ ❎ ❎ ✅ ✅ Store Keys
  326. betta.io Why?

  327. Exploration Get Started Guides Reference All we need is Reference

    Install Initialize Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Store Keys ✅
  328. Exploration Get Started Guides Reference We wrote a tutorial Install

    Initialize Create Keys Create Cards Register Cards Find Cards Encrypt Decrypt Sign Verify ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Store Keys
  329. betta.io A Content Matrix is a tool

  330. Maturity Model betta.io

  331. Richardson Maturity Model betta.io

  332. betta.io

  333. betta.io GET /api/paymentProviderService { ‘type’ : ‘CustomerRequest’ ‘name’ : ‘Cristiano

    Betta’ } Level ̸
  334. betta.io GET /api/customers?name=Cristiano%20Betta Level 1

  335. betta.io GET /api/customers/create?name=Cristiano%20Betta Level 1

  336. betta.io POST /api/customers { ‘name’ : ‘Cristiano Betta’ } Level

    2
  337. betta.io PUT /api/customers/123 { ‘name’ : ‘Cristiano Ronaldo’ } Level

    2
  338. betta.io GET /api/customers/123 { ‘name’ : ‘Cristiano Ronaldo’ } Level

    2
  339. betta.io GET /api/customers/123 { ‘name’ : ‘Cristiano Ronaldo’, ‘links’ :

    [ { ‘rel’ : ‘cards’, ‘uri’ : ‘/api/customers/123/cards`, ‘method’ : ‘GET’ ] } Level 3
  340. betta.io

  341. betta.io

  342. betta.io 1. Reduce complexity

  343. betta.io 1. Reduce complexity 2. Increase reusability

  344. betta.io 1. Reduce complexity 2. Increase reusability 3. Introduce discoverability

  345. Document Maturity Model betta.io

  346. 1: Reduce Complexity by using the four documentation types betta.io

  347. None
  348. None
  349. 2: Increase reusability by ensuring building blocks are individually accessible

    in any documentation type betta.io
  350. None
  351. stripe.com/docs/api#create_charge betta.io

  352. stripe.com/docs/charges#updating-saved-card-information betta.io

  353. 3: Introduce discoverability by linking to related topics in the

    same documentation level or the same topic at other levels betta.io
  354. betta.io

  355. betta.io

  356. betta.io

  357. betta.io

  358. Exercise betta.io

  359. betta.io stripe.com/docs developer.github.com firebase.google.com

  360. betta.io stripe.com/docs developer.github.com firebase.google.com

  361. betta.io stripe.com/docs developer.github.com firebase.google.com What UI patterns have been used

    to address these 3 levels?
  362. betta.io stripe.com/docs developer.github.com firebase.google.com What UI patterns have been used

    to address these 3 levels? What overall level would you rate their documentation at?
  363. betta.io stripe.com/docs developer.github.com firebase.google.com 1: Reduce Complexity by using the

    four documentation types What UI patterns have been used to address these 3 levels? What overall level would you rate their documentation at?
  364. betta.io stripe.com/docs developer.github.com firebase.google.com 1: Reduce Complexity by using the

    four documentation types 2: Increase reusability by ensuring building blocks are individually accessible in any documentation type What UI patterns have been used to address these 3 levels? What overall level would you rate their documentation at?
  365. betta.io stripe.com/docs developer.github.com firebase.google.com 1: Reduce Complexity by using the

    four documentation types 2: Increase reusability by ensuring building blocks are individually accessible in any documentation type 3: Introduce discoverability by linking to related topics in the same documentation level or the same topic at other levels What UI patterns have been used to address these 3 levels? What overall level would you rate their documentation at?
  366. Celebration betta.io

  367. Experience Motivation Developer Journey betta.io

  368. Core Use Cases $$$

  369. Success? betta.io

  370. Signup? betta.io

  371. First implementation? betta.io

  372. Full integration? betta.io

  373. Customer Success == Your Success betta.io

  374. Make your customers successful betta.io

  375. Supporting Success betta.io

  376. Supporting Success betta.io • Alpha/Beta Programs

  377. Supporting Success betta.io • Alpha/Beta Programs • Startup Programs

  378. Supporting Success betta.io • Alpha/Beta Programs • Startup Programs •

    Customer Satisfaction Survey (NPS)
  379. Supporting Success betta.io • Alpha/Beta Programs • Startup Programs •

    Customer Satisfaction Survey (NPS) • Non-core services
  380. Stripe Atlas betta.io

  381. Celebration betta.io

  382. IKEA Effect betta.io

  383. Reverse IKEA Effect betta.io

  384. Developing an integration is a collaboration betta.io

  385. Celebrate together betta.io

  386. betta.io

  387. Recap betta.io

  388. DX is where your product and external developers collide betta.io

  389. External developers can be characterised by experience and motivation betta.io

  390. Most of the DX happens in four phases betta.io

  391. Exploration Getting Started Further Guidance Reference betta.io

  392. The most common ways your product enables a developer to

    succeed define your Core Use Cases betta.io
  393. Shared elements between your Core Use Cases define your Building

    Blocks betta.io
  394. Your Building Blocks and the 4 documentation types allow you

    to fill a Content Matrix betta.io
  395. The DX can be enhanced with the help of a

    the Documentation Maturity Model betta.io
  396. A successful customer should be celebrated as if it was

    a success of your own betta.io
  397. Understanding Developers & Documentation Types Developer Journey & Building Blocks

    Content Matrix Maturity Model Celebration
  398. Questions betta.io

  399. FAQ betta.io

  400. Which company does this the best? betta.io

  401. Experience Motivation betta.io

  402. Stripe Experience Motivation betta.io

  403. None
  404. Stripe Twilio Experience Motivation betta.io

  405. None
  406. Pusher Stripe Twilio Experience Motivation betta.io

  407. None
  408. Twilio??? Pusher Stripe Twilio Experience Motivation betta.io

  409. None
  410. How do I measure ROI? betta.io

  411. Measure Change betta.io

  412. betta.io

  413. Measure Success betta.io

  414. Should I own my SDKs? betta.io

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

    own? betta.io
  416. None
  417. Tooling? betta.io

  418. Questions betta.io

  419. Thank you cristiano@betta.io betta.io