Skip to content

Commit f8057db

Browse files
MarsBarLeenoatamir
andauthored
[BLOG] Add low-code-workshop (#515)
Co-authored-by: Noa Tamir <[email protected]>
1 parent 2c6b0d1 commit f8057db

File tree

3 files changed

+181
-0
lines changed

3 files changed

+181
-0
lines changed
Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
---
2+
title: 'Low-code contributions through GitHub'
3+
published: September 28, 2021
4+
author: isabela-presedo-floyd
5+
description: "Low-code contribution workshops offer a way for folks to join a project's contributors list without the technical overhead. In this blog we present a workshop format that relies solely on the GitHub web interface."
6+
category: [Access-centered, Community, OSS Experience]
7+
featuredImage:
8+
src: /posts/low-code-workshop/blog_feature_org.svg
9+
alt: 'An illustration of a brown and a dark brown hand coming towards each other to pass a business card with the logo of Quansight Labs.'
10+
hero:
11+
imageSrc: /posts/low-code-workshop/blog_hero_var2.svg
12+
imageAlt: 'An illustration of a dark brown hand holding up a microphone, with some graphical elements highlighting the top of the microphone.'
13+
---
14+
15+
Healthy, inclusive communities are critical to impactful open source projects.
16+
A challenge for established projects is that the history and implicit technical
17+
debt increase the barrier to contribute to significant portions of code base.
18+
The literacy of large code bases happens over time through incremental
19+
contributions, and we'll discuss a format that can help people begin this
20+
journey.
21+
22+
At Quansight Labs, we are motivated to provide opportunities for new
23+
contributors to experience open source community work regardless of their
24+
software literacy. Community workshops are a common format for onboarding, but
25+
sometimes the outcome can be less than satisfactory for participants and
26+
organizers. In these workshops, there are implicit challenges that need to be
27+
overcome to contribute to projects' revision history like Git or setting up
28+
development environments.
29+
30+
Our goal with the following low-code workshop is to offer a way for folks to
31+
join a project's contributors list without the technical overhead. To achieve
32+
this we'll discuss a format that relies solely on the GitHub web interface.
33+
34+
## Case study - collaboratively improving the accessibility of images in documentation
35+
36+
Our successful experiments are based on having new and seasoned contributors
37+
work together to add alternative text representations to images in project
38+
documentation. Each event lasts an hour with the following format:
39+
40+
1. pre-meeting preparation with a project contributor and meeting facilitator
41+
2. a crash course in the specific topic - eg alt text for images
42+
3. an introduction to a collaborative pull request created by a project contributor
43+
4. group working session to suggest changes to specific files assigned in the pull request
44+
5. a short review of the submissions by the core contributor
45+
6. final review by the core contributor to submit a final pull request
46+
47+
Accessibility is a focus for many members of Quansight Labs' team so we've
48+
chosen this prompt to begin testing these workshops. We'd love to hear about
49+
other prompts that may be good for low-code contributions.
50+
51+
### Pre-meeting preparation
52+
53+
Each event relies on a single pull request managed by a project contributor.
54+
We recommend using a fork to reduce noise to other contributors because we
55+
gonna be loud for an hour.
56+
57+
Before the event the contributor makes a pull request identifying files that
58+
need changes related to the prompt, some projects may have rendered
59+
documentation that would also help guide the contributions. The attendees will
60+
use these files to recommend changes to the code landing their aliases in the
61+
GitHub history. The facilitator will add an agenda for the event with learning
62+
materials that will prepare folks for the event.
63+
64+
### The crash course
65+
66+
The crash course is a short lightning talk style introduction to support the
67+
prompt folks will address during the hour. This short talk is important to
68+
prepare folks for the topic, to support contributors we want to remove the
69+
technical roadblocks that distract them from the community.
70+
71+
### Introduction to the pull request
72+
73+
To kick off the work, the core developer walks us through the pull request
74+
they've prepared and introduces different files. For reinforcement, the
75+
facilitator will share their screen to demonstrate the process of recommending
76+
changes to files in a pull request.
77+
78+
### Group work
79+
80+
Together the new and old contributors work together to make changes to relevant
81+
files to improve their quality. These changes are made using GitHub's suggest
82+
changes feature that allows authors to make single line changes to code; a
83+
workflow perfect for alt text.
84+
85+
### Group review
86+
87+
Over 40 minutes several contributors can make quite a few commits. The project
88+
contributor shares their screen to review the suggestions made over the course
89+
of the event. This portion becomes a critique to review the different
90+
contributions made.
91+
92+
### Bringing everything home
93+
94+
All of the work we talked about happened on a contributor's fork. They now
95+
have a pull request withl a gaggle of contributors. Their last job is to
96+
submit the pull request to the mainline project and see the work accepted into
97+
the code base.
98+
99+
## Success stories
100+
101+
Everyone loves an underdog story. What follows are there triumphs of some open
102+
source allies who thought they could run an hour sprint that allowed multiple
103+
folks to contribute to an open source project. Believe it or not, we weren't
104+
lying to ourselves and others. Below we highlight our successes with running
105+
low-code sprints in Jupyter and NumPy.
106+
107+
### Jupyter accessibility group
108+
109+
There is a small group of the Jupyter community focused on the improving the
110+
accessibility of JupyterLab and orbiting projects. We meet every other work to
111+
add small patches and fixes. Currently, we're in the process of organizing
112+
workshops to advocate for accessibility and improve the quality of the entire
113+
Jupyter experience for disabled scientists.
114+
115+
On an off week, between our normal syncs, we tested a low-code format for folks
116+
to participate in the Jupyter project. During an hour, four people were
117+
included in the project by suggesting changes to alt text for images in the
118+
JupyterLab documentation (https://github.com/isabela-pf/jupyterlab/pull/1),
119+
resulting in a collaborative commit to mainline with the help of [@krassowski](https://github.com/krassowski)
120+
and [@isabela-pf](https://github.com/isabela-pf) as champions for the shared
121+
work.(https://github.com/jupyterlab/jupyterlab/pull/10670)
122+
123+
We consider this event a success because we were able to remove `git` as a
124+
technical barrier to entry and support changes from multiple authors.
125+
126+
127+
### [NumPy documentation](https://numpy.org/doc/stable/) new comers meeting
128+
129+
Our fledgling experience in the Jupyter event made us *sort of* confident this
130+
could work for other projects. So we contacted our NumPy accessibility allies
131+
[@melissawm](https://github.com/melissawm) and [@marsbarlee](https://github.com/marsbarlee) to test this hypothesis at the NumPy newcomer's
132+
meetings, which [happen every other
133+
Thursday](https://mail.python.org/archives/list/[email protected]/thread/4EBH3QAH6IR56WJCM7VEL55ACGGK6JKP/).
134+
135+
During the first meeting, @marsbarlee provided a valuable [slideshow on how to
136+
write alt text for scientific
137+
diagrams](https://docs.google.com/presentation/d/150vhbpGrtAc3ALhrS1a07lhEKCgevAY3ITh-4eCndDk/edit?usp=sharing).
138+
Writing alt-text for scientific diagrams in the documentation poses a unique
139+
challenge, as conventional advice for writing alt-text is not sufficient.
140+
Abstract concepts such as mathematics can be difficult to describe visually.
141+
142+
We tackled this in the workshop by comparing different examples, such as how
143+
writing alt-text for a Venn Diagram differs from writing for a bar chart. We
144+
also took cue from the surrounding context of the diagram, such as the code
145+
comments, to find the most relevant information to visually describe.
146+
147+
The progress from the NumPy newcomer's meeting can be seen in this issue
148+
https://github.com/melissawm/numpy/pull/27 . Melissa led the second iteration
149+
of this event to complete more alt text in the main NumPy documentation as well
150+
as beginning to cover [NumPy tutorials](https://numpy.org/numpy-tutorials/)
151+
with a new group of people. By hosting a workshop with another project, we saw
152+
the similar yet different challenges NumPy faced compared to Jupyter,
153+
154+
By working on the NumPy tutorials, which are originally written as Jupyter
155+
notebooks, we faced new questions, such as how to handle rendered live charts,
156+
which are not in still images formats such as JPEG. We faced other types of
157+
media, such as cell input and outputs.
158+
159+
We used a variety of markup languages, including reST, Markdown and HTML, each
160+
with it's own quirks and slight variation in implementing alt-text.
161+
162+
In these two workshops, the community gathered together to create more
163+
accessible documentation across the open-source space, one contribution at a
164+
time. A highlight, to us, is that we provided opportunities for both long time
165+
NumPy fans and high school students to see themselves in history of such a
166+
foundational tool like NumPy. Moreover, attendees were still adding alt text
167+
contributions after the event concluded.
168+
169+
170+
## Conclusion
171+
172+
Using GitHub's suggested change system is a way to support low-code,
173+
single-line contributions to different open source code bases. The event's
174+
collaborative hands-on format offers time for the community to interact in a
175+
meaningful way and see the fruits of their labor immediately.
176+
177+
Please reach out to us if you or your project are interested in running event
178+
like this. We'd love to hear about how this process can work for your events
179+
and project's perspective.

apps/labs/public/posts/low-code-workshop/blog_feature_org.svg

Lines changed: 1 addition & 0 deletions
Loading

apps/labs/public/posts/low-code-workshop/blog_hero_var2.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)