Open source is great! It's an amazing way to grow as a developer, influence our craft, make friends, build your online resume, and help solve your own and others' problems.
Open source is terrible! Angry issues, ambiguous PRs, pressure to maintain projects you're not using anymore — all start to feel like the worst sort of homework.
Deciding to start and run open source projects is a tough choice — there's no right choice for any person, life context, and project and many people rightfully avoid it.
Here's a few thoughts:
It is a lot of work
Go in expecting this. Some projects start busy and work gradually declines as the project approaches "done". Many others continue to demand more and more work as time passes. It might be fun at first to work all day Saturday on your project but that won't last.
What is your motive?
These are some motives that are strong and sustainable and will
keep things fun and rewarding even when the project feels especially demanding:
- You need the project for your job
- You like making friends with other OSS developers
- You want to innovate and influence the direction of our craft
- You want to solve an annoying problem you keep encountering
- You love learning. OSS projects bring a constant stream of new challenges your way.
Top comments (9)
I think all of these points are not about open source projects at all. Instead, they are only about POPULAR projects, because even closed source projects suffer from these issues. And lesser known open source projects don't suffer from these issues. I have 70+ open source projects I manage across two GitHub accounts currently, but they've mostly been small utilities I've built for myself over the past 20-ish years. I just released a bunch of things open source for 1) historical preservation, and 2) in the off chance someone else may need the same niche utility. But these are not flooded with constant messages, instead sitting almost entirely idle.
Maintaining open source projects for me has actually been very fun and rewarding. I made a deal at my last job that our internal code while under development would be split into "library" (universal code) and "application" (specific to the business). The library is open source, application is closed. Doing this, I've been able to use the library in several personal projects and push it in newer, better directions that have in turn helped out the business overall too.
Similar experience here, 20 odd bits & pieces that a few people have liked and maybe use themselves - no PRs yet :)
At work we're looking to run an 'inner source' mechanism, now that everyone is finally using Git (last projects to stop using Visual Source Safe and CVS were last year), we have some chance. We've not yet picked our private community tooling, probably a Gitlab instance for folks to push shared content into, or indeed public Github for real OSS.
The downsides of OSS definitely come up more with popular projects.
I'll be writing in the future more how many projects can be scoped to avoid these problems e.g. small utilities — or as I wrote 'some projects start busy and work gradually declines as the project approaches "done"'
I'm glad OSS has been rewarding for you!
Ya this more matches my experiences as well!
I have one open source utility that has gotten a tiny bit of niche traction. Enough to get a small handful of issues, and one PR. But the issues came mostly at once when I posted about it, and have died off now. When I said I wasn't sure if I wanted to implement a feature the poster politely asked I consider it, but never pressed me on it again.
Maintaining a popular project is DEFINITELY a whole different beast. But I don't want to scare people away from open sourcing something they made, cause they were worried about about the burden of maintainer-ship. In my experience it's been a minuscule amount of work, and each interaction has showed me that others benefit from the tools I've made, which was my full point in open sourcing to begin with!
I realized that I wanted to make dev.to after dipping my toes into the open-source-maintainer water with a more experimental project.
I'd been very weary of everything you outlined here, so I wasn't interested in the journey if it wasn't the right thing. I learned in my little experiment that open source was indeed a lot of work, but if it's directed at a project you are dedicated to spending a lot of work on no matter what, it is an amazing thing.
Great little summarizing post and I couldn't have said it better myself.
Exactly my thoughts.
I've been thinking about open-sourcing my project but I'm currently a developer intern and working with a non profit org(plus playing cs:go in the weekend) which I'm sure would end up me being burned out faster than what I can imagine.
I might have to try it myself!
Just because it's open source doesn't mean you have to deal with running a community.
The Cranky Developer Manifesto
Jason C. McDonald ・ Feb 8 '18 ・ 9 min read
I've got more that 30 years worth of code lying around in dark corners. Maybe I can open-source it. No one's going to be interesting in Modula-2 code. Or 80s dialects of BASIC.