Running a newbie-friendly free software project


Sage Ross    —    @ragesoss    —

Wiki Education —

About me

  • history + Wikipedia editing (2005)
    • Wikipedia community management (2010)
      • Product management (2013)
        • Ruby (2015)
  1. Context: the free software project I run
  2. Newbie-friendly issues: nice bugs and feature requests
  3. Barriers to entry: recurrent problems for new developers
  4. Attracting contributors: what’s worked?
  5. Costs and benefits: is it worth it?

1. Context

  • Rails + React
  • started late 2014, designed and built by WINTR
  • since 2016, mostly maintained by me


  • 62 (as of January 2018)
  • ~ 2/3rds code newbies
  • ~ 8 high school students
  • 4 interns
  • lots of boot camp and MOOC students

2. Newbie-friendly issues

Wikipedia redlinks mean missing articles

Identify specific, easily-understood issues that only require understanding one part of the system.


Knowing where and how to start is the biggest challenge.

Document the knowledge you have about how to solve an issue.


Which files need to be changed? Can you break it into several steps? Any relevant blog posts or tutorials?

Tag issues with the skills and/or technologies involved.

Refactoring and code quality tasks are great!

  • Refactor this large controller into several smaller ones
  • Get rid of all uses of this deprecated library, so it can be removed as a dependency
  • Enable this rubocop / eslint rule and fix all the violations
  • etc.

3. Barriers to entry

Setting up a dev environment is hard.



<br />
rake aborted!<br />
StandardError: An error has occurred, all later migrations canceled:</p>
<p>SSL_connect returned=1 errno=0 state=error: certificate verify failed<br />
D:/dev/dashboard/WikiEduDashboard/lib/wiki_api.rb:94:in `mediawiki'<br />
D:/dev/dashboard/WikiEduDashboard/lib/wiki_api.rb:20:in `query'<br />
D:/dev/dashboard/WikiEduDashboard/app/models/wiki.rb:102:in `ensure_wiki_exists'<br />
D:/dev/dashboard/WikiEduDashboard/db/migrate/20160210013622_create_wikis.rb:9:in `change'<br />

Node.js! Bower! Gulp! Yarn!


The JavaScript ecosystem is a moving target, with gotchas that vary by platform.

Creating local data can be complex.

Git has a steep learning curve.

(Purchased at garage sale, 50¢. Unread.)

4. Attracting contributors

How do you find contributors?

bootcamp students?
  • Get the word out in a lot of different places.
  • Take a long-term approach by helping new contributors get started whenever they show up.

5. Costs and benefits

  • high time investment
  • not a short-term solution to getting more done
  • increased time between knowing about a problem and fixing it
I learn a lot when I have to explain things!
I’ve stopped thinking about the implementation in the friendlier parts of the codebase.
What makes the project easier for newcomers also makes it easier for experienced developers to get up to speed quickly.
I’ve started to think about code changes — bug fixes, new features, code quality improvements — in terms of how easy they are to describe.
I learn a lot from people who know things I don’t.
Some people stick around and keep contributing.

💕 💗 💞

Join the party!