Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 171 additions & 0 deletions _posts/2024-09-17-pyopensci-sustainability-plan-2024.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
---
layout: single
title: "A Blueprint for the Future: pyOpenSci's Sustainability Model"
excerpt: "pyOpenSci is exploring models to become more sustainable which means bringing in funding beyond just grants. Learn more about what we are exploring here."
author: "Leah Wasser"
permalink: /blog/pyopensci-funding-sustainability.html
header:
overlay_image: images/headers/pyopensci-sustainability.png
overlay_filter: rgba(20, 13, 36, 0.3)
categories:
- blog-post
- community
classes: wide
toc: true
comments: true
last_modified: 2024-09-17
---


## Introduction

Funding is critical to the success of any nonprofit organization. In this blog post, I’ll outline pyOpenSci’s plan to become sustainable. For us, sustainability means having a diverse funding “portfolio” that includes both grants and internally generated revenue sources to support our growth and core activities.

## How funding has propelled pyOpenSci forward

pyOpenSci's real growth and impact began when I received funding from the [Sloan Foundation](https://sloan.org/) which enabled me to dedicate full-time effort to the organization in September 2022. Prior to this, pyOpenSci was mostly a side project for me that I cared deeply about. This full-time commitment, paired with support from a fiscal sponsor, [had profound impact on pyOpenSci's growth and success](what-pyopensci-accomplished-with-two-years-of-funding.html).


<figure>
<a href="{{ site.baseurl }}/images/pyopensci-general/pyopensci-timeline2019-2024.png"><img src="{{ site.baseurl }}/images/pyopensci-general/pyopensci-timeline2019-2024.png" alt="An image titled pyOpenSci timeline. showing key milestones from 2018 to 2024. The timeline is marked with flower icons and a small rocket to represent significant events. Key points include: 2018: Community Meetings Begin, 2019: Software Peer Review Launch,2021-2022: Sloan Funding, Fall 2022: Packaging Guide Rewrite Begins,January 2023: Peer Review Relaunched,Fall 2023: CZI funds pyOpenSci,Spring 2024: pyOpenSci launches training and tutorials. The timeline progresses diagonally from the bottom left to the top right, with a rocket heading toward a bright light in the top right corner."></a>
<figcaption>I founded pyOpenSci in 2018. It was mostly a side effort at the time driven forward by small community meetings and a pilot of a scientific Python peer review process.
</figcaption>
</figure>

For example, our scientific Python [software peer review program](https://www.pyopensci.org/software-peer-review/) significantly expanded after we reopened it in early 2023, following improvements to our governance and documentation. Today, we average 10-14 packages in our review queue at any given time and have 18 volunteer editors and dozens of reviewers who are driving peer review forward.

You can see this profound impact in the plot below.


<figure>
<a href="{{ site.baseurl }}/images/peer-review/pyopensci-python-software-peer-review-growth.png"><img src="{{ site.baseurl }}/images/peer-review/pyopensci-python-software-peer-review-growth.png" alt="A cumulative sum plot with months on the x-axis and number of review issues submitted on the y-axis. The curve starts with a small slope in 2019. Then, around January 2023, the slope becomes significantly steeper, indicating a dramatic increase in submissions when we reopened the peer review. At that point in the plot, there is a label that says 'Full-time funding'."></a>
<figcaption>It is clear the impact that 1) working on our peer review guide and governance plus 2) funding, which allowed me to devote all of my professional time to pyOpenSci, had on our peer review program. It has been incredibly successful in the past year! And true success lies in the hands of the community that leads the review process. Today, on average, pyOpenSci has 10-14 packages in our software review queue.
</figcaption>
</figure>


<!-- CSS FIX quote is 2 diff colors -->

{% include pyos-blockquote.html quote="The Sloan Foundation's early support has propelled pyOpenSci’s growth, creating opportunities that ultimately helped us secure additional funding from CZI." class="highlight magenta" %}

Today, the results of this momentum are clear. pyOpenSci has over **250 contributors** and runs a vibrant global Python software peer review process led by [**18 volunteer editors**](https://www.pyopensci.org/about-peer-review/index.html#meet-our-editorial-board), 74 reviewers, and 78 open source maintainers who live around the world.

### Funding supports beginner-friendly open source sprints

Funding has also allowed us to run events. In the past year, over 51 people have participated in our beginner-friendly sprints, submitting 39 issues and 88 pull requests to pyOpenSci. Many of these pull requests and issues are first-time contributions from folks who were both excited about and nervous about contributing to an open source repository.

Contribution to pyOpenSci overall has also sky-rocketed in the past 2 years.

<figure>
<a href="{{ site.baseurl }}/images/open-source/pyopensci-contributions-by-quarter.png"><img src="{{ site.baseurl }}/images/open-source/pyopensci-contributions-by-quarter.png" alt="Bar chart titled 'Staff vs. Volunteer Contributor by Quarter.' The chart shows counts of contributions made by staff and volunteers from 2018 Q4 through 2024 Q3. Contributions are stacked, with purple representing staff and green representing volunteers. The chart reveals a significant growth in contributions over time, particularly from 2022 onward, with a notable increase in both staff and volunteer contributions in 2023 and 2024. The pyOpenSci logo is in the bottom-right corner."></a>
<figcaption>A bar plot showing staff vs volunteer contributions on GitHub over time. Funding has allowed us to support more volunteer activity over the past 2 years.
</figcaption>
</figure>


### Our Python packaging guide is making a splash

One of our most impactful activities has been the development of our community-vetted Python packaging guide which includes beginning-to-end Python packaging tutorials using Hatch. This guidebook was developed through a truly collaborative effort, where we built consensus around critical packaging decisions that come with numerous opinions around what is "best." In just under a year, our packaging guide's use has doubled, with over 18,000 unique page views in 2024.

{% include pyos-blockquote.html quote="@leahawasser @pyOpenSci clicking through and eventually found myself looking at 'what is a Python package' and involuntarily performed a standing ovation. bookmarked it as an example of great docs for an incredibly complex subject with many meanings in many different contexts" author="Mastodon Toot" class="highlight" %}


Our work has not only made packaging more accessible to more people but also fostered a collaborative and inclusive community of practice where scientists, software maintainers, and Pythonistas hang out, chat about open source and open science challenges, and support each other.


## Diversification of funding sources

Diversifying our funding sources is essential to pyOpenSci's success. We've been fortunate enough to receive two grants.
This runway has given us ~three years to grow and demonstrate impact. As of September 2024, we are ~two years into that runway. We now need funding to become sustainable.

Grant-based funding is tricky as it rarely supports project operations or "maintenance." Our long-term plan is to combine grant funding with paid training and events to support pyOpenSci's operations.

In the short term, we need funding to develop this paid training model and continue developing the governance that allows our free programs, such as software peer review and maintenance of open education lessons, to continue.

More on that below.

## Building sustainability: pyOpenSci's training program

pyOpenSci is building a paid training event program that supports sustainability. This training will be delivered predominately online, but we also will continue to hold in-person events such as the [packaging workshop that we taught at SciPy 2024](/blog/pyos-scipy-2024-recap.html#pyopenscis-first-scipy-tutorial-was-a-huge-success-create-your-first-python-package).

While we will charge for our training, we will be creative to ensure that our events are as inclusive as our community.

We offer scholarships to ensure that our events are inclusive. Scholarships worked well for our [first successful online packaging training event](/events/april-2024-create-python-package-pyopensci-online-workshop.html) and allowed 5 people to attend our training at no cost. For our upcoming Fall Festival (more on that below), we are also developing a similar sponsorship program that will allow companies, organizations, and individuals to support scholarships directly.

### Open education will always be a priority for pyOpenSci

We will also continue to offer free, community-vetted open education resources. If you know me, you also know that I am deeply committed to creating high-quality open education resources. Open education has been a part of every program that I've built (e.g. [https://www.earthdatascience.org](https://www.earthdatascience.org), and NEON Data Skills.

Our [Python packaging guide](https://www.pyopensci.org/python-package-guide/), with almost 80 contributors as I write this, is one successful example of community-vetted open education resources that we have created. It now has thousands of users, hitting nearly 20,000 unique page views so far this year (2024).

## With growth comes a need for governance.

While this growth brings in new contributors and community members, we must create space by creating processes, governance, and documentation around our programs. Doing this well requires require time and resources.

Reflecting on these accomplishments, I am committed to ensuring that pyOpenSci's core programs and vibrant community of practice continue to thrive for years to come. The longevity of our mission hinges on developing a durable sustainability model that enables pyOpenSci to:

* continue supporting the vibrant pyOpenSci community, and
* expand our programs specifically to develop education resources that teach open science, reproducibility, and packaging topics.


### How pyOpenSci allocated funds to support efficient growth

I like to think of pyOpenSc as a scrappy, efficient organization. Scrappy means we are deeply committed to managing our resources as efficiently as possible. We have a small core paid team that optimizes our time and online infrastructure to reduce costs and maximize impact.

We minimize overhead costs by:

* leveraging & building open source tools,
* focusing funds on automating workflows using tools like CI (continuous integration) to reduce manual effort, and
* prioritizing support for essential, high-impact activities that drive our mission forward.

Looking to the future, we will only grow our core team as it aligns with our core budget. This strategic approach enables pyOpenSci to maintain the quality and reach of pyOpenSci programs while building a sustainable future.

### Other non profits have done this well

I am inspired by other organizations that have found their sustainability balance. Organizations such as NumFocus and the Python Software Foundation use events such as:

* SciPy meetings,
* pyData meetings, and
* PyCon US

as core elements of their sustainability models. Community-driven events allow these organizations to build community while funding their core mission, vision, and values.

I am also looking to the membership model that the Carpentries has successfully employed to build core sustainability for their team.

pyOpenSci will experiment to find the balance between freedom, openness, and sustainability in our training program. I'm confident that we will succeed.

## What's next for pyOpenSci - The Road Ahead

Our next training event is the inaugural [pyOpenSci Fall Festival](events/pyopensci-2024-fall-festival.html)--a week-long event that teaches skills needed to:

* write cleaner, more modular code,
* package and share code,
* publish and cite code, and
* create reproducible reports that connect code, data, and outputs into a dynamically produced interactive publication.

During these workshops we will explore the use (and dangers) of using LLM's in the learning and workflow development process. The first day is a set of free, online keynote talks. Be sure to get your ticket before they sell out!

I look forward to seeing you there!

<div class="notice" markdown="1">
## Get involved with pyOpenSci

* support a scholarship (or two) to our [pyOpenSci Fall Festival](events/pyopensci-2024-fall-festival.html)
helpers at our workshops
* if you'd like to get involved with pyOpenSci, check out our [volunteer page](/volunteer.html).

You can also:

* Keep an eye on our [events page](/events.html) for upcoming training events.

Follow us on social platforms:

* [<i class="fa-brands fa-discourse"></i> Discourse](https://pyopensci.discourse.group/)
* [<i class="fa-brands fa-mastodon"></i> Mastodon](https://fosstodon.org/@pyopensci)
* [<i class="fa-solid fa-cloud"></i> Bluesky](https://bsky.app/profile/pyopensci.bsky.social)
* [<i class="fa-brands fa-linkedin"></i> LinkedIn](https://www.linkedin.com/company/pyopensci)
* [<i class="fa-brands fa-github"></i> GitHub](https://github.com/pyOpenSci)

If you are on LinkedIn, checkout and [subscribe to our newsletter, too](https://www.linkedin.com/newsletters/7179551305344933888/?displayConfirmation=true).

</div>
Binary file added images/headers/pyopensci-sustainability.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.