14

If I contribute some code to an open source project, ought I to continue to work on that project? If I don't have the time to continue as a regular contributor, should I avoid starting?

As an analogy, charities seeking funding often state that one off donations are not useful and they prefer a fixed ongoing regular payment that they can plan around. Does the same apply to contribution of time to an open source project?

19

One-off contributions are the most common type of contribution in open source projects. It would be very disturbing to know that, by running an open source project, I'm spreading guilt throughout the world! Fortunately that's far from the truth.

From experience, one-off contributions are almost always useful, even if about half the time the contributions aren't incorporated as-is. This is because:

  • Contributions come from super-users, users who care enough about the project to reach out with free work. Contributors, through their contributions or follow-up conversations, provide a valuable window into what super-users want out of the project. Open source, and free (gratis) software in general, suffer from this problem where creators are out of touch with users. Unlike paid software, there is no easy trail for creators to find out who their users are and what they're like. Market research is hard. Every contribution is a data point.
  • One-off contributions are usually simple and small, and something I missed despite this. Why? Because it's an edge case I didn't consider. Because it's for a platform I didn't port to. Because it's a hole in my testing procedures. Because it scratches an itch I didn't have. Because it's an issue I wasn't skilled enough to resolve. Whatever it is, addressing it improves the polish of the project. Polish isn't a single feature, it is smoothing out thousands of rough edges, which is better addressed by multitudes of users providing feedback and sometimes contributions.

In my experience, one-off contributions provided much more value than the changeset alone, and they were useful even if I rejected the contribution. Here are some examples:

  • Very minor formatting improvements to the readme. This taught me some Markdown tricks and got me thinking about how to better structure the readme to address its readers, to become a better writer.
  • A collection of bug reports around a common module. This alerted me to some poor code design, which motivated me to perform rewrites, greatly reducing the defect rate of future releases.
  • A number of change requests to the build script. Even though I rejected all these because it turns out they didn't follow the instructions 100%, I eventually simplified the build process.

Without a doubt, one-off contributions helped me steer the project, improving their popularity and usefulness, as well as greatly improving my breadth of skills. If anything, the guilt is all on my end as I had to say no on occasions.

Also, the charity analogy is flawed; I think you've been duped by unscrupulous charities that want to guilt people into donating more. One-off donations are less useful but not entirely without value.

  • An example of a type of contribution that many projects will frown upon: complaining loudly and frequently about bugs or missing features, and when asked whether you can help with these, either by spending time on coding or finding people who can, act like being asked is an unforgivable insult. If you avoid that, any contribution is welcome. – Michael Schumacher Jul 2 '15 at 6:07
  • 3
    @Mureinik If you count by contributions (commits, posts etc), then perhaps more than half won't be one-offs. If you count by contributors, I strongly suspect that most are one-off contributors. This will depend on other things like the size of the project; large projects are more complex and harder to get started, so one-off contributions won't be worth it. Your experience is not representative of all FOSS projects; most are in fact 1-man projects, far from ones that manage to attract corporations. – congusbongus Jul 2 '15 at 6:45
  • @MichaelSchumacher maybe I'm a glass-half-full person about it, but I compare loud and obnoxious users favourably to those who stay silent - at least I'm getting some feedback, even though I need to carefully filter to find the actual need that is not being addressed. If they are being disruptive, I view this as a community management failure rather than those users providing negative value. Even haters can be good for you. – congusbongus Jul 2 '15 at 6:58
6

That highly depends on what kind of a contribution you're thinking of.

If you do something small, like fix a minor bug, add some new documentation, fix some grammar errors, make the code more readable... then you can step away and nobody will probably even notice that you are gone, but they will be grateful that you've made some changes.

If you do something big, like create a new feature or something similar, then the contributors will probably expect you to keep working on it in case something goes wrong. Maybe there will be new bugs because of your feature or your feature needs some additional work.

There are no rules and it highly depends on the rest of the contributors.

  • 1
    One-off bug fixes, in particular, are highly welcome. – Mark Jul 2 '15 at 3:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.