software engineer, consultant, conference speaker, #tech4good, #stacktivism

Building Resilient Communities (blog post + podcast)

I'm writing this in preparation for an upcoming podcast episode with Sad Girls Python Podcast and in preparation for the upcoming Python CFP season. I've been thrilled to be able to wax poetic about Open Source community, safety and resiliency.


Photo by Markus Spiske on Unsplash

The first talk I've ever given is my favorite talk and I've been polishing it over the years. I looked at the fun 1988 classic film A Land Before Time, where each of the funny dinosaur characters needed to band together to get to their destination, a safe space where they expected lush green leaves to eat and other dinosaurs to make a new home. One of the things I love most about cartoons is that the creators now has the opportunity to take personality traits mimicked in the real world to anthropomorphize inhuman characters; and because they are not human the creators can elect to remove the burden of the behavioral arch and instead opt for imagining how stagnant archetypes react given one scenario or another. Then we related it to software and tending to a community in pursuit of a common goal. In short, the 2018 talk at Wagtail Space looked at the ways people interact with community naturally. I created funny names that were similar to one characters indominable spirit or another character's hard headedness or another's penchant for talking. I used these fun examples as way to identify real areas to provide support and reduce friction in a community. At the end of the day, we are looking to build a resilient, flexible and dynamic community that doesn't rely on a half a dozen people's constant investment to sustain itself. 

That fun analogy keeps popping up as my thoughts on community support and maintenance gets deeper and the concepts more erudite. It even showed up in the presentation for my interview at Microsoft, where I'm now the Python Community Product Manager. How do we build resilient systems? 

I read an interesting thought today on Twitter about how on the burgeoning software scene, Linux and the success of Open Source wasn't a given. Today, all technology is one or two degrees removed from some type open-source technology and an ecosystem designed to support it by self-organizing humans with hundreds of thousands to millions of different and unique motivations that change over time. I've been mulling over is the timetable, mentioned in the tweet, and how it differs from "innovation" in the for-profit, closed source part of our industry. What are the goals of "adoption" and what metrics are we tracking over time? I'm pretty data driven, which is not unique to engineers, but in this fuzzily defined objective we just lose the desire to track because it feels impossible to know. If it's not measured in stars, forks, contributors, lines of code, or subscriptions, pointing to a success metric with an appropriate time table now feels like a daunting task.

I'm on the Board of Directors for the Python Software Foundation, and if the number of requests to PyPI is any indication, Python is in a very healthy (exponentially so) growth period.

I'm on the Core Team for Wagtail CMS, a Django Content Management System, that has had a steady growth over the few years it has been around (since 2016) but we're constantly in conversation on what it means to bring a feature in core -- which is not unique -- but presents uniquely when the growth of opinions goes from a murmur to a consistent chatter and when you're building an opinionated CMS with stylized components (the admin panel) on top of an already opinionated framework -- for perfectionist with deadlines.

At The Root, the organization that created the first Anti Racist Ethical Source License and is working on the Anti Racist Software Developer Kit is in its infancy, and I've taken on the mantle of helping with the developer experience from community to code, which are inextricably linked. We now get to decide expectations on our timetable and build some of these mechanisms for audience reach, audience impact and audience contribution ourselves. 

As I mentioned in the outset, this is me mulling over a few ideas, but I don't have an answer exactly. Time and resources ($$, dinero, l'argent, moola) go hand in hand because funding a healthy project requires attention, aligned incentives and consistency -- and it feels impossible to find that without a full-time staff. I've been finding that with At The Root, as the second half of the year has been tough to jump back into "the work." Thus, my natural inclination is to figure out how to provide money to projects and develop a mental model to divide my time.

It was a pleasure joining the Sad Python Girls Podcast

and I've gotten such warm feedback since it aired. Although I didn't talk about money in open-source software, sustainability and how to define health. I did pose a lot of other questions without answers:

❓How do we know reduce friction for community members?

❓How do we prioritize actions to serve the community?

❓What tools can we use to create safe communities?

❓What communities are doing it right?

Join the conversation!