pytexas 2014
DESCRIPTION
PyTexas 2014 Keynote - Developer Experience: Marketing MatterTRANSCRIPT
![Page 1: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/1.jpg)
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
![Page 2: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/2.jpg)
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
![Page 3: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/3.jpg)
“Marketing is the process of communicating the value of a product or service to
customers, for the purpose of selling that product or service.”
![Page 4: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/4.jpg)
![Page 5: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/5.jpg)
“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.”
![Page 6: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/6.jpg)
… but Jesse, we’re developers…… we’re not selling anything…
![Page 7: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/7.jpg)
“engaging a community in the use & contribution to a creation”
![Page 8: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/8.jpg)
worse is better
![Page 9: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/9.jpg)
so what do you do?
![Page 10: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/10.jpg)
Developer Experience (DX)
![Page 11: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/11.jpg)
– 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/
![Page 12: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/12.jpg)
– Kenneth Reitz (made Requests and some stuff)
“** for Humans”
http://www.kennethreitz.org/
![Page 13: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/13.jpg)
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.
![Page 14: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/14.jpg)
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.
![Page 15: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/15.jpg)
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.
![Page 16: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/16.jpg)
Bad developer experience means that as soon as you or I smell something that might be
slightly better, we’re gone
![Page 17: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/17.jpg)
Good developer experience means that people are happy to use something, they feel
successful and empowered. They become your advocates.
![Page 18: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/18.jpg)
![Page 19: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/19.jpg)
You hit them in the feels.
![Page 20: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/20.jpg)
So what does good DX look like?
![Page 21: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/21.jpg)
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?
![Page 22: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/22.jpg)
Do I want to use it?
![Page 23: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/23.jpg)
What does it do?
Huh?
What?
![Page 24: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/24.jpg)
What does it do?
![Page 25: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/25.jpg)
Does it have the features I need?
![Page 26: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/26.jpg)
Does it have the features I need?
![Page 27: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/27.jpg)
Are other people (or companies) using it?
![Page 28: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/28.jpg)
Are other people (or companies) using it?
![Page 29: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/29.jpg)
How do I sign up?
![Page 30: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/30.jpg)
Not awesome
![Page 31: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/31.jpg)
Much Better
![Page 32: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/32.jpg)
Best…?
Trickery! (Of the best kind)
![Page 33: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/33.jpg)
How do I get started?
![Page 34: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/34.jpg)
All the platforms!
![Page 35: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/35.jpg)
All the languages!
![Page 36: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/36.jpg)
All the languages!
![Page 37: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/37.jpg)
MVA: Minimal Viable App
![Page 38: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/38.jpg)
How do I use it?
![Page 39: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/39.jpg)
Documentation
![Page 40: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/40.jpg)
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.
![Page 41: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/41.jpg)
Empathetic
• List known bugs
• If in doubt document it!
• Includes runnable code
• Helpful error messages
• If there are bugs: document them!
![Page 42: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/42.jpg)
![Page 43: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/43.jpg)
Interactive
• Comments enabled
• Feedback form
• Easy to file a bug
• Easy to engage the product owner
![Page 44: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/44.jpg)
![Page 45: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/45.jpg)
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
![Page 46: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/46.jpg)
Do I enjoy using it?
![Page 47: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/47.jpg)
Do I enjoy using it?
![Page 48: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/48.jpg)
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
![Page 49: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/49.jpg)
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?
![Page 50: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/50.jpg)
ERROR 129: AN ERROR
DEBUGGING
![Page 51: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/51.jpg)
How do I get help?
![Page 52: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/52.jpg)
Forums, if they don’t suck*
* Discourse doesn’t suck (http://www.discourse.org/)
![Page 53: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/53.jpg)
Async!
• Email / Mailing lists
• Prepare for the bike shed
• Forums (see prev.)
• Bug trackers
• also semi realtime depending on bathroom schedules
![Page 54: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/54.jpg)
How do I contribute?
![Page 55: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/55.jpg)
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
![Page 56: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/56.jpg)
Assume Positive Intent
![Page 57: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/57.jpg)
“Developer Experience (DX) involves a developer’s behaviors, attitudes, and
emotions about using a thingie.”
Make them feel like a boss.
![Page 58: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/58.jpg)
More to read:
• http://developer-evangelism.com/
• Pamela! - http://www.developer-support-handbook.org/
• Kenneth! - http://www.kennethreitz.org/talks/
• Idan! - http://gazit.me/
![Page 59: PyTexas 2014](https://reader035.vdocument.in/reader035/viewer/2022081404/558e02c71a28ab8d6c8b4642/html5/thumbnails/59.jpg)
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