Proposal: Contributor Invites

On the progress call on September 14, someone (I think it was Sunil) had an idea which would help us recruit more contributors: development challenges.

The idea is to post a few software development tasks to the forum every week and advertise these as challenges. This idea has two goals:

  1. to gain code contributions
  2. to recruit new team members

I propose pursue this idea in three steps:

1. Curating challenges: Members of the core team (@njoseph, @sunil, @jvalleroy) will identify software development tasks which could be executed by a new contributor. These tasks will be well-defined in a brief paragraph or bullet-point to-do list. Ideally, they will be approachable for newcomers and could serve as a good gateway into our project. In the beginning, when we expect response to be slow, the core team should plan to identify and describe only a few challenges per month. Once existing challenges have been completed or removed from the list for whatever reason, the team can identify new challenges.

2. Advertising challenges: Each challenge will be posted in the forum under a new “Challenges” category. Each challenge listing will follow this structure:

  1. Description of a well-defined problem
  2. To-do list for solving the problem (just like the to-do lists on gitlab issues)
  3. Skills needed

I suspect that we will write challenge listings as wiki posts on the forum, so all can edit it together. I can take on the responsibility of starting these wiki posts to the forum, although I will need help in writing all three of the above sections. Once listings have been written, I will advertise these challenges on social media, mailing lists, and IRC. If someone already has written a well-defined to-do list on Gitlab, simply send me the link and I can convert it into a challenge post on the forum myself.

3. Executing challenges: Once someone expresses interest in executing a challenge, we can welcome them into our community and be in touch when they have questions. When a challenge has been completed, we can recognize the developer with posts on social media and list their name on our contributors wiki page.

Feedback on this proposal?

As a rough outline of the proposal, how does that sound? If people think it sounds good, then the first step would be for someone to nominate a task as our first challenge. I can then get started on writing a forum post for it.

2 Likes

Proposal looks great! Only point to wonder is probably the name “challenge”. I agree that the word indeed will motivate some contributors. However, it should not give the impression that multiple contributors will work on a problem (there by wasting some of their time). It should note that core developers are willing to answer queries and assist with contributors getting up to speed with the project.

Good point. I agree that “challenge” may have some unwanted connotations. Here are some other titles for the program:

  • Software Assignments
  • Target Tasks
  • Development Tasks
  • Development Goals
  • Development Objectives
  • Software Sprints
  • Feature Requests
  • Development Requests
  • Requested Contributions
  • Development Targets

The more I think about this, the more I realize that framing could make a difference in how people perceive this program. The name I’m leaning toward is Feature Requests Program. Its meaning is very clear, and people will know what we mean when we say “This week’s Feature Request is…Can you build it? Details in link!”

What do you think? Does some other name stand out to you?

This is something I can add to body text for each feature request’s forum post. I’ll make it clear that beginners are welcome and guidance is available.

Let me throw in one more suggestion into the pool: Weekly/Monthly “Contributor Invite”. It conveys that the focus is to get more contributors rather than fulfill features (tasks may not be big feature items but simple tasks people enjoy doing). It also has an explicit encouragement to its tone as in inviting guests.

2 Likes

Ah, yes. That makes a lot of sense. Great idea–let’s use it.

Unless someone else objects, I think we can settle on “Contributor Invite” as the name and framing of this program.

The next step is to nominate a task as the first Contributor Invite. If this turns out to be a big discussion, we can talk about it on the progress call this Sunday, September 22nd.

I have a prepared a set of tasks for our first contributor invite:

  1. ssh: Add documentation for explain why and how to use SSH keys
    • Area: Documentation
    • Effort rating: 1/5
    • Requirements: English, Linux command line familiarity
  2. Provide/review translations for FreedomBox web interface
    • Area: Localization
    • Effort rating: 3/5
    • Requirements: English, language you are translating to. must be a FreedomBox user
  3. mediawiki: Test various features
    • Area: Testing
    • Effort rating: 1/5
    • Requirements: Must be a FreedomBox user
  4. cockpit: Add information on how to access the app
    • Area: Coding
    • Effort rating: 2/5
    • Requirements: Python, Django Views/Templates
  5. ssh: Show server fingerprints in SSH page
    • Area: Coding
    • Effort rating: 2/5
    • Requirements: Python, Django Views/Templates
  6. ssh: Allow disabling password authentication
    • Area: Coding
    • Effort rating: 3/5
    • Requirements: Python, Django Views/Templates/Forms

Please feel free to suggest any changes.

1 Like

Thank you, Sunil. I looked at the GitLab pages for these items, and this is a good mix of beginner-friendly tasks. I will turn these six items into Contributors Invites soon (likely later this week).