version 0.1.0 Developer Experience: Marketing Matters PyTexas 2014 - College Station October 2014 JESSE NOLLER , SR. MANAGER & PRINCIPAL ENGINEER :: DEVELOPER EXPERIENCE — RACKSPACE BUY NOW OR YOU ARE NOT GOOD
Jun 27, 2015
version 0.1.0
Developer Experience: Marketing MattersPyTexas 2014 - College Station October 2014
JESSE NOLLER , SR . MANAGER & PRINCIPAL ENGINEER : : DEVELOPER EXPERIENCE — RACKSPACE
BUY NOW OR YOU ARE NOT GOOD
version 0.1.0
Developer Experience: Marketing Matters
PyTexas 2014 - College StationSeptember 2014Jesse Noller, Developer Experience — Rackspace
@jessenoller — http://jessenoller.com — [email protected]://developer.rackspace.com
“Marketing is the process of communicating the value of a product or service to
customers, for the purpose of selling that product or service.”
“The process of communicating the value of a product or service to users, for the purpose of selling or engaging a wider community in
the use of that product or service.”
… but Jesse, we’re developers…… we’re not selling anything…
“engaging a community in the use & contribution to a creation”
worse is better
so what do you do?
Developer Experience (DX)
– Pamela Fox
“Developer Experience is the sum of all interactions and events, both positive and
negative, between a developer and a library, tool, or API.
http://www.pamelafox.org/
– Kenneth Reitz (made Requests and some stuff)
“** for Humans”
http://www.kennethreitz.org/
Why do I care?
• I am a developer: consumer
• I am a developer that does OSS: producer
• I am a weapons dealer: seller
• I am human: short attention span
• I don’t want things that suck, because other people don’t like things that suck and I want to get things done.
Why do you care?
• You are a developer: consumer
• You are a developer that does OSS: producer
• You are a weapons dealer: seller
• You are human: short attention span
• You don’t want things that suck, because it slows you down and confuses you and you want to get things done.
Bad developer experience (DX) means that people won’t use, contribute, buy, promote or
advocate for you.
Worse, they’ll flame you on twitter.
… Wicked annoying.
Bad developer experience means that as soon as you or I smell something that might be
slightly better, we’re gone
Good developer experience means that people are happy to use something, they feel
successful and empowered. They become your advocates.
You hit them in the feels.
So what does good DX look like?
Do I want to use it?
Does it have the features I need?
Are other people using it?
How do I sign up?
How do I get started?
How do I use it?
How do I get help?
How do I contribute?
Do I want to use it?
What does it do?
Huh?
What?
What does it do?
Does it have the features I need?
Does it have the features I need?
Are other people (or companies) using it?
Are other people (or companies) using it?
How do I sign up?
Not awesome
Much Better
Best…?
Trickery! (Of the best kind)
How do I get started?
All the platforms!
All the languages!
All the languages!
MVA: Minimal Viable App
How do I use it?
Documentation
Comprehensive
• Every method, parameter, return value, defaults, implementation notes, errors, side effects, depreciation notes must be covered
• Especially true for the API Reference and Guide(s)
• Input & Output correctness trumps example curl usage when documenting and API.
• You need API guides and Narrative guides.or i will find you.
Empathetic
• List known bugs
• If in doubt document it!
• Includes runnable code
• Helpful error messages
• If there are bugs: document them!
Interactive
• Comments enabled
• Feedback form
• Easy to file a bug
• Easy to engage the product owner
Easy to find
• SEO optimized
• Ctrl + F efficient
• Web friendly - digital delivery is now the norm
• The dead-tree-book-but-online concept is out of date
• With digital delivery comes constant iteration
Do I enjoy using it?
Do I enjoy using it?
Look at requests et al: put the hard things / uncommon cases “inside” or abstracted away.
Keep the user exposed functions clean, simple and few.
Expose more when users ask but only when it doesn’t violate the simplicity
Keep the API clean
Under no circumstances should you not use REST, or standard data interchange format.
e.g. JSON, XML, anything but NIH
Do I enjoy using it?
ERROR 129: AN ERROR
DEBUGGING
How do I get help?
Forums, if they don’t suck*
* Discourse doesn’t suck (http://www.discourse.org/)
Async!
• Email / Mailing lists
• Prepare for the bike shed
• Forums (see prev.)
• Bug trackers
• also semi realtime depending on bathroom schedules
How do I contribute?
Simple to contribute to
• It must be publicly accessible
• Anyone should be empowered to “make a pull request”
• No one should have to learn custom “enterprise” tool chains or your weirdo workflow
• The faster someone can contribute, the more engaged & invested they will be
Assume Positive Intent
“Developer Experience (DX) involves a developer’s behaviors, attitudes, and
emotions about using a thingie.”
Make them feel like a boss.
More to read:
• http://developer-evangelism.com/
• Pamela! - http://www.developer-support-handbook.org/
• Kenneth! - http://www.kennethreitz.org/talks/
• Idan! - http://gazit.me/
version 0.1.0
AMA: Ask me anythingPyTexas 2014 - College StationSeptember 2014Jesse Noller, Developer Experience — Rackspace
@jessenoller — http://jessenoller.com — [email protected]://developer.rackspace.com