# Enhancing the Knative Contributor Experience!

**Author: [Prajjwal Yadav](https://www.linkedin.com/in/prajjwalyd/), LFX'24 @ Knative**

During the Spring 2024 term, I had the privilege of participating in the LFX Mentorship program, where I researched the contributor experience of Knative under the guidance of [Calum Murray](https://www.linkedin.com/in/calum-ra-murray/) and [Mariana Mejía](https://www.linkedin.com/in/mariana-mejia-design/). The focus of the project was to pinpoint challenges within the Knative contributor experience and formulate actionable recommendations for enhancement.

Knative, with its complex architecture, often presents a steep learning curve for new contributors. This can lead to significant investments in onboarding efforts from both maintainers and contributors. However, if contributors leave after just a few contributions, these investments can seem wasted. My task in this research project was to uncover the reasons behind this contributor 'drop-off' and suggest strategies to encourage sustained engagement, ultimately enhancing the developer experience for everyone involved. 
The research included participation from both contributors and maintainers of Knative.

## Research Overview

During the early weeks of my mentorship, I dedicated significant time to planning the research process. This involved [setting goals, defining objectives, framing key questions, hypotheses, and selecting appropriate methodologies](https://github.com/knative/ux/blob/main/user-research/contributor-research/Introduction.md). To commence the research phase, I sifted through contributor data spanning from January 1, 2023, to February 29, 2024, in order to identify potential interview candidates. 

We conducted a total of 12 interviews, targeting a diverse range of contributors, including 2 newcomers, 3 active contributors, 3 inactive contributors, and 4 maintainers. (For detailed demographics please click [here](https://github.com/knative/ux/blob/main/user-research/contributor-research/README.md#demographics)) The objective of these interviews was to address key questions and unearth insightful experiences from contributors and maintainers within the Knative community.
It was particularly tough to get interviews with inactive contributors because many weren't using CNCF Slack anymore. However, during the latter half of the project, we did manage to interview three of them, which provided significant insights.

The qualitative data gathered from each interview was analyzed using the affinity mapping technique to identify recurring themes. Additionally, tree diagrams were employed for root cause analysis to gain deeper insights into some underlying issues.

After the interviews and analysis, I designed a developer survey aimed at gaining a broader understanding of the community's motivations, engagement levels, challenges, and areas for potential improvement. Regrettably, the survey yielded only four responses, rendering it statistically insignificant.

### Key Findings

Through the comprehensive analysis of collected data, we identified several key findings categorized into six main areas:

1. **Primary Challenges Faced by Contributors**
2. **Motivations Behind Contributing to Knative**
3. **Primary Challenges Faced by Maintainers**
4. **Community Engagement and Interactions**
5. **Common Reasons for Disengagement**
6. **Some Additional Insights** (These didn't neatly fit into the existing categories but they sparked our interest during the analysis.)

A detailed description of these key findings can be accessed [here](https://github.com/knative/ux/blob/main/user-research/contributor-research/Key-Findings.md).

### Recommendations

Building upon the key findings and suggestions collected through the interviews, we proceeded to formulate recommendations aimed at enhancing the contributor experience within Knative. The following recommendations were proposed:

1. **Improving the Onboarding Process**
2. **Enhancing Issue Labeling Practices**
3. **Implementing Scheduled Office Hours**
4. **Revamping Social Media Presence**
5. **Hosting Monthly Community Hangout Calls**
6. **Establishing Clear Growth Paths within the Community**
7. **Conducting Personalized One-on-One Meetings for New Contributors**
8. **Introducing an Anonymous Feedback Mechanism**

These recommendations are presented in descending order of implementation priority from most important at the top, with each recommendation accompanied by a suggested implementation plan. For detailed insights into each recommendation, please refer to [Recommendations.md](https://github.com/knative/ux/blob/main/user-research/contributor-research/Recommendations.md).

### Presentation and Feedback

Upon concluding the interview analysis, I distilled the key findings and preliminary recommendations and presented them to the UX Working Group on May 16, 2024. Subsequently, after receiving feedback during the presentation and on the pull request, I iterated on my findings and recommendations for refinement.

The final report is available [here](https://github.com/knative/ux/tree/main/user-research/contributor-research).
Any feedback or suggestions on the final report would be greatly appreciated!




## A Retrospective & Future Directions

The project provides invaluable insights into open-source collaboration, contributor motivations, community dynamics, and the significance of prioritizing developer experience. The engagement with the community throughout this mentorship has been rewarding, and I'm really grateful to my mentors for their support. 
Despite some limitations, the interviews yielded diverse and substantial data. Notably, engaging with three inactive contributors provided unique perspectives that deepened our understanding of the disengagement factors.

The project began with clear goals outlined in the [Introduction.md](https://github.com/knative/ux/blob/main/user-research/contributor-research/Introduction.md), focusing on understanding the contributor journey, identifying retention factors, and uncovering areas for improvement. Through thorough research, all these goals were achieved, and the objectives, including exploring the onboarding process, understanding contributors' experiences, identifying pain points, etc., were successfully met. The key questions guiding the research were effectively addressed through the identified key findings.

Looking forward, the next steps involve implementing and evaluating the recommendations. This iterative process may require experimentation to find the most effective solutions. Additionally, conducting follow-up research post-implementation will allow assessing the recommendations' impact on the developer experience in the longer term.


## Conclusion

Overall, this project has been rewarding and some signicant insights have emerged from it. Sincere thanks are extended to all who contributed to this research. Implementing these recommendations within the existing ecosystem is an exciting prospect. It is firmly believed that by executing these actionable recommendations, the developer experience for everyone involved in Knative can be enhanced, and the bonds that unite the community can be strengthened!