AWS Community Day CPH - Three problems of Terraform
Ā
Open Source Success: jQuery
1. Open Source Success:
jQuery
John Resig
http://ejohn.org/ - http://twitter.com/jeresig
2. jQuery
A JavaScript library designed to hide
ā¦
painful cross-browser compatibility issues
while presenting a solid, usable, API.
3. Simple API
$(ādiv > spanā).addClass(āfooā);
ā¦
ā¦ āFind some elementsā
ā¦ āDo something with themā
Makes complex manipulation of web pages
ā¦
simple
4. Points of Concern
Primary issues:
ā¦
ā¦ Quality of API
ā¦ Quality of browser-issue-hiding
Other issues:
ā¦
ā¦ Speed, community, licensing,
development team, openness, test
coverage, API documentation, tutorials,
books, demos
5. Space
Highly competitive space
ā¦
Released Jan. 2006 - already a dominant
ā¦
player: Prototype JavaScript Library
(Bundled with Ruby on Rails, had some
ā¦
nice coattail growth.)
Other libraries: Dojo, Yahoo UI,
ā¦
MooTools
6. Success?
Personal Success vs. External Success
ā¦
Personal Success (for me)
ā¦
ā¦ Someone else uses the project and ļ¬nds
it useful
Some Numbers:
ā¦
ā¦ Downloads
ā¦ jQuery 1.2.6: 40+ million downloads
ā¦ (People probably include it directly in
their pages)
ā¦ Total: Over 180+ million downloads
7. Personal Success
Google Analytics
ā¦
ā¦ 1.5 million+ unique monthly visitors
ā¦ 125,000+ per day
March ā09 to Dec ā08: 50% Growth
March ā09 to Feb ā09: 8% Growth
8. External Success
No solid numbers for JS Libraries
ā¦
ā¦ Scripts not indexed by Google
ā¦ Sites behind intranets
A couple tools:
ā¦
ā¦ Google Trends (Google searches for a
term)
9. External Success
MAMA Opera
ā¦
ā¦ An HTML search engine built by Opera
ā¦ Can search through script ļ¬les
10. Things That Are Important
Technical
ā¦
ā¦ API Design
(Usability, documentation)
ā¦ Code Quality
(Licensing, openness, test coverage)
Non-technical
ā¦
ā¦ Community
(Resources, responsiveness)
ā¦ Learning Aides
(Tutorials, books, demos)
11. What it all boils down to...
How quickly can you get your user hooked
ā¦
- and are you giving them room, and the
resources, to grow?
Put yourself in your userās shoes.
ā¦
12. H
In
Se
te
co om
n gr ep
at
dA
io ag
e
n
pp
Vi
Ex ew
AP
pl ID
or Tu
to
eA oc
s ria
PI
l
D
Co
m ow
m
Ex nl
te un oa
d
nd ity
AP
I
Tr
y
Tu
to Tu
Re
t
ad ria or
ls
So ial
ur
ce
The First Year: Growth
The First Month: Learning
The First Day: Can this help me?
Co
Ex Ex
nt
pe pe
rib
r r
im im
ut
e en en
t t
Watch the full process
13. Attrition
Failure at any step costs your project another user.
Your project is your own worst enemy.
14. 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/
15. Homepage
Set a good ļ¬rst impression
ā¦
Answer the questions:
ā¦
ā¦ What is this?
ā¦ What can it do for me?
ā¦ Where can I go to learn more?
18. Download
Make it super-easy, remove any barriers
ā¦
(We link straight to the source, no .zip)
ā¦
19. Licensing
Not a concern for some of 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 use the MIT license for jQuery
ā¦
ā¦ āLeave my name on the source ļ¬leā
20. 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
21. Simplicity
Simple APIs are king
ā¦
Users understand quicker
ā¦
Get started faster
ā¦
Become advanced quicker
ā¦
22. 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
23. Community Resources
Provide places for users to ask questions
ā¦
jQuery:
ā¦
ā¦ Mailing list
ā¦ IRC Channel
External:
ā¦
ā¦ jQueryHelp.com Forum
ā¦ StackOverļ¬ow.com
ā¦ Twitter
ā¦ Blogs
24. Monitor Your Community
Make sure that everyone is getting the
ā¦
help that they need
Evangelism Team, run by Rey Bango
ā¦
Track all of the services they use
ā¦
ā¦ Mailing List - Subscribe to the mailing
list
ā¦ IRC - Sit in the IRC channel
ā¦ Blogs - Use Technorati and Google Blog
Search
ā¦ Twitter - Use Twitter Search
26. Service
Today Mike Alsup and Michael Geary are
ā¦
part of the jQuery team
27. Twitter Tracking
Track people talking about the code:
ā¦
ā¦ http://search.twitter.com/
Look for people having trouble, asking
ā¦
questions
28. Answer Questions
It takes a lot of time, but sometimes itās
ā¦
really worth it
You never know who could be having
ā¦
trouble
29. 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 ļ¬le bugs - make
ā¦
sure that happens
30. API Documentation
jQuery had API docs from the start (2006)
ā¦
Two other major libraries: Dojo, Prototype
ā¦
didnāt have any until 2007+
Clarity and usability of documentation is
ā¦
huge
33. 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 ļ¬nish
36. API Buy-in
Once users start using an API for an
ā¦
application they generally stick with it
Every new application is an opportunity to
ā¦
snag, or lose, a user
All boils down to attrition: Did your user
ā¦
have a good experience building the ļ¬rst
application?
38. Open Process
Open Source is easy
ā¦
(just release the code
and be done with it)
Open Process is hard
ā¦
(open source control,
easy bug tracking)
A good process helps
ā¦
users learn
39. Extensibility
Your API isnāt perfect -
ā¦
it canāt include everything
for everyone
Give users the ability to
ā¦
add their own functionality
jQuery has a healthy plugin
ā¦
community with hundreds
of plugins.
Gives jQuery a huge leg up
ā¦
on other libraries.
40. Complex Applications
Users will attempt to build increasingly
ā¦
complex applications
Need to be there to help, otherwise theyāll
ā¦
leave for something else
jQuery UI - A set of complex User
ā¦
Interface components.
42. Contributions
How does a user become a contributor?
ā¦
Encouragement is the biggest factor
ā¦
ā¦ Encourage users to submit bug reports
ā¦ Encourage them to build test cases
ā¦ Encourage them to submit patches
Praise them when something good is done.
ā¦
Communication is a huge factor here,
ā¦
ādeadā bugs or mailing list threads cripple
participation.
43. Overview
Help your users at every step of the way
ā¦
Track them and help the stragglers
ā¦
Help them grow and ļ¬ourish
ā¦
Questions?
ā¦
ā¦ jeresig@gmail.com
ā¦ http://ejohn.org/
ā¦ http://twitter.com/jeresig