jQuery Open Source Process John Resig http://ejohn.org/ - http://twitter.com/jeresig
http://trends.builtwith.com/javascript/jQuery
http://httparchive.org/interesting.php#flash
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)
What it all boils down to... ✦ How quickly can you get your user hooked - are you giving them room, and the resources, to grow? ✦ Put yourself in your user’s shoes.
Se In H co te om nd gr ep at Ap io ag p n e Ex Vi pl AP ew or ID Tu eA oc t or PI s ial Co D m ow Ex te m nl un oa nd i ty d AP I Tr Re Tu t y Tu ad or t ial or So s ial ur ce The First Year: Growth The First Month: Learning The First Day: Can this help me? Co nt Ex Ex rib pe pe ut r im r im e en en t t Watch the full process
Attrition Failure at any step costs your project another user. Your project is your own worst enemy.
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/
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?
Getting Started Tutorial ✦ Clear, focused ✦ Assume no background knowledge
Download ✦ Make it super-easy, remove any barriers ✦ (We link straight to the source, no .zip)
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 file”
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
Simplicity ✦ Simple APIs are king ✦ Users understand quicker ✦ Get started faster ✦ Become advanced quicker
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
Community Resources ✦ Provide places for users to ask questions ✦ jQuery: ✦ jQuery Forum ✦ IRC Channel ✦ External: ✦ StackOverflow.com ✦ Twitter ✦ Blogs
Monitor Your Community ✦ Make sure that everyone is getting the help that they need ✦ We run an Evangelism Team “Developer Relations” ✦ Track all of the services they use ✦ Forum - Subscribe to the forums ✦ IRC - Sit in the IRC channel ✦ Blogs - Use Technorati and Google Blog Search ✦ Twitter - Use Twitter Search
Service Treat every user as a potential, future, contributor.
Service ✦ Today Mike Alsup and Michael Geary are part of the jQuery team
Twitter Tracking ✦ Track people talking about the code: ✦ http://search.twitter.com/ ✦ Look for people having trouble, asking questions
Answer Questions ✦ It takes a lot of time, but sometimes it’s really worth it ✦ You never know who could be having trouble
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 bugs - make sure that happens
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
API Example
Alternative Views
Alternate Views
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
Tutorials New Learning Site Coming!
Getting Involved
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
Core Development Process ✦ Weekly, public, team meetings ✦ Defined release dates and schedule ✦ Frequent discussion in #jquery-dev (IRC) ✦ Active participation of the committers and the bug triage team
Weekly Meeting Notes
Project-Wide Notes
Testing ✦ A distributed team testing against dozens of browsers ✦ Must have a top-notch test suite ✦ ...and distributed testing capabilities ✦ We use Test Swarm
Test Swarm
Test Swarm
Test Swarm on IRC
Browser Stack
Browser Stack
Bug Triage Team ✦ Responsible for processing all the bugs in the bug tracker ✦ Make sure test cases are filed ✦ Work through pulls in the Github pull request queue ✦ Make sure the test suite is passing
Bugs bugs.jquery.com/ticketgraph?days=90
Bugs (cont.)
Roadmap Decisions ✦ Put up a public form for people to submit possible feature suggestions ✦ The team works through all the feature suggestions and creates a list ✦ All of this is done publicly and discussed in a public meeting
Roadmap
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 ✦ Communication is a huge factor here, “dead” bugs or mailing list threads cripple participation. ✦ http://docs.jquery.com/Getting_Involved
Missing Features
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. ✦ We’re working on a new plugins site!
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. ✦ jQuery Mobile - A complete interface for developing mobile web apps.
jQuery UI
jQuery Mobile
jQuery Mobile Testing
Overview ✦ Help your users at every step of the way ✦ Track them and help the stragglers ✦ Help them grow and flourish ✦ http://swarm.jquery.org/ ✦ Questions? ✦ jeresig@gmail.com

jQuery Open Source (Fronteer 2011)

  • 1.
    jQuery Open Source Process John Resig http://ejohn.org/ - http://twitter.com/jeresig
  • 3.
  • 4.
  • 5.
    Things That AreImportant ✦ Technical ✦ API Design (Usability, documentation) ✦ Code Quality (Licensing, openness, test coverage) ✦ Non-technical ✦ Community (Resources, responsiveness) ✦ Learning Aides (Tutorials, books, demos)
  • 6.
    What it allboils down to... ✦ How quickly can you get your user hooked - are you giving them room, and the resources, to grow? ✦ Put yourself in your user’s shoes.
  • 7.
    Se In H co te om nd gr ep at Ap io ag p n e Ex Vi pl AP ew or ID Tu eA oc t or PI s ial Co D m ow Ex te m nl un oa nd i ty d AP I Tr Re Tu t y Tu ad or t ial or So s ial ur ce The First Year: Growth The First Month: Learning The First Day: Can this help me? Co nt Ex Ex rib pe pe ut r im r im e en en t t Watch the full process
  • 8.
    Attrition Failure at anystep 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?
  • 12.
    Getting Started Tutorial ✦ Clear, focused ✦ Assume no background knowledge
  • 13.
    Download ✦ Make it super-easy, remove any barriers ✦ (We link straight to the source, no .zip)
  • 14.
    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 file”
  • 15.
    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
  • 16.
    Simplicity ✦ Simple APIs are king ✦ Users understand quicker ✦ Get started faster ✦ Become advanced quicker
  • 17.
    The First Month “AlrightI 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
  • 18.
    Community Resources ✦ Provide places for users to ask questions ✦ jQuery: ✦ jQuery Forum ✦ IRC Channel ✦ External: ✦ StackOverflow.com ✦ Twitter ✦ Blogs
  • 19.
    Monitor Your Community ✦ Make sure that everyone is getting the help that they need ✦ We run an Evangelism Team “Developer Relations” ✦ Track all of the services they use ✦ Forum - Subscribe to the forums ✦ IRC - Sit in the IRC channel ✦ Blogs - Use Technorati and Google Blog Search ✦ Twitter - Use Twitter Search
  • 20.
    Service Treat every useras a potential, future, contributor.
  • 21.
    Service ✦ Today Mike Alsup and Michael Geary are part of the jQuery team
  • 22.
    Twitter Tracking ✦ Track people talking about the code: ✦ http://search.twitter.com/ ✦ Look for people having trouble, asking questions
  • 23.
    Answer Questions ✦ It takes a lot of time, but sometimes it’s really worth it ✦ You never know who could be having trouble
  • 24.
    Follow-up With LargeUsers ✦ 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 bugs - make sure that happens
  • 25.
    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
  • 26.
  • 27.
  • 28.
  • 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
  • 30.
    Tutorials New Learning Site Coming!
  • 31.
  • 32.
    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
  • 33.
    Core Development Process ✦ Weekly, public, team meetings ✦ Defined release dates and schedule ✦ Frequent discussion in #jquery-dev (IRC) ✦ Active participation of the committers and the bug triage team
  • 34.
  • 35.
  • 36.
    Testing ✦ A distributed team testing against dozens of browsers ✦ Must have a top-notch test suite ✦ ...and distributed testing capabilities ✦ We use Test Swarm
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
    Bug Triage Team ✦ Responsible for processing all the bugs in the bug tracker ✦ Make sure test cases are filed ✦ Work through pulls in the Github pull request queue ✦ Make sure the test suite is passing
  • 43.
  • 44.
  • 45.
    Roadmap Decisions ✦ Put up a public form for people to submit possible feature suggestions ✦ The team works through all the feature suggestions and creates a list ✦ All of this is done publicly and discussed in a public meeting
  • 46.
  • 47.
    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 ✦ Communication is a huge factor here, “dead” bugs or mailing list threads cripple participation. ✦ http://docs.jquery.com/Getting_Involved
  • 48.
  • 49.
    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. ✦ We’re working on a new plugins site!
  • 50.
    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. ✦ jQuery Mobile - A complete interface for developing mobile web apps.
  • 51.
  • 52.
  • 53.
  • 54.
    Overview ✦ Help your users at every step of the way ✦ Track them and help the stragglers ✦ Help them grow and flourish ✦ http://swarm.jquery.org/ ✦ Questions? ✦ jeresig@gmail.com