The universe of CircuitPython is rapidly expanding. This expansion is exciting! So many awesome people and new tech. As it grows, the biggest challenge is maintaining focus. My office and laundry room are full of possibilities and half-finished ideas. In 2020, I hope to improve our focus on the core things that matter, community and access.
These are not new themes at all. Prioritizing community has been my focus over the last three years of CircuitPython. Access is a new name for what I called “workflow” last year, it is a focus on enabling non-CircuitPython users (and hopefully non-coders) to make something helpful.
A focus on community is critical for a healthy open source project. All of us in the CircuitPython community have done a really good job at this so far. Despite that, we need to continue making community a priority because it is hard. It’s easy to think of an open source project as defined by its code and its features. The reality is that projects are defined by the people who work on the code, features, docs, tutorials, inspiration and community. Projects are made up of people that participate and what they contribute.
So, we must continue to focus on each other above all else. Take the time to help someone else. Teach them how to do something you know how to do and then ask them to do it. Not only do they learn something new, you also get another person to help you. It is very stressful to be the only person who knows how to do something. It makes it impossible to step away and relax. So remember, the second person to learn how to do something is the most important.
As a community grows, sharing the load is more and more important to prevent any single person from being over-committed. The node.js community has a great diagram for this. Below is my reproduction of it for CircuitPython. It shows that a healthy community is made up of many people at every level of participation. If any outer level is much larger than the one inside, then all of those folks will be too helping others (or being overwhelmed by them) to the point that it isn’t fun. An unhealthy community is characterized by this imbalance of need versus help.
So, going forwards into 2020 and beyond, think about the things you know and teach someone else. For example, if you know how to review (thank you!), then teach someone who has committed some code fixes how to review others.
The other piece I’d like us to focus on is increasing access to existing *useful* technology. In 2019 we spent a ton of time on Bluetooth Low Energy (BLE) and displays. We didn’t invent any of that tech, we just made it more accessible. Displays are useful for seeing information when no other devices are connected. BLE is useful for interacting with other devices (including commercial ones) wirelessly.
Tech can be a trap though. Sometimes, it’s not actually that useful. Adopting *new* tech is especially prone to this because it hasn’t even been picked up by those with access yet. It can turn out that no one actually has any use for the tech. So, be wary of spending too much time on new tech. Reduce the chance of this by having a specific reason to support new tech. Think ahead to the tutorial (or learn guide) you’d write that uses the tech. Work towards that, not the tech itself.
The last piece of access is access to CircuitPython itself. CircuitPython is cool, useful tech that is only accessible to folks who have a full computer and keyboard. Let’s spend time this year further refining Glider so that folks can access CircuitPython itself from their phone. Along the way we can add better auto-completion support to all IDEs by improving our documentation too! Giving access to CircuitPython to mobile-only folks will allow them to make *all* of the useful things that can be made with CircuitPython now and in the future.
#circuitpython2020 is our annual reflection on the state of CircuitPython. We’d love to hear from you too! See the kick-off post for all of the details. Here are all of the previous posts:
- Two #circuitpython2020 email summaries
- Dan Halbert: thoughts for #CircuitPython2020
- #CircuitPython2020 updates from the Twitterverse
- Wayne W’s #CircuitPython2020
- Adaveach’s #CircuitPython2020
- @tammymakesthings’ Thoughts on #CircuitPython2020
- @ntoll’s #CircuitPython2020
- #CircuitPython2020 email from Stew
- A story of this past year from Melissa and some thoughts on the future on CircuitPython in 2020 #circuitpython2020 @makermelissa
- @sommersoft’s 2020: Year Of The Blinka (v3)
- Mini #CircuitPython2020 posts so far
- Brent’s Thoughts about Python on Hardware 2020 #CircuitPython2020 #IoT
- @deshipu’s #CircuitPython2020
- @theavalkyrie’s thoughts on #CircuitPython2020
- HomeKit in #CircuitPython2020 from @mikeholczer
- #CircuitPython2020 Thoughts from @hukuzatuna
- Jeff’s Ideas for Python on Hardware in 2020 – Time & Timekeeping
- #circuitpython2019 wrap-up post