Skip to content

Instantly share code, notes, and snippets.

@spier
Last active January 14, 2025 21:10
Show Gist options
  • Save spier/724794bb1e18060c5b9fdce77a18a5dd to your computer and use it in GitHub Desktop.
Save spier/724794bb1e18060c5b9fdce77a18a5dd to your computer and use it in GitHub Desktop.
Asking ChatGPT how to turn users into contributors - on an InnerSource project

Stages of User Progression in an InnerSource Project with Supporting Patterns

  1. Unaware (does not know the project)
  2. Aware (knows the project)
  3. Consumer (uses the project)
  4. Supporter (makes non-code contributions)
  5. Contributor (makes code contributions)
  6. Maintainer (becomes a trusted committer)

Helping Users Progress Through the Stages

1. Unaware → Aware

Goal: Make the project visible to potential users.
Examples:

  • Internal Announcements: Use company newsletters, all-hands meetings, or internal messaging platforms to introduce the project.
  • Documentation: Publish a clear and engaging introductory document that explains what the project does and how it benefits the organization.
  • Presentations & Demos: Host regular showcases or demo sessions to highlight the project's value.

Supporting Patterns:

  • InnerSource Portal: Establish a centralized platform where projects are listed, with descriptions and clear entry points.

2. Aware → Consumer

Goal: Make it easy for users to start using the project.
Examples:

  • Onboarding Documentation: Provide a simple "Getting Started" guide with minimal setup steps.
  • Templates and Examples: Offer example configurations or templates to help users integrate the project into their workflows.
  • Support Channels: Set up a Slack channel, email group, or other means of answering questions quickly.

Supporting Patterns:


3. Consumer → Supporter

Goal: Encourage non-code contributions.
Examples:

  • Feedback Loops: Create a process for users to report bugs, request features, or share experiences (e.g., using a feedback form or GitHub Issues template).
  • Recognition: Acknowledge and thank users for their contributions in release notes or at internal meetings.
  • Surveys: Ask users for input on the project's direction or features, making them feel invested in its success.

Supporting Patterns:

  • Praise Participants: Acknowledge and thank users for their contributions to motivate continued participation.

4. Supporter → Contributor

Goal: Lower the barrier to making code contributions.
Examples:

  • Good First Issues: Clearly label beginner-friendly issues in the repository.
  • Mentorship: Pair new contributors with experienced maintainers for guidance.
  • Comprehensive Contribution Guide: Create a step-by-step guide for setting up the project locally, understanding the codebase, and submitting contributions.
  • Low-Risk Opportunities: Encourage small contributions, such as fixing typos, improving documentation, or addressing minor bugs.

Supporting Patterns:

  • First Contribution: Designate tasks that are simple enough for first-time contributors to gain confidence.
  • Mentorship Program: Establish a structured mentoring system to guide new contributors.

5. Contributor → Maintainer

Goal: Build trust and provide opportunities for growth.
Examples:

  • Code Reviews: Give constructive and educational feedback on pull requests to help contributors improve.
  • Ownership Opportunities: Offer contributors ownership of specific features or areas of the project.
  • Regular Check-Ins: Engage with frequent contributors to understand their goals and provide mentorship toward becoming maintainers.
  • Document Processes: Provide a clear guide on what it means to be a maintainer, including responsibilities and expectations.

Supporting Patterns:

  • Trusted Committer: Define clear expectations and responsibilities for trusted maintainers who can mentor new contributors.
  • Growing Maintainers: Provide mentorship and opportunities for contributors to take on larger responsibilities, guiding them toward becoming maintainers.

General Practices to Lower Barriers at All Stages

  • Clear Communication: Maintain up-to-date documentation, changelogs, and communication channels.
  • Automated Tools: Use CI/CD pipelines to simplify testing and integrating contributions.
  • Inclusive Culture: Foster a welcoming and respectful environment where all contributions are valued.
  • Recognition: Highlight contributions publicly to motivate and reward participation.

Supporting Patterns:

  • Dedicated Community Leader: Appoint a leader to foster an inclusive environment and coordinate contributions.
  • InnerSource Metrics: Track and share metrics that highlight project health and contributions, motivating further participation.

By addressing the needs and motivations of users at each stage and leveraging InnerSource patterns, projects can create a system that encourages progression from "Unaware" to "Maintainer."

For an InnerSource project, let's assume the following stages of a user:

  • does not know the project
  • knows the project
  • uses the project
  • makes non-code contributions to the project
  • makes code contributions to the project
  • becomes a trusted committer

These stages are meant as a progression from top to bottom.

Give each of these stages a distinct name.

How to help users to move from one stage to the next? Provide examples of what a project should do, to make the barrier to contribution as low as possible for each of these stages.

For each of these stages list InnerSource patterns that would support these. Use the real names and URLs of the patterns from https://patterns.innersourcecommons.org

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment