Slashdot Mirror


How To Find the Right Open Source Project To Get Involved With

An anonymous reader writes Writing on Opensource.com, Matt Micene shares his thoughts on getting started with an open source project. "I came back from OSCON this year with a new fire to contribute to an open source project. I've been involved in open source for years, but lately I've been more of an enthusiast-evangelist than a hands-on-contributor to an open source community. So, I started some thinking about what to do next. When I was involved in projects before, it was due to a clear progression from user to forum guru to contributor. It's a great path to take but what do you do if you just want to jump into something?" Matt goes on to lay out several steps to help new contributors get started.

57 comments

  1. Problem oriented by Anonymous Coward · · Score: 5, Insightful

    Find a problem you want solved, then find the tool that appears to solve the problem. Find out why the tool doesn't solve the problem adequately and improve on it.
    If no tool is available, start a new project.

    1. Re:Problem oriented by Anrego · · Score: 1

      Totally this.

      I guess there is nothing wrong with contributing for the sake of it, but I think it's a lot more fun if you are working on something you care about, or better yet, will directly benefit you.

      Most bug fixes I've contributed were just that, fixes to bugs that were giving me grief.

      Also as someone else mentioned, communicate with the devs first (I like to join the IRC channel) and make sure they are interested in outside help. Most projects are, but a lot of smaller projects the devs don't want to accept patches from others. It's not that they are mean, it's that the project is their baby and reviewing someone elses work can be a chore. Also someone might already be working on the fix you want to contribute, or that whole area could be planned for a rewrite.. so definitely good idea to ask first.

    2. Re:Problem oriented by Anonymous Coward · · Score: 0

      ...rinse and repeat

    3. Re:Problem oriented by TheRaven64 · · Score: 1

      I completely agree. If you try to become involved with an open source project because you think it would be fun, your enthusiasm will likely fizzle out fairly quickly. If you try to become involved with an open source project because you actually want to use it and want want to improve it, then every time that it doesn't do something that you need then you'll find yourself with a project. One of the nice things about a project like FreeBSD (to give an example of a project that I'm heavily involved in - there are others that have this attribute) is that there are enough small parts that it's easy to find small projects in the individual components to keep yourself occupied.

      --
      I am TheRaven on Soylent News
    4. Re:Problem oriented by rasmusbr · · Score: 4, Insightful

      Just remember that you will probably have many moments when you think that the tool doesn't solve the problem adequately, when in reality the tool does actually solve the problem adequately if you know how to use it. The real problem then is that the tool comes with inadequate documentation, or that it needs more or better tutorials and sample projects for novice users.

    5. Re:Problem oriented by hey! · · Score: 1

      I tried this once. I installed a rather obscure open source app that that turned out to be quite useful to me. But it took me a couple days to get to the point where I could do anything useful with it. And I was only able to do that because I can read source code and have lots of software installation and configuration experience. And because I enjoy a puzzle.

      After using the app for a month or two, I thought to myself, "There's got to be thousands and thousands of people who'd benefit from this app, but I bet 99% of the people who try it give up before they have any success. What this project needs is documentation." So I contacted the development team with an offer to write some. I explain that while I'm a developer, not a tech writer, I had written early-adopter oriented documentation for several successful commercial projects, so I knew how to get those people up to speed while the app was still something of a moving target. I also offer to maintain that documentation for at least a year.

      I got back a quite haughty response from the project leader stating that he *might* let me write documentation if I became a regular code contributor to the project. Now I'd assumed that his ideas of what documentation was needed might be different from mine, but it turned out he didn't seem interested in documentation at all. Also the response had a weird, hostile vibe; it was as if I'd asked him for hundreds of hours of his time rather than offered him hundreds of mine. So I thanked him for *his* invitation and declined it.

      I guess the point is that there are other, social dimensions to choosing a project to contribute to. One of them is whether the project even wants what you have to offer. Another is whether the team seems like people you'd enjoy working with. There are some projects, like the Linux kernel, which are so prestigious that you might well take a lot of crap to be a contributor. But most projects aren't like that.

      If you do start our own project, watch the TED video How to Start a Movement.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:Problem oriented by Anonymous Coward · · Score: 0

      Then realize that there are people working on the project who will always shit on your patches. Give up and go back to Windows.

  2. Make sure the project wants you by Anonymous Coward · · Score: 2, Interesting

    There is a utility that I use very often and thought could use a couple of feature additions and bug fixes. I coded these, taking great pains to ensure that my additions were clear, matched the preexisting coding style, and adequately commented. I sent a patch to the utility's developer, only to be told that he works on the project for his own pleasure, but doesn't have the time or inclination to look at contributions from other developers. I suspect that quite a few single-project *nix utilities are like this. Before writing any code, make sure that patches are welcome.

    1. Re:Make sure the project wants you by arielCo · · Score: 3, Insightful

      I thought that's what forking was for - you roll your own version, advertise it, and the original author may be persuaded to incorporate your changes. Worst case, you have two project cross-pollinating (e.g. mplayer / mplayer2 / mpv, ffmpeg / libav, TWiki / Foswiki).

      --
      This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
    2. Re:Make sure the project wants you by Anonymous Coward · · Score: 0

      I thought that's what forking was for - you roll your own version, advertise it, and the original author may be persuaded to incorporate your changes.

      (In my post above, "single-project" should have read "single-developer", sorry.)

      The utility in question was a part of a larger desktop project, though the larger desktop project was content to allow the utility's sole developer to treat this small component as his own little fiefdom. The vast majority of people with this utility installed are getting it as part of the whole desktop, not choosing to install it from Github or wherever. So, there's little point in creating a fork.

    3. Re:Make sure the project wants you by Anrego · · Score: 1

      Sure, you can do this. Just as you can just maintain your own local version and not contribute it.

      But it doesn't give the same warm fuzzies, isn't really worth it for a small bug fix, and there are plenty of projects out there that will happily accept your contributions.

    4. Re:Make sure the project wants you by preaction · · Score: 1

      I tend to fix my own problem and then submit the code anyway. If my dealings with the project are unsatisfactory (and they usually are), I find a new solution to my problem.

      Even submitting bug reports is hit-and-miss regarding appreciating contributions...

    5. Re:Make sure the project wants you by Anonymous Coward · · Score: 0

      The newest trend on larger projects is having a tonne of QA hoops to jump through, which while it improves the quality of the code base and reduces the amount of time the main devs spend reviewing garbage, it also discourages casual contributions from people who quickly fixed a small bug and want to share it.

    6. Re:Make sure the project wants you by Anonymous Coward · · Score: 0

      https://drive.google.com/file/d/0B_feLQAJGt_WbVRjNGM2LWRaOGs/edit?usp=sharing

  3. Wrong approach by Anonymous Coward · · Score: 0, Insightful

    If you have to ask someone else which projects to get involved with, you're doing it wrong.

    1. Re:Wrong approach by Anonymous Coward · · Score: 0

      Thanks for your invaluable input.

    2. Re:Wrong approach by Anonymous Coward · · Score: 0

      If your too dumb or lazy to understand what was said, you're also too dumb or lazy to get involved in an open source project.

      So try thinking rather than simply responding with sarcasm and you might just get it.

      But I'm expecting nothing but another sarcastic reply or whining.

      So don't respond, just STFU and think for yourself.

    3. Re:Wrong approach by Anonymous Coward · · Score: 0

      If you are telling someone their approach is wrong without explaining the right way, you're doing it wrong.

    4. Re:Wrong approach by Anonymous Coward · · Score: 0

      UMAD?

      To be clear, your position is that you disagree with the OP but refuse to explain your dissenting opinion. You lose at rational discourse.

      If your too dumb or lazy to understand what was said

      "Your" is possessive. "You're" is a contraction of "You are". I believe you meant to type the latter.

      In summary, you're wrong.

  4. Developers are users too by mwvdlee · · Score: 1

    If you like the user-to-guru-to-contributer path, but you're not really using any application... think again; IDE's are applications too.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    1. Re:Developers are users too by K.+S.+Kyosuke · · Score: 1

      So are programming language implementations.

      --
      Ezekiel 23:20
    2. Re:Developers are users too by mwvdlee · · Score: 1

      Exactly. Just because you don't use any typical consumer application doesn't mean you're not a user with needs that may not (yet) be fulfilled by the applications you do use.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  5. Join the Haiku OS project by Anonymous Coward · · Score: 0

    The Haiku project is looking for C++ developers for both operating systems work as well as application development. It's a clean C++ operating system with a supporting development team. Check us out! Haiku-os.org.

    1. Re:Join the Haiku OS project by __aaclcg7560 · · Score: 1

      So the 5-7-5 design pattern doesn't work for this particular haiku? :P

    2. Re:Join the Haiku OS project by Anonymous Coward · · Score: 0

      More than OpenBSD has, according to Netcraft.

  6. Join the Haiku OS project by Anonymous Coward · · Score: 0

    How do all five of your users like it so far?

  7. A matter of perspective by lennier1 · · Score: 2

    In my case it was because I'm a lazy bastard. I needed e bug tracking module (exception details are turned into a unified format to report to a bug tracking server) and I came across one that was already 95% of what I wanted, so I simply contributed enhancements until the final 5% were covered.
    The same thing got a former colleague of mine involved in the Firebug project until he became a regular contributor.

  8. establish your reputation first by Noah+Haders · · Score: 0

    why don't you try finding the next heartbleed or shellshock bug. I'm sure if you do that you'll be welcomed on to whatever open source project you want.

  9. fork debian and kill -9 systemd by NemoinSpace · · Score: 0

    If you get on board now, there are few changes that need to be undone. Truth is, most of your work will involve branding and renaming to testing to not_experimenting_on_my_production_servers It will also thwart the Fedora folks from subverting RHEL. You'll have to wait about 18 months for systemd to explode horribly, and for all the fashionable new agers to come running back to you, but the world will thank you.
    After you have secured the server market, you can finally take over the desktop.

  10. How to get paid to work on open source by bzipitidoo · · Score: 4, Insightful

    I'd rather hear about how to get paid to work on open source. The article talks a little about convincing your current employer to donate some of your time to a project. But first, you need an employer.

    Then, your job has to have some down time. I've never had a job in IT with any down time at all. There are always bugs to fix, features to implement, fires to put out, and management to report to. Management is always pushing for more, questioning numbers and estimates or just simply cutting time, to the point that a deathmarch becomes a certainty.

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    1. Re:How to get paid to work on open source by Anonymous Coward · · Score: 0

      Step 1: convince employer that some open source project does most of what you need for some internal task and could be expanded on to meet your requirement
      Step 2: expand on it (at this point you are being paid to work on open source)
      Step 3: convince employer it is far easier to stay compliant with licenses if you just contribute your fixes back (this actually happens between step 1 and 2, but whatever).

    2. Re:How to get paid to work on open source by Anonymous Coward · · Score: 0

      I'd only add that in my downtime, the LAST thing I want to do is look at a computer screen or write code. If I used my spare time to do that, I'd burn out in a week.

    3. Re:How to get paid to work on open source by wrook · · Score: 1

      Not all places are like that. A friend of mine put if very nicely the other day. He said he spent a long time wondering if IT was for him. It seemed really destructive to his life. He came to the conclusion that IT was great. His specific job was not. He started to look for the job he wanted.

      Another wise person once said, "Not everybody needs to be a programmer". You could be a waiter, for instance (not me -- that job is waaay too hard). After 20 years, I took "a year off" to teach English in Japan. I was working 35-40 hours a day. It seemed like part time. I enjoyed my life, got married and even wrote open source software. It was Idyllic. After 5 years of my "year off" (long after I thought I would never return to IT), I suddenly came back. I'm in a great team, working 40 hours a week and having a blast. We're a bit of a crazy team and are extreme, even for extreme programmers. I don't have a huge amount of time at work to write open source software, but I don't work stupid hours and my boss recognizes the value of giving me time to work on my own projects.

      Sometimes it is easy to get trapped in the box thinking that there is only one way forward. Programmers are problem solvers. I don't know exactly what the solution to your problem is, but I feel certain that you can find it if you are creative enough. Don't give up!

  11. try SLASH by slashdice · · Score: 5, Funny

    beta.slashdice manager here. We're desperate for open source (ie, unpaid) programmers. No experience necessary! (or even desired). Make an immediate impact by editing directly on the production servers without testing or pointless code review meetings. Your choice of editors - vi, emacs, ed, pico, joe, or whatever happens to be installed on the server.

    --
    Copyright (c) 1990 - 2014 Dice. All rights reserved. Use of this comment is subject to certain Terms and Conditions.
    1. Re:try SLASH by Anrego · · Score: 1

      On a serious note, what ever happened to slash being open source. At some point they closed it up, but does anyone know when/why?

    2. Re:try SLASH by Anrego · · Score: 1

      ...not that I have any particular interest in the code, having seen the last release of slash, and the current bowl of shit that is beta. I'm more interested in the story behind it.

    3. Re:try SLASH by __aaclcg7560 · · Score: 1

      At some point they closed it up, but does anyone know when/why?

      Probably after Slashdot crashed and taken offline for several days when a 32-bit counter in a database table reached its limit. That was about ten years ago or so.

    4. Re:try SLASH by MikeTheGreat · · Score: 1

      Wasn't it a 24 bit field, not a 32 bit field?

      I remember thinking "24 bits? Really? What were they saving those last 8 bits for - the alpha value?" :)

    5. Re:try SLASH by __aaclcg7560 · · Score: 1

      It could have been a 16-bit field. With the amount of traffic that Slashdot gets, the field was small enough to exceed the limit sooner rather than later. Hence the site crashed. This was an "Oh, doh!" programming moment if there was ever one.

    6. Re:try SLASH by MikeTheGreat · · Score: 1

      16 bits? Dude, that's ridiculous.

      Ok, just so everyone else on slashdot will stop laughing at us I looked it up:

      http://slashdot.org/story/06/1...

      From TFS:

      Last night we crossed over 16,777,216 comments in the database. The wise amongst you might note that this number is 2^24, or in MySQLese an unsigned mediumint. Unfortunately, like 5 years ago we changed our primary keys in the comment table to unsigned int (32 bits, or 4.1 billion) but neglected to change the index that handles parents. We're awesome! Fixing is a simple ALTER TABLE statement... but on a table that is 16 million rows long, our system will take 3+ hours to do it, during which time there can be no posting. So today, we're disabling threading and will enable it again later tonight. Sorry for the inconvenience. We shall flog ourselves appropriately. Update: 11/10 12:52 GMT by J : It's fixed.

      There we go - a 24 bit index caused the crash :)

    7. Re:try SLASH by __aaclcg7560 · · Score: 1

      I tried to search for that story but couldn't find it. Flipping a 16- or 32-bit counter is a far more likely scenario. A 24-bit counter is/was incomprehensible.

    8. Re:try SLASH by MikeTheGreat · · Score: 1

      No worries on the search - I embedded the link to the slashdot stories AND quoted it above :)

      I agree that the 24 bit counter was incomprehensible. Apparently it's a standard choice in MySQL, though, which explains why it's an issue - one can just pick 'mediumint' and bam - 24 bit integer.

      I'm mystified as to why one would want to do that - does MySQL actually pack the integers in such a way as to use those extra 8 bits for something else? On a 32 bit machine you're going to need to either ignore (zero-pack) those extra 8 bits or else extract whatever you put there before every operation (addition, comparison, etc) that you do.

      Anyways - those were good times :)

  12. SlashGrammarBot by ScentCone · · Score: 1

    I recommend a project that auto-edits slashdot headlines to avoid trailing prepositions.

    Poor headline grammar is something up with which we should not put.

    --
    Don't disappoint your bird dog. Go to the range.
  13. Zombie rules are what we shouldn't put up with. by Anonymous Coward · · Score: 0

    How would you re-phrase it? Off the top of my head this seems the most natural, idiomatic way to express it.
    Where did you get the idea that final prepositions are not grammatical English? That's completely incorrect.

    1. Re:Zombie rules are what we shouldn't put up with. by Anonymous Coward · · Score: 1

      How would you re-phrase it? Off the top of my head this seems the most natural, idiomatic way to express it.
      Where did you get the idea that final prepositions are not grammatical English? That's completely incorrect.

      "Involved with right project of open source will you wish"

    2. Re:Zombie rules are what we shouldn't put up with. by iggymanz · · Score: 0

      False, consult a standard grammar book of English and you will find trailing prepositions are incorrect.

      "Find an open source project to involve yourself"

    3. Re:Zombie rules are what we shouldn't put up with. by Anonymous Coward · · Score: 0

      Stupid zombie rule is stupid. Your dogma was invented from whole cloth by John Dryden. It has never been a part of English grammar.
      Your version, on the other hand, is quite probably ungrammatical. You can involve yourself in or with something, but you can't "involve yourself something".

    4. Re:Zombie rules are what we shouldn't put up with. by Anonymous Coward · · Score: 0

      It's a Dice-style headline.

  14. I didn't choose the maintainer life... by darkain · · Score: 1

    The maintainer life chose me!

    My path has always been this: I use various libraries in different client projects that I manage. From time to time, I find certain libraries to have bugs. I fix said bugs, and push the changes back.

    In one instance, since I was basically the only person to push changes to a library in the past two years, the creator put me in charge of the repo for it.

    In another instance, the creator of a project acknowledged a critical bug, yet refused to accept a very simple patch to fix it. Because I had this code used in several major production environments, the only option was then to fork the library and apply my patches. Since then, countless improvements to the library have been made.

  15. You're completely right by Anonymous Coward · · Score: 0

    Whatever you say bro!

    You use big words, never make typoes and are obviously an expert in telling other people how to live their life.

    I'm obviously a completely wrong and have no idea what I'm talking about.

    So fuck me I'm stupid.

    1. Re:You're completely right by Anonymous Coward · · Score: 0

      I've not told anyone how to live their life. I just pointed out how pointless and wrong your vacuous contribution to this discussion has been.
      And while I certainly wouldn't fuck you, I do agree your are stupid.

      You seem very angry. Is it because you are unloved or just unlovable? Perhaps it is both.

  16. Be a code reviewer! by Pope · · Score: 1

    OSS needs more reviewers than new contributors hacking on their pet feature. Heartbleed and Shellshock only ephasize the point. "Many eyes make all bugs shallow" rings false when there are no eyes.

    --
    It doesn't mean much now, it's built for the future.
  17. Make sure the project wants you by maestroX · · Score: 1

    I for one certainly appreciate your bash shellshock patches.

  18. Looking for like minded people by Anonymous Coward · · Score: 0

    I'm kind of an aspie asshole, and I'm looking for an open source project with like minded people.

  19. Attitude, activity, community, codebase by Craig+Ringer · · Score: 1

    After meeting your #1 requirement - finding the project interesting - I'd focus on the attitude and community:

    * Is it friendly?
    * Is the discourse on the mailing lists / forums / whatever generally positive in tone?
    * Is it welcoming to new people?
    * Is there a list of new developer / getting-started tasks, tutorials, documentation, etc?
    * Is there any sort of mentorship program? Or at least a code-review / patch-review process?
    * Is there a well defined process for people without direct commit access to get changes included?

    and the codebase:

    * Is the codebase sanely structured, documented, and commented with a fairly consistent coding style?
    * Does their revision control show disciplined series of commits with good commit messages?
    * Is there a way to report bugs?
    * Is there regular development activity, not just occasional patches?
    * Are commits usually followed by streams of fixups, or do they tend to be reasonable the first time around?
    * Is the complexity level accessible for you - i.e. is it simple enough that you can follow, but complex enough to be challenging and interesting?

    In other words, I'd be looking for something with a healthy community, code that isn't buried in technical debt, with good development practices and a positive attitude.