SlideShare a Scribd company logo
1 of 54
Download to read offline
jQuery Open Source
      Process
                 John Resig
http://ejohn.org/ - http://twitter.com/jeresig
jQuery Open Source (Fronteer 2011)
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?
jQuery Open Source (Fronteer 2011)
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

More Related Content

What's hot

Fringe eu procurement - sara piller
Fringe   eu procurement - sara pillerFringe   eu procurement - sara piller
Fringe eu procurement - sara pillerlgconf11
 
Open Source Success: jQuery
Open Source Success: jQueryOpen Source Success: jQuery
Open Source Success: jQueryjeresig
 
Prompt prezi online_educa_2010
Prompt prezi online_educa_2010Prompt prezi online_educa_2010
Prompt prezi online_educa_2010ITStudy Ltd.
 
2010 Honda Insight Hybrid Portland
2010 Honda Insight Hybrid Portland2010 Honda Insight Hybrid Portland
2010 Honda Insight Hybrid PortlandGriffith Honda
 
Bookbuzz imagination and innovation
Bookbuzz   imagination and innovationBookbuzz   imagination and innovation
Bookbuzz imagination and innovationAlan Jordan MSc
 

What's hot (8)

Fringe eu procurement - sara piller
Fringe   eu procurement - sara pillerFringe   eu procurement - sara piller
Fringe eu procurement - sara piller
 
Open Source Success: jQuery
Open Source Success: jQueryOpen Source Success: jQuery
Open Source Success: jQuery
 
Prompt prezi online_educa_2010
Prompt prezi online_educa_2010Prompt prezi online_educa_2010
Prompt prezi online_educa_2010
 
2010 Honda Insight Hybrid Portland
2010 Honda Insight Hybrid Portland2010 Honda Insight Hybrid Portland
2010 Honda Insight Hybrid Portland
 
Bookbuzz imagination and innovation
Bookbuzz   imagination and innovationBookbuzz   imagination and innovation
Bookbuzz imagination and innovation
 
Water Related Expertise In Toronto Region July09 Final
Water Related Expertise In Toronto Region   July09 FinalWater Related Expertise In Toronto Region   July09 Final
Water Related Expertise In Toronto Region July09 Final
 
Austin Honda Insight Brochure 2010
Austin Honda Insight Brochure 2010Austin Honda Insight Brochure 2010
Austin Honda Insight Brochure 2010
 
Tpn guideline
Tpn guidelineTpn guideline
Tpn guideline
 

Viewers also liked

Rrr final/cosmetic dentistry courses
Rrr final/cosmetic dentistry coursesRrr final/cosmetic dentistry courses
Rrr final/cosmetic dentistry coursesIndian dental academy
 
A Seasoned Cfo 26 Jun 09
A Seasoned Cfo   26 Jun 09A Seasoned Cfo   26 Jun 09
A Seasoned Cfo 26 Jun 09Malik Asghar
 
Jpku tm newsletter_images_february_2011
Jpku tm newsletter_images_february_2011Jpku tm newsletter_images_february_2011
Jpku tm newsletter_images_february_2011vikaskmalik
 
State of jQuery '08
State of jQuery '08State of jQuery '08
State of jQuery '08jeresig
 
Desarrollo histórico de la formación de sociólogos en la universidad
Desarrollo histórico de la formación de sociólogos en la universidadDesarrollo histórico de la formación de sociólogos en la universidad
Desarrollo histórico de la formación de sociólogos en la universidadAnny Jimenez Torrano
 
Changes In Education
Changes In EducationChanges In Education
Changes In Educationbritte2204
 
Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity? Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity? Matteo Valoriani
 
Grupo 6 biologia
Grupo 6 biologiaGrupo 6 biologia
Grupo 6 biologiaivan
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
Democratic and autocracy
Democratic and autocracyDemocratic and autocracy
Democratic and autocracyhtiohito
 
Separata eq-doce-trab-mapasprogr-lectynumy-oper
Separata eq-doce-trab-mapasprogr-lectynumy-operSeparata eq-doce-trab-mapasprogr-lectynumy-oper
Separata eq-doce-trab-mapasprogr-lectynumy-operHector Luengo Rodriguez
 
Xamarin day2 - Android with Xamarin
Xamarin day2 - Android with XamarinXamarin day2 - Android with Xamarin
Xamarin day2 - Android with XamarinSubodh Pushpak
 

Viewers also liked (20)

Rrr final/cosmetic dentistry courses
Rrr final/cosmetic dentistry coursesRrr final/cosmetic dentistry courses
Rrr final/cosmetic dentistry courses
 
argis
argisargis
argis
 
BB Achievements
BB Achievements BB Achievements
BB Achievements
 
A Seasoned Cfo 26 Jun 09
A Seasoned Cfo   26 Jun 09A Seasoned Cfo   26 Jun 09
A Seasoned Cfo 26 Jun 09
 
Ll
LlLl
Ll
 
Objects subjects
Objects subjectsObjects subjects
Objects subjects
 
Jpku tm newsletter_images_february_2011
Jpku tm newsletter_images_february_2011Jpku tm newsletter_images_february_2011
Jpku tm newsletter_images_february_2011
 
State of jQuery '08
State of jQuery '08State of jQuery '08
State of jQuery '08
 
Desarrollo histórico de la formación de sociólogos en la universidad
Desarrollo histórico de la formación de sociólogos en la universidadDesarrollo histórico de la formación de sociólogos en la universidad
Desarrollo histórico de la formación de sociólogos en la universidad
 
Changes In Education
Changes In EducationChanges In Education
Changes In Education
 
Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity? Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity?
 
Bio3º
Bio3ºBio3º
Bio3º
 
Grupo 6 biologia
Grupo 6 biologiaGrupo 6 biologia
Grupo 6 biologia
 
MCPC 2011
MCPC 2011MCPC 2011
MCPC 2011
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
UNP
UNPUNP
UNP
 
PDA
PDAPDA
PDA
 
Democratic and autocracy
Democratic and autocracyDemocratic and autocracy
Democratic and autocracy
 
Separata eq-doce-trab-mapasprogr-lectynumy-oper
Separata eq-doce-trab-mapasprogr-lectynumy-operSeparata eq-doce-trab-mapasprogr-lectynumy-oper
Separata eq-doce-trab-mapasprogr-lectynumy-oper
 
Xamarin day2 - Android with Xamarin
Xamarin day2 - Android with XamarinXamarin day2 - Android with Xamarin
Xamarin day2 - Android with Xamarin
 

Similar to jQuery Open Source (Fronteer 2011)

jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jeresig
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jeresig
 
ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1tutorialsruby
 
Collec+Ive Master
Collec+Ive MasterCollec+Ive Master
Collec+Ive Masterproducer
 
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...Human Capital Media
 
JESS3 Portfolio
JESS3 PortfolioJESS3 Portfolio
JESS3 PortfolioJESS3
 
Data Visualization Meets Visual Storytelling
Data Visualization Meets Visual StorytellingData Visualization Meets Visual Storytelling
Data Visualization Meets Visual StorytellingJESS3
 
Reinventing Experience - Fabio Carnevale Maffè
Reinventing Experience - Fabio Carnevale MaffèReinventing Experience - Fabio Carnevale Maffè
Reinventing Experience - Fabio Carnevale MaffèCultura Digitale
 
Intalio Corporate Presentation
Intalio Corporate PresentationIntalio Corporate Presentation
Intalio Corporate PresentationTomoaki Sawada
 
Intalio Corporate Presentation (BPMS)
Intalio Corporate Presentation (BPMS)Intalio Corporate Presentation (BPMS)
Intalio Corporate Presentation (BPMS)Fernando Gummà
 
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...Andrea Wiggins
 
2010 Honda Insight Hybrid Virginia Beach
2010 Honda Insight Hybrid Virginia Beach2010 Honda Insight Hybrid Virginia Beach
2010 Honda Insight Hybrid Virginia BeachCheckered Flag Honda
 
Sustainable Energy Policies Evaluation of Thailand
Sustainable  Energy Policies Evaluation of ThailandSustainable  Energy Policies Evaluation of Thailand
Sustainable Energy Policies Evaluation of ThailandDr.Choen Krainara
 
2010 Honda Insight Hybrid Boston
2010 Honda  Insight Hybrid Boston2010 Honda  Insight Hybrid Boston
2010 Honda Insight Hybrid BostonAtamian Honda
 
2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los Angeles2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los AngelesMiller Honda
 
2010 Honda Insight Boston
2010 Honda Insight Boston2010 Honda Insight Boston
2010 Honda Insight BostonAtamian Honda
 

Similar to jQuery Open Source (Fronteer 2011) (20)

jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)
 
ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1
 
Soffer CollectIve Master
Soffer CollectIve MasterSoffer CollectIve Master
Soffer CollectIve Master
 
Collec+Ive Master
Collec+Ive MasterCollec+Ive Master
Collec+Ive Master
 
Visual Resume
Visual ResumeVisual Resume
Visual Resume
 
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
 
JESS3 Portfolio
JESS3 PortfolioJESS3 Portfolio
JESS3 Portfolio
 
Data Visualization Meets Visual Storytelling
Data Visualization Meets Visual StorytellingData Visualization Meets Visual Storytelling
Data Visualization Meets Visual Storytelling
 
Consumers & Health Claims 2012
Consumers & Health Claims 2012Consumers & Health Claims 2012
Consumers & Health Claims 2012
 
Reinventing Experience - Fabio Carnevale Maffè
Reinventing Experience - Fabio Carnevale MaffèReinventing Experience - Fabio Carnevale Maffè
Reinventing Experience - Fabio Carnevale Maffè
 
Ras
RasRas
Ras
 
Intalio Corporate Presentation
Intalio Corporate PresentationIntalio Corporate Presentation
Intalio Corporate Presentation
 
Intalio Corporate Presentation (BPMS)
Intalio Corporate Presentation (BPMS)Intalio Corporate Presentation (BPMS)
Intalio Corporate Presentation (BPMS)
 
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
 
2010 Honda Insight Hybrid Virginia Beach
2010 Honda Insight Hybrid Virginia Beach2010 Honda Insight Hybrid Virginia Beach
2010 Honda Insight Hybrid Virginia Beach
 
Sustainable Energy Policies Evaluation of Thailand
Sustainable  Energy Policies Evaluation of ThailandSustainable  Energy Policies Evaluation of Thailand
Sustainable Energy Policies Evaluation of Thailand
 
2010 Honda Insight Hybrid Boston
2010 Honda  Insight Hybrid Boston2010 Honda  Insight Hybrid Boston
2010 Honda Insight Hybrid Boston
 
2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los Angeles2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los Angeles
 
2010 Honda Insight Boston
2010 Honda Insight Boston2010 Honda Insight Boston
2010 Honda Insight Boston
 

More from jeresig

Does Coding Every Day Matter?
Does Coding Every Day Matter?Does Coding Every Day Matter?
Does Coding Every Day Matter?jeresig
 
Accidentally Becoming a Digital Librarian
Accidentally Becoming a Digital LibrarianAccidentally Becoming a Digital Librarian
Accidentally Becoming a Digital Librarianjeresig
 
2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)jeresig
 
Computer Vision as Art Historical Investigation
Computer Vision as Art Historical InvestigationComputer Vision as Art Historical Investigation
Computer Vision as Art Historical Investigationjeresig
 
Hacking Art History
Hacking Art HistoryHacking Art History
Hacking Art Historyjeresig
 
Using JS to teach JS at Khan Academy
Using JS to teach JS at Khan AcademyUsing JS to teach JS at Khan Academy
Using JS to teach JS at Khan Academyjeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art Historyjeresig
 
NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Resultsjeresig
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysisjeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art Historyjeresig
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)jeresig
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jeresig
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobilejeresig
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performancejeresig
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)jeresig
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)jeresig
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)jeresig
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)jeresig
 
Meta Programming with JavaScript
Meta Programming with JavaScriptMeta Programming with JavaScript
Meta Programming with JavaScriptjeresig
 
Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)jeresig
 

More from jeresig (20)

Does Coding Every Day Matter?
Does Coding Every Day Matter?Does Coding Every Day Matter?
Does Coding Every Day Matter?
 
Accidentally Becoming a Digital Librarian
Accidentally Becoming a Digital LibrarianAccidentally Becoming a Digital Librarian
Accidentally Becoming a Digital Librarian
 
2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)
 
Computer Vision as Art Historical Investigation
Computer Vision as Art Historical InvestigationComputer Vision as Art Historical Investigation
Computer Vision as Art Historical Investigation
 
Hacking Art History
Hacking Art HistoryHacking Art History
Hacking Art History
 
Using JS to teach JS at Khan Academy
Using JS to teach JS at Khan AcademyUsing JS to teach JS at Khan Academy
Using JS to teach JS at Khan Academy
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Results
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysis
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performance
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)
 
Meta Programming with JavaScript
Meta Programming with JavaScriptMeta Programming with JavaScript
Meta Programming with JavaScript
 
Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)
 

jQuery Open Source (Fronteer 2011)

  • 1. jQuery Open Source Process John Resig http://ejohn.org/ - http://twitter.com/jeresig
  • 5. 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)
  • 6. 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.
  • 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 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?
  • 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 “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
  • 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 user as 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 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
  • 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
  • 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!
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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.
  • 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