As a user it’s relatively easy to choose between Debian and Ubuntu. Everybody has their own personal preference and it doesn’t take much time to try both. But when it comes to contributing, the time investment is bigger and you might want to think twice about it. Where is your time better spent?
It’s a tough question and there is no right answer that fits everybody. It depends on what your motivation is to contribute.
Ubuntu, better for beginners?
On one hand, you probably started with Ubuntu because it was easier to use. Thus, you have a special relationship with this project and it looks like a good idea to give something back by contributing to Ubuntu. It most certainly is!
Furthermore if you’re not someone that likes to learn stuff (mostly) alone, Ubuntu is probably a better place to be (at least at the start). With the Ubuntu Developer Week and all the work put by the Ubuntu community managers, there is more guidance for the new contributors than what you could find on the Debian side.
Debian, better values?
On the other hand, once you become a regular contributor, you stay because of the community and the values that you share.
Lucas Nussbaum (who is both Ubuntu and Debian developer) has argued in a talk given at the Paris mini-debconf that Debian has better values because it’s a truly 100% volunteer-driven project whereas in Ubuntu there’s a significant influence of Canonical.
This was demonstrated again a few days ago with the story of Banshee and the associated Amazon affiliate revenues. I liked Mark Shuttleworth’s clarifications on the topic, but it’s still a proof that the power of the Ubuntu community has its limits.
Coming back to the topic, and on a more concrete level, in many cases Debian is the right place to contribute even when you really want to contribute to Ubuntu. Whenever you’re working on the 75% of the packages that come straight from Debian, it’s in the interest of Ubuntu to not add any divergence with Debian and thus any improvement or bugfix that you want to include should ideally be included in the official Debian package (or directly upstream).
And doing the work in Debian means that your work benefits more people, it reaches all users of all Debian derivatives (instead of only Ubuntu and its derivatives).
Debian has a clear answer: the Debian Social Contract. If you contribute, it’s usually to pursue this goal of bringing an high-quality universal operating system to users.
On the Ubuntu side, I find that things are less clear. What’s the foundation document that ties people together? The bug #1 which says that Microsoft should not have a majority market share? Or the code of conduct?
Contribute to both
As a conclusion, I would like to point out the obvious. There’s no need for exclusivity. You can contribute to both, like many people do. Just contribute where it makes sense.
To Debian for deep infrastructural changes where divergence ought to be avoided, or when you plan to modify a package that was not yet modified by Ubuntu.
To Ubuntu when you work on packages that are already highly customized (or even forked) or when you work on new experimental projects that could not be made in Debian.
But be aware of the choice, and ask yourself the question whenever you plan to contribute something.
About the author: Raphaël Hertzog is a Debian developer, he works on the package manager (dpkg). He also runs a free monthly newsletter where he shares his analysis of the Debian/Ubuntu news.