- Unaware (does not know the project)
- Aware (knows the project)
- Consumer (uses the project)
- Supporter (makes non-code contributions)
- Contributor (makes code contributions)
- Maintainer (becomes a trusted committer)
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.
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:
- Standard Base Documentation: Ensure onboarding materials and guides are well-documented and accessible.
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.
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.
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.
- 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."