Introduction
- Growing Open Source Seeds explores different approaches to open source projects, highlighting the evolution and challenges in the community, particularly focusing on the philosophy and sustainability of open source contributions.
This talk emerged from Kenneth's experience maintaining some of the most popular Python packages. His insights into open source sustainability predate many current discussions about maintainer burnout and funding, offering practical wisdom from someone who lived these challenges.
Public vs. Open Source
Public Source:
- Code is released with an open source license, but it may not be actively maintained or developed.
- Often abandoned due to lack of interest or burnout.
Gittip Example:
- An extreme open source project with shared ownership and transparency.
- Major decisions are made through community involvement on platforms like GitHub.
- Represents a "shared investment" model where contributors actively participate in the project's development.
Dictatorship Projects
- Requests as a Dictatorship Project:
- A "Benevolent Dictator For Life" (BDFL) manages the project, making all key decisions.
- While community feedback is encouraged, there is no expectation that it will influence decisions.
- Benefits include quick iteration and maintaining a strong vision, but it carries risks like low bus-factor and high burnout potential.
Kenneth's frank discussion of the BDFL model was controversial but honest. He recognized that while community-driven projects have benefits, sometimes a single vision is necessary to maintain coherence and prevent feature creep.
Lessons in Open Source
Contributors:
- Interactions with maintainers should be respectful and appreciative of their time and effort.
Maintainers:
- Must be thankful to contributors, choose words carefully, and educate users, particularly those new to open source.
Avoiding Burnout
Sustainability:
- Open source is challenging to sustain due to time constraints and the risk of becoming a bottleneck in one’s own projects.
- Emphasizes the importance of purpose, mastery, and autonomy in maintaining motivation.
Delegation:
- Leveraging a team to handle issues and pull requests can help maintainers focus on larger issues, improving sustainability.
The Power of Saying No
- Simplicity Over Functionality:
- Maintain simplicity by rejecting features or pull requests that add unnecessary complexity.
- Simple code is easier to maintain, while complex code leads to technical debt and higher maintenance burdens.
The power of saying "no" became a central principle in Kenneth's approach to open source. This philosophy helped Requests maintain its elegant simplicity despite thousands of feature requests, proving that restraint can be more valuable than addition.
Conclusion
- Open Source Philosophy:
- Open source should make the world a better place without adding unnecessary complexity.
- Focus on simplicity, sustainability, and maintaining a clear vision to ensure long-term success in open source projects.
These principles of ethical open source development evolved into deeper understanding of programming as spiritual practice, treating code creation as conscious service to human flourishing rather than mere technical achievement.