Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Contributor Journey Comics #600

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

MarsBarLee
Copy link
Contributor

@MarsBarLee MarsBarLee commented Sep 14, 2022

Numpy_Adventure

To give feedback, use Github Suggestions or Github comments (some examples below).

Continuing the discussion from the NumPy Documentation meeting, this PR exists to

  • invite non-designers into the design process
  • by bringing images onto Github, a popular platform for open source work and discussion

The advantages of this method is:

  • lessen barriers of entry to non-designers
    • e.g instead of linking out to a Figma file and requiring developers to make a Figma account
  • work on asynchronously
  • have version control
  • to centralize discussion of this topic across NumPy community calls

What could be bettered or being discussed is:

  • the workload imbalance, where the designer must do some additional work to translate their work and processes
  • where this comic could live in numpy.org/the internet. This is currently placed in contributing.md
  • how this comic could be expanded and shared to other projects, once we figure out this process specifically for NumPy
  • awkward formatting! The image, image description and script are one long line, as they are one Markdown table row. This long line makes it harder to parse and give feedback to.

The inspiration for this

  • discussion of contributor → maintainer, from the NumPy community call on August 31, 2022. (meeting notes with details)
  • existing design tools for collaboration, such as Figma
    ZzGtp9i

Who I am inviting to this review

  • NumPy contributors and anyone who has opinions on sustaining NumPy
  • Designers, especially from Open Source Design

How I am inviting people

  • Mars will go to various community calls (NumPy, NumPy Docs, Open Source Design) for live, verbal feedback
  • Call attendees are invited to write their comment here
  • Mars will also post consolidated meeting notes and discussion points from these meetings

@netlify
Copy link

netlify bot commented Sep 14, 2022

Deploy Preview for numpy-org ready!

Name Link
🔨 Latest commit 2b1f37a
🔍 Latest deploy log https://app.netlify.com/sites/numpy-org/deploys/6322125011163800099a47b3
😎 Deploy Preview https://deploy-preview-600--numpy-org.netlify.app/contribute
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.


| Panel | Image Description | Copy/Script |
|---|---|---|
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_tracks.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing how different tracks in NumPy" width="500" >}}| A person excitedly holding up a sword. They are standing next to the NumPy logo and the various tracks in NumPy. The tracks are laid in a diverging tree-like pattern. The first track, the "Contributor Track", eventually unlocks the second track, the "Review Track", which unlocks the "Merge Track", which unlocks the last track, the "Maintainer Track". These tracks are represented by dots and the unlocking as keys. Each track is personified with a person wearing a hat. | Choose your adventure! Start as a contributor! Once you gain enough experience, you can become a reviewer! And perhaps with enough experience and mentorship, you can merge PRs. |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_tracks.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing how different tracks in NumPy" width="500" >}}| A person excitedly holding up a sword. They are standing next to the NumPy logo and the various tracks in NumPy. The tracks are laid in a diverging tree-like pattern. The first track, the "Contributor Track", eventually unlocks the second track, the "Review Track", which unlocks the "Merge Track", which unlocks the last track, the "Maintainer Track". These tracks are represented by dots and the unlocking as keys. Each track is personified with a person wearing a hat. | Choose your adventure! Start as a contributor! Once you gain enough experience, you can become a reviewer! And perhaps with enough experience and mentorship, you can merge PRs. |
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_tracks.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing how different tracks in NumPy" width="500" >}}| A person excitedly holding up a sword. They are standing next to the NumPy logo and the various tracks in NumPy. The tracks are laid in a diverging tree-like pattern. The first track, the "Contributor Track", eventually unlocks the second track, the "Review Track", which unlocks the "Merge Track", which unlocks the last track, the "Maintainer Track". These tracks are represented by dots and the unlocking as keys. Each track is personified with a person wearing a hat. | Choose your adventure! Start as a contributor! Once you gain enough experience, you can become a reviewer! And perhaps with enough experience and mentorship, you can merge Pull Requests (PRs). |

Our target audience, newcomers, may not know the acronym PRs.

| Panel | Image Description | Copy/Script |
|---|---|---|
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_tracks.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing how different tracks in NumPy" width="500" >}}| A person excitedly holding up a sword. They are standing next to the NumPy logo and the various tracks in NumPy. The tracks are laid in a diverging tree-like pattern. The first track, the "Contributor Track", eventually unlocks the second track, the "Review Track", which unlocks the "Merge Track", which unlocks the last track, the "Maintainer Track". These tracks are represented by dots and the unlocking as keys. Each track is personified with a person wearing a hat. | Choose your adventure! Start as a contributor! Once you gain enough experience, you can become a reviewer! And perhaps with enough experience and mentorship, you can merge PRs. |
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_maintainers.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing the role and importance of maintainers." width="500" >}} | A contributor with merge permissions is kneeling down, using their torch to light a campfire. Around the campfire are two maintainers. One is excitedly waving their arms, the other watches on proud and serene. | If you feel that fire within you, to keep NumPy going, you can join as a maintainer! It's not a quick or easy path. But it's one worth having. Of course, not everyone should or wants to be a maintainer! You may decide to stay a regular contributor. Or review PRs every now and then. |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe... we can add another illlustration to show how contributors can do different roles, represented by "wearing different hats"? So a contributor wearing the Reviewer bowler hat one panel, then wearing the Merger feather cap in the next panel!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like this:
image
image
One person wearing multiple hats. And then switching them out.

|---|---|---|
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_tracks.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing how different tracks in NumPy" width="500" >}}| A person excitedly holding up a sword. They are standing next to the NumPy logo and the various tracks in NumPy. The tracks are laid in a diverging tree-like pattern. The first track, the "Contributor Track", eventually unlocks the second track, the "Review Track", which unlocks the "Merge Track", which unlocks the last track, the "Maintainer Track". These tracks are represented by dots and the unlocking as keys. Each track is personified with a person wearing a hat. | Choose your adventure! Start as a contributor! Once you gain enough experience, you can become a reviewer! And perhaps with enough experience and mentorship, you can merge PRs. |
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_maintainers.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing the role and importance of maintainers." width="500" >}} | A contributor with merge permissions is kneeling down, using their torch to light a campfire. Around the campfire are two maintainers. One is excitedly waving their arms, the other watches on proud and serene. | If you feel that fire within you, to keep NumPy going, you can join as a maintainer! It's not a quick or easy path. But it's one worth having. Of course, not everyone should or wants to be a maintainer! You may decide to stay a regular contributor. Or review PRs every now and then. |
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_call_to_action.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing different calls to action." width="500" >}} | A person looking at a computer screen which shows a NumPy community call. An icon of Slack. | Your NumPy adventure is yours to choose! And the NumPy community wil be there with you every step of the way! Start your adventure by joining the NumPy Slack! Or join our community call (every 2 weeks, Wednesday at 6pm UTC). For calendars and links, check out: NumPy.org/community |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_call_to_action.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing different calls to action." width="500" >}} | A person looking at a computer screen which shows a NumPy community call. An icon of Slack. | Your NumPy adventure is yours to choose! And the NumPy community wil be there with you every step of the way! Start your adventure by joining the NumPy Slack! Or join our community call (every 2 weeks, Wednesday at 6pm UTC). For calendars and links, check out: NumPy.org/community |
| {{< figure src="/images/content_images/contribute_journey/Numpy_Adventure_call_to_action.png" caption="**NumPy Contributor Journey: Choose Your Adventure!**" alt="A panel showing different calls to action." width="500" >}} | A person looking at a computer screen which shows a NumPy community call. An icon of Slack. | Your NumPy adventure is yours to choose! And the NumPy community wil be there with you every step of the way! Start your adventure by joining the NumPy Slack! Or join our NumPy NewComer Hour, every other Thursday, 2pm UTC. For calendars and links, check out: NumPy.org/community |

I think we should direct newcomers to Newcomers Hour. I think it would be less intimidating.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I disagree. To me the main community calls is the best way in. That way people can better understand how we follow-up and talk about issues, PRs and community events, with active community members.

@rgommers
Copy link
Member

This is really cool, thanks @MarsBarLee!

where this comic could live in numpy.org/the internet. This is currently placed in contributing.md

https://numpy.org/contribute/ indeed seems like the natural place for this, as a single high-level view on what is possible. In case you plan to have other comics which go into more detail, then it'd be a harder question to answer.

@MarsBarLee
Copy link
Contributor Author

MarsBarLee commented Sep 26, 2022

Feedback and Suggestion from NumPy Community Call on Sept 14 (link to archived notes)
Audience: mostly maintainers of various Scientific Python open source projects

  • Zoom out to bigger map with non-code contribution journey
    • Could be a separate map, to not over-complicate the current map
  • Concerns of this depiction of hierarchy
  • Instead of going up like a mountain, maybe a flat plane like a forest? With different paths in the forest
  • Inspiration blog post: Imposter Syndrome in Data Science
    • Expanding spheres of knowledge and influence
    • Continue fire metaphor but rather than put torch to central fire, every person carries own torch and bringing together with other people makes a brighter fire, sphere
    • Horizontal collaboration
  • What if people have different mental models and want to be represented differently?
    • The model we have in reality vs the model we want to move to
    • Maybe show both models? To compare
  • Making invisible process visible with images
    • In conversation, we might have our own assumptions
    • By putting in image in front and asking for feedback, conversation can become more specific
  • Get more feedback across projects
    • Contributor's Handbook?
    • SPEC?

@MarsBarLee
Copy link
Contributor Author

MarsBarLee commented Sep 26, 2022

Feedback and Suggestion from NumPy Newcomers Design Jam on Sept 22

Audience: Newcomers, volunteer contributors and one maintainer. Different audience from NumPy Community Call on Sept 14: not mostly maintainers.

  • How much math is enough math to contribute to NumPy?
    • Math in Engineering course in University =/= Math in NumPy
    • Low level vs high level math
  • Contributing with what you already know
    • Since contributing in free time, limited bandwidth, would like to jump to contributing instead of learning more advanced math... Is this possible? Is there a middle ground?
  • Mars point at the journey map "Unlocks Merge Track" and asked "Do you feel like you are here on this map? Do you feel ready to merge?"
    • Response and Discussion: Maybe. Each project has different needs and process for merging. Can only learn those needs by being part of community
  • NumPy is an mature project: Effects of project's age on starting contributions
    • "I feel scared to mess up, cannot live up to several generations of standards"
    • "I feel that there is more space to make mistakes in newer projects"
    • "I think the "big wins" already taken years ago"
    • Difficult to find a achievable "mission" small enough for newcomers
      • Sprint tagged issues as a mission
      • Flagged optional features for newcomers to "opt in"?
    • If we acknowledge these fixed properties of NumPy (mature project): Would it be better for a newcomer to open source to start with a downstream project?
      • More important for someone to contribute to open source in general rather than get blocked specifically trying to contribute to NumPy
  • Is there a way to "make NumPy young" for contributors?
    • Sandbox mode? A separate branch with less pressures?
      • Difficult to implement with release cycles. What is the relation to main branch?
  • One volunteer contributors starting point: GSOD
    • A structured start with clearly defined goals
    • Had mentors/Point of Contacts for any question
      • Quicker introduction to NumPy community
      • Similar to discussion of maintainer bandwidth: How do we let people know we are open for code-reviews/pair programming while also protecting maintainer bandwidth?
  • How can we take the positive properties of GSOD to NumPy contributor experience, those who don't start with GSOD?
    • Maybe Meekail/@Micky774 "Zones of" is similar, breaking down NumPy into smaller, more digestible blocks?
  • Make clearer that non-code contributions can be a great place to start
    • Taking meeting notes
      • Inessa and Melissa recently added the line to NumPy community call hack.mds, (on Sept 14) “Notes taken by…” in community meeting notes to credit the work of notetakers –> add “co-authored by” in PRs to numpy/archive.
      • Mars highlighted note-taking and NumPy video transcription in recent keynote
  • Bringing in/hiring people with prior relevant experience instead of "starting from bottom"?
    • Similar to ongoing conversation to role of money and sustaining open source projects
    • Students can't become maintainers, but many newcomers are students. However, it takes a long time/commitment to become a maintainer. Who is keeping their eye on role of "NumPy maintainer" for that long?
    • Bring in people with relevant experience
      • "people from StackExchange with high points in answering X project questions"

@MarsBarLee
Copy link
Contributor Author

Thanks @rgommers! I’ve received feedback from two NumPy community calls about this. I’ll keep to https://numpy.org/contribute/, as there’s interest in expanding this to a single high-level view, as you mentioned, to include non-code contributions and be less hierarchal.

@HaoZeke HaoZeke self-requested a review October 6, 2022 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants