-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
63ebc7c
commit 1a27c7f
Showing
2 changed files
with
48 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,72 @@ | ||
# Enhancing the Knative Experience! | ||
|
||
**Author: Prajjwal Yadav, LFX'24 @ Knative** | ||
**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 mentors [Calum Murray](https://github.com/Cali0707) and [Mariana Mejía](https://www.linkedin.com/in/mariana-mejia-design/). The project aimed to identify challenges within the Knative contributor experience and propose actionable recommendations for improvement. | ||
The participants in this research were the contributors and maintainers of the Knative community. Our goal was to ensure that our recommendations would enhance the overall developer experience for everyone involved with 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. | ||
|
||
## Path to Opportunity | ||
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. | ||
|
||
Last year, I began contributing to open source and after making some contributions here and there, I decided to focus on CNCF projects due to their reputation for supportive communities and excellent learning opportunities in cloud-native technologies. | ||
## Research Overview | ||
|
||
While exploring the [CNCF landscape](https://landscape.cncf.io/), I came across the [LFX Mentorship](https://mentorship.lfx.dev/) program. Among the available opportunities, the [Knative: Contributor Journey Research](https://mentorship.lfx.linuxfoundation.org/project/54afaf17-4dc9-4783-9641-a95b5a33af9e) project intrigued me. With some background in full-stack development, community management, and UI/UX, along with the obvious firsthand experience as an 'early-phase' open-source contributor, I felt I had some valuable insights into the common challenges contributors face. | ||
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. | ||
|
||
The project required drafting a detailed proposal outlining my implementation plan. I focused on making my proposal as comprehensive as possible ([docs link](https://docs.google.com/document/d/10TIymJQ9GpYYRdy3yp9oRMVOSHJ2nkDKqdu_azz8oZg/edit)). With high hopes, I submitted my application, and after the results were announced, I was thrilled to be selected for this exciting opportunity! | ||
We conducted a total of twelve 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. | ||
|
||
## Project Scope | ||
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. | ||
|
||
The central focus of my project was to enhance the contributor experience of Knative through user research, with a specific emphasis on retaining contributors more effectively. Given Knative's complexity, onboarding new contributors requires a significant effort from both maintainers and contributors. However, if many contributors leave after only making one or two contributions, the time and effort of the maintainers is wasted. My task was to identify the reasons behind this contributor drop-off and devise strategies to keep contributors engaged for longer periods. | ||
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. | ||
|
||
The ultimate deliverable was a report detailing the contributor journey and outlining actionable steps to improve the contributor experience of Knative. | ||
### Key Findings | ||
|
||
For more details about the project, please refer to the [LFX Mentorship Page](https://mentorship.lfx.linuxfoundation.org/project/54afaf17-4dc9-4783-9641-a95b5a33af9e) and [knative/ux/issues/98](https://github.com/knative/ux/issues/98). | ||
Through the comprehensive analysis of collected data, we identified several key findings categorized into six main areas: | ||
|
||
## Mentorship Experience | ||
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.) | ||
|
||
After receiving the selection email, I had an initial meeting with my mentors to discuss the project's direction. We decided on a weekly mentoring schedule, with occasional analysis sessions as needed. The early weeks were spent planning the research process and defining goals, objectives, key questions, and hypotheses. | ||
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). | ||
|
||
To kick off the research phase, I sifted through contributor data spanning from January 1, 2023, to February 29, 2024, to pinpoint potential interview candidates. By the end of the third week, I started outlining some interview and survey questions. | ||
During the next phase, we conducted around twelve interviews with different types of contributors, including new ones, active ones, some who used to contribute but stopped (inactive), and maintainers. It was 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 gave us some really good insights. | ||
Following the interviews and initial analysis, I created a developer survey aimed at understanding the wider community's motivations, engagement, challenges, and potential improvements so that we can prioritize our recommendations based on the responses. Unfortunately, this survey yielded only four responses, making it statistically insignificant. | ||
### 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, 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. | ||
|
||
You can find the final report [here](https://github.com/knative/ux/tree/main/user-research/contributor-research). | ||
Any feedback or suggestions on the final report would be greatly appreciated! | ||
|
||
## Insights and Future Trajectories | ||
|
||
This project and mentorship opportunity taught me a lot about open-source, collaboration, community engagement & dynamics, and importance of prioritizing developer experience. It significantly boosted my confidence and communication skills, as extensive community interaction was a major component. | ||
I am deeply grateful to my mentors for their unwavering support throughout this journey, and I thoroughly enjoyed working on this project. | ||
|
||
Moving forward, the next steps involve implementing and evaluating the actionable recommendations. This iterative process will likely involve trial and error to find the most effective solutions. | ||
On a personal note, I am also eager to explore the Knative Eventing project and hopefully contribute to its development. | ||
|
||
## Conclusion | ||
## A Retrospective & Future Directions | ||
|
||
Overall, my journey with Knative has been incredibly rewarding and enlightening. I had the opportunity to interact with numerous remarkable individuals from the community, and I am sincerely thankful to all who contributed to this research. | ||
I am excited to witness how these recommendations will be implemented within the Knative community and I firmly believe that by executing these actionable recommendations, we can not only enhance the developer experience for everyone involved in Knative but also strengthen the bonds that unite us as a community! | ||
Reflecting on this project and the mentorship opportunity it provided, I've gained invaluable insights into open-source collaboration, community dynamics, and the significance of prioritizing developer experience. The rich engagement with the community throughout this mentorship has been particularly rewarding, and I'm really grateful to my mentors for their support. Despite some limitations, our interviews yielded diverse and substantial data. Notably, engaging with three inactive contributors provided unique perspectives that deepened our understanding. | ||
|
||
Our project began with clear goals outlined in the [Introduction.md](Introduction.md), focusing on understanding the contributor journey, identifying retention factors, and uncovering areas for improvement. Through thorough research, we achieved all of these goals, and our objectives, including exploring the onboarding process, understanding contributors' experiences, identifying pain points, etc. were also successfully met. The key questions guiding our 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 us to assess the recommendations' impact on the developer experience in the longer term. | ||
|
||
|
||
## Conclusion | ||
|
||
This experience has definitely deepened my passion for open-source development and community engagement, and I eagerly anticipate continuing my contributions to the Knative ecosystem! | ||
Overall, my journey with Knative has been incredibly rewarding. I had the opportunity to interact with numerous remarkable individuals from the community, and I am sincerely thankful to all who contributed to this research. | ||
I am excited to witness how these recommendations will be implemented within our existing ecosystem. I firmly believe that by executing these actionable recommendations, we can not only enhance the developer experience for everyone involved in Knative but also strengthen the bonds that unite us as a community! | ||
This experience has definitely deepened my passion for open-source development and community engagement, and I eagerly anticipate continuing my contributions to Knative! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters