Skip to article frontmatterSkip to article content

Thoughts from the Jupyter team meeting 2019

2i2c
Project Jupyter

I just got back from a week-long Jupyter team meeting that was somehow both very tiring and energizing at the same time. In the spirit of openness, I’d like to share some of my experience. While it’s still fresh in my mind, here are a few takeaways that occurred to me throughout the week.

Note that these are my personal (rough) impressions, but they shouldn’t be taken as a statement from the project/community itself.

Jupyter has a huge and diverse set of users

The first thing is probably unsurprising to many people, but was really driven home at this meeting, is that there are so many Jupyter users our there. These people come from all different walks of life - some are at huge tech companies, some are scientists, some are educators, some are students. Some are from western countries but many are not, some have wealth, some do not. Jupyter (notebooks, anyway...more on that in a second) has really caught fire across a wide slice of society.

This is both a great thing and a challenge. Appreciating the size of the Jupyter user community also made me realize that many of these groups have different motives and goals. Jupyter was originally born out of a mission to serve scientists and educators, to create public goods, and to be a democratizing technology that empowers many different kinds of people in the world. I think Jupyter is still serving this role, but that as the Jupyter user community has grown, the voices of science and education may be getting smaller relative to the gigantic and well-resourced community of “enterprise users”. I hope that we can find ways to balance these interests in the project in a way that keeps Jupyter a project for all.

Jupyter needs to grow its contributor community

While the user-base of Jupyter is fairly large and complex, the community of contributors (people that help in issues, help grow the community, help others use Jupyter, or contribute code to Jupyter tools) needs to grow. We have had a relatively stable group of contributors in the Jupyter ecosystem, but I think we need to foster more “organic” growth with others who jump in and become core parts of the team. As an open project, we depend on the good-will and volunteer time of others who want to join the community and participate. The fact that we haven’t seen a steady growth in contributors (particularly from a pool of people more diverse than the current contributors), tells me that we have a lot of work to do in creating obvious pathways to connect with, and grow within, the Jupyter community.

We spent a morning session discussing diversity and inclusion, reading an excellent slideshow on 10 actionable steps to increase D+I. It was a good reminder that recognizing systemic biases against certain groups of people does not mean abdicating responsibility as an individual to personally create a more inclusive environment. A couple of particular points that I hope we can make progress on in the coming months:

The Jupyter ecosystem needs better explaining

Another topic we discussed was the fact that Jupyter hasn’t clearly explained its technology stack, how everything fits together, what problems it’s meant to solve, and how it interfaces with the outside community. The majority of people think of “Jupyter Notebooks” when they think of Jupyter, but often don’t recognize that there are a lot of pieces under the hood as well (e.g. the Notebook application is both a kernel / server architecture, an underlying notebook document specification / format, and a particular notebook UI).

Jupyter still has challenges in making other major projects more discoverable (e.g. JupyterHub for sharing Jupyter environments on shared infrastructure, or other user interfaces like Jupyter Lab or Nteract). Moreover, the project is also starting to be picked up by companies and projects that are fairly liberal with the use of the “Jupyter” name. Is your tool still “a Jupyter Notebook interface” if it only has the ability to export to a Jupyter Notebook, but uses no other Jupyter tech? I’m not sure - but either way, there should be a clear answer to that question otherwise the project will start to be defined by other people rather than itself.

Governing open projects is really hard

Finally, something I’ve grown to appreciate more over the last year is how difficult it is to balance decision-making, power, and participatory community dynamics in a large, multi-stakeholder, open project like Jupyter. There were a lot of conversations around the current governance model of the project, and how this wasn’t currently serving the community in a satisfying way. As the number of stakeholders in the project grows, their needs may start to move in opposing directions. Keeping a project functional and productive, while still balancing between these needs, is a massive task.

This becomes particularly challenging when the stakeholders in the project have differing levels of resources. For example, Jupyter has always been dedicated to building tools for scientists and educators. However, these individuals are often part of organizations with vastly fewer resources than tech companies. How can we ensure that the voices of these two groups have a balanced weight? If company X decides they want to contribute a new feature the Jupyter Notebook interface, and they put a team of 10 people on it, how does this team interact with the decision-making processes of the Jupyter project? What if the core maintainers are volunteers with limited time to review PRs? What if there are disagreements between the company team’s internal mandate, and what is best for the Jupyter community? Finally, what if there aren’t good channels of communication and processes of decision-making that encourage nuanced, in-depth discussion to facilitate the above points?

From a company’s perspective, there’s always the option of going off and doing your own thing. But Jupyter doesn’t have this option. In its current state, Jupyter’s resources are contrained to the groups that decide to participate. To that extent, a few things that we need to improve:

So there are a few thoughts of my own, and I look forward to seeing how others feel moving forward. There’s a lot happening in the Jupyter ecosystem, and I’m excited to be a part of it.