Talk given at jQuery Conf SF 2015.
In the first couple years of jQuery's development it was just one of many JavaScript libraries. The attention that was paid to the potential users of jQuery, attempting to empathize with how they they were developing applications, allowed jQuery to better connect with a greater number of devs. This talk will explore the ways in which this process took place and what the ramifications were of having a user-centric model for open source development.
2. Early JS Libraries
• in 2004-2009 the market was very saturated
• Dojo Toolkit, Prototype, MochiKit, YUI, MooTools, jQuery
• All scratched similar itches (simplifying DOM manipulation)
3. Assume All Code is Equal…
• Given that all the code is “good enough”
• How do you differentiate a library?
• You focus on all the things that “aren’t code”
• Most of these are user-centric and require intimate knowledge of
how the user will use your framework
4. You are your own worst enemy
• Virtually every time someone stops using your library it’s your own
fault
• Something was not communicated clearly enough
• You had bugs that the user couldn’t overcome
• There were issues that the user didn’t understand and couldn’t find a
good answer to
5. What it all boils down to…
• Can you help your users overcome the initial hurdles they overcome
- and are you giving them room, and the resources, to grow?
• Put yourself in your user’s shoes — empathize with them!
6. The First Day: Can this help me?H
om
epage
View
Tutorial
D
ow
nload
TryTutorial
Experim
ent
The First Month: Learning
Integration
APID
ocs
Tutorials
Experim
ent
Com
m
unityThe FirstYear: Growth
SecondApp
ExploreAPI
ExtendAPI
Read
Source
Contribute
7. The First Day: Can this help me?H
om
epage
View
Tutorial
D
ow
nload
TryTutorial
Experim
ent
The First Month: Learning
Integration
APID
ocs
Tutorials
Experim
ent
Com
m
unityThe FirstYear: Growth
SecondApp
ExploreAPI
ExtendAPI
Read
Source
Contribute
8. Lack of Empathy -> Attrition
Failure at any step costs your project another user.
Your project is your own worst enemy.
9. The First Day
“After spending less than 3 hours reading blog posts and perusing the
documentation I was able to do a lot more in a lot less time then ever
before. The huge community and neatly organized jQuery plugins make
me feel like a sucker for not having jQuery for my pet-project.”
http://aleembawany.com/2009/01/16/switching-from-prototype-to-jquery/
10. Homepage
• Set a good first impression
• Answer the questions:
• What is this?
• What can it do for me?
• Where can I go to learn more?
11.
12.
13. Download
• Make it super-easy, remove any barriers
• (We link straight to the source, no .zip)
14. Licensing
• Not a concern for more people
• A huge concern for a lot of corporate users
• Use the most-open license possible
• Fewest number of restrictions gives you the largest possible market
• We us the MIT license for jQuery
• “Leave my name on the source file”
16. Try the Tutorial
• …and subsequent experimentation
• All about code quality
• For JavaScript libraries: Make sure your code is seamless across
browsers
• For desktop apps: Is it truly cross-platform? Are there dependencies?
• The user should never be forced to ask for help in order to get started
• Asking for help “getting started” is a failure case on your end
17. Simplicity in API Design
• Simple APIs are king
• Users understand quicker
• Get started faster
• Become advanced quicker
18. The First Month
“Alright I am now really really into jQuery. I used to hate
javascript. WHAT HAS HAPPENED HERE? Javascript
people, speak to me.”
http://twitter.com/_ralph/status/1123503553
19. Community Resources
• Provides places for users to ask
questions
• jQuery:
• Mailing list -> Forum
• IRC Channel
• External:
• Stack Overflow
• Twitter
• Blogs
20. Monitor Your Community
• Make sure that everyone is getting the help that they need
• Evangelism Team, was run by Rey Bango
• Track all of the services they use
• Mailing lists, IRC, Blogs, Twitter
23. Tracking Twitter
• Track people talking about the code
• Look for people having trouble, asking questions
24. Answer Questions
• It takes a lot of time but sometimes it’s not worth it
• You never know you could be having trouble
25. Follow-up with Large Users
• Maintain a list of contacts with your large users
• Ping them every once in a while
• Make sure that they’re having a good experience
• They frequently forget to file a bugs - make sure that happens
26. API Documentation
• jQuery had API docs from the start (2006)
• Two other major libraries: Dojo, Prototype didn’t have any official
docs until 2007
• Clarity and usability of documentation is huge
29. Learn More
• Tutorials and books
• Tutorials are short and drive home a point or single topic
• “Books” are more holistic and lead the reader from start to finish
33. Overview
• Help your users at every step of the way
• Track them and help the stragglers
• Help them grow and flourish
• Questions?
• jeresig@gmail.com
• http://ejohn.org/
• http://twitter.com/jeresig