Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Linux Software

Recruiting Help for Open Source Projects? 35

AsparagusChallenge asks: "Let's say that I do have an open source project. I've setup a CVS on SourceForge, made release announcements on freshmeat, placed a nice webpage and a message board to discuss CVS commits. That said, what's the best way to attract talented people to help with development? I'd like to hear comments from people that have started their own projects and have got more people to work with them. What are the best channels to find volunteers, how to ask for testers, forming a team and so on. Note that I'm not advertising my project; what I'm asking for are general hints."
This discussion has been archived. No new comments can be posted.

Recruiting Help for Open Source Projects?

Comments Filter:
  • by anthony_dipierro ( 543308 ) on Thursday December 19, 2002 @02:36PM (#4924392) Journal
    and people will come
  • You do know... (Score:3, Insightful)

    by Hard_Code ( 49548 ) on Thursday December 19, 2002 @02:37PM (#4924404)
    ...that sourceforge has a "Project Help Wanted" forum, right?
  • Develop a product that people will want to use?
  • by HaiLHaiL ( 250648 ) on Thursday December 19, 2002 @02:39PM (#4924425) Homepage
    If you really want to attract talented people to your project, do some significant work yourself upfront. Get something usable (or at least a proof of concept) working. OSS developers don't want to work on something that they can't be sure will ever come to fruition. How many projects on sourceforge are in "planning" or never come out of alpha?
    • by Malcolm MacArthur ( 66309 ) on Thursday December 19, 2002 @02:51PM (#4924549) Journal
      Stats for reference:
      Development Status

      1. Planning (10899 projects) [28%]
      2. Pre-Alpha (7314 projects) [18%]
      3. Alpha (6611 projects) [17%]
      4. Beta (7936 projects) [20%]
      5. Production/Stable (6062 projects) [15%]
      6. Mature (641 projects) [2%]
      7. Inactive (80 projects) [0.2%]
      Percentages rounded up to nearest whole percentage (apart from the last :).

      I'd say those stats weren't too bad...

  • The classical way (Score:2, Insightful)

    by Anonymous Coward
    Write something good and useful yourself. Document it well, and distribute freely. When people start using it, they will come with feedback. Accept it all gratefully, and give credit where credit is due. At some point people start sending patches. Once you are at that point, consider getting more publicity at sourceforge, freshmeat, and maybe even slashdot. Once people start asking how to help you, you can start to worry about recruiting help.
  • Users are a pain in the ass. Users whining about how you should be coding something doubly so.

    So my advice would be to work on something until it's done enough to do something useful. Then those who want to help will do so. You'll be free to reject what you don't like with the excuse that it doesn't fit into the program. When they complain you can point out that you've written the entire thing.

    And people who just like to give advice without submitting any code should be told to write some code or STFU.

    Harsh, I know. But users are a huge pain, and unless you want to spend all your time managing, you've got to kick all the other cooks out of the kitchen.
  • Ditto (Score:3, Interesting)

    by gmhowell ( 26755 ) <gmhowell@gmail.com> on Thursday December 19, 2002 @02:44PM (#4924473) Homepage Journal
    First, have some code that does something. Anything. A design document is not enough.

    Second, post at the 'help wanted' pages on Sourceforge.

    Three, make sure your project isn't another 'me too' id3 tag generator. Do something original, or go help on an older project.

    Four, Usenet. Go to brewnix.sourceforge.net For a time, I was running this project (but I have no skillz, so had to rely too much on others). I went to all of the Usenet groups appropriate to this project and made an announcement. Really make sure they are appropriate newsgroups. Largely, only geeks still use Usenet, so there are likely some programmers in the appropriate groups.

    Finally, go ahead and tell us what your project is. There are at least one or two programmers on Slashdot. Oh, and put a reference/link to it in your .sig.

  • 2 things (Score:4, Insightful)

    by Derek ( 1525 ) on Thursday December 19, 2002 @02:45PM (#4924485) Journal
    most developers are attracted to a project because:

    1) They think it is cool

    and/or

    2) They need it themselves

    Other than that, you might night to provide some sort of external motivator such as money, hacker respect, networking oppotunity, etc...
  • by gaudior ( 113467 ) <marktjohns.gmail@com> on Thursday December 19, 2002 @02:52PM (#4924560) Homepage
    Are you sure you need to do this project? Is there another project already started somewhere that you could make significant contributions to?

  • I have tried to contribute to more than one open-source project and had the programmer turn down the offer for help or ignore a patch.

    I think one of the reasons that people build open source projects is to prove themselves. The programmers want to be able show someone (a possible employer) what they have done.

    (Although employers most likely want someone who can work with a team more than a "Lone Ranger")
  • by Apreche ( 239272 ) on Thursday December 19, 2002 @03:00PM (#4924631) Homepage Journal
    Let's say your making a linux game. Head over to the linux gaming community, there will be people there who are linux gamers, and also coders!

    If you're making say a media player for windows, find a community of people who are looking for an alternate media player for windows.

    No matter what your project is there is someone out there who will work on it.

    I'm a perfect example. I know how to code, but I'm not involved in any OSS projects. Not because I don't want to and not because I can't. I'm not involved because I'm not actively seeking a project to work on. But if someone came up to me and asked "hey, I saw you in that forum/irc/newsgroup talking about XYZ. You know how to code? cause I got this cool project!" I would probably contribute something to them. Even if it was like a single file of code.
  • posting something here is more than likely to get more than a few willing people to come
  • use news groups

  • All theory, but... (Score:5, Insightful)

    by Jerf ( 17166 ) on Thursday December 19, 2002 @03:21PM (#4924816) Journal
    This is all theory because I don't run an Open Source project myself yet, but I have something that I want to be a successful open source project someday. So I've spent a lot of time thinking about this, and also looking around at what is successful, and these are my thoughts:
    • Have a solid proof-of-concept implementation. You must, on your own, produce something that is usable, by which I mean "can actually do something useful better then anything else", not just "it executes without crashing". Until you have this, you will not be able to attract serious help of any kind. This is easily the hardest hurdle to jump in getting an open source project going. In my case, I've been working on mine for six months and I've probably got another six months to go before I can successfully jump this. But if I released what I have now, it would almost certainly get just a "so-what?" reaction from anybody who took the time to download it.

      This may require a bit of creativity. If you're going to create some sort of stand-alone web server middleware thing, then you need to find the coolest, most unusual aspect of the final design, and implement it inside of Apache, with an eye towards making the code translate easily back to your eventual own server. If you're making a new widget set, you might write a few widgets of your own, but display them inside of a GTK window until you have your own window class. This principle doesn't necessarily mean you need the whole final system in skeleton form (though that's better if you can get it), but you need something that shows you're both serious and capable, which sets you apart from the riff-raff.
    • It must be easy to do the kind of work you are looking for people to do. That's a general principle that must be specialized to whatever it is you are looking for.

      If you are looking for programmers, you must make it relatively easy to add functionality. That means a careful design with strongly seperated concerns is vital. If nobody can pick up your program and twiddle a line without the whole house of cards coming down, nobody will bother with it. If you're looking for graphics help, you'll need to make it easy to add (or change the) graphics in the program without knowing how to use the compiler. If you're looking for documentation help, it must be easy to document the program. (Pick the doc standard, make it easy to add help to the program without knowing how to use the compiler.) Ideally, for all of these, you should include a tutorial of some kind; how to create a plug-in from scratch, a step-by-step guide to changing the title screen's font (hopefully not too many steps, the act of writing the guide will show you what to make easier!), a step-by-step guide on adding help.

      It's not so much the obvious "the easier it is, the more likely it is someone will do it", though that's trye. It's more of a gambling payoff thing; you need your contributors to be able to sit down with your product and experience a "payoff" in the form of an actual improvement as quickly as possible, so that they'll keep working on it.
    • Documentation, damn it! The bastard step-child of Open Source projects. Look, the fact is, anything you want people to do early on is going to require documentation. Maybe you're final product will be so easy to use that nobody will need docs (usually because you're doing Yet-Another-(something) that we all know how to use, like a GUI word processor or something), but to get the project off the ground, you need docs for all of your target users. To an open source development leader, "users" aren't just the people running the program to get work done, those are special users called "end-users". You also have:
      • Programmers. Docs for this bunch means well-formatted and commented code (documenting anything not obvious to someone on first glance), and for any non-trivial project, some sort of overview of the design, ideally detailed enough that someone can read the overview, pick up any source code file, and (in conjunction with the comments) figure out where that source fits into the project as a whole. It probably also means some sort of coding standard for code submitted back to you.
      • Documenters: You'll need an overview of what the program is, and probably a skeleton of the necessary docs.
      • Testers: If you have a testing framework, document it. What, you don't? Get one. Document things that have been problem spots (bugs keep re-appearing), so they can be scrutinized. Make a release checklist.
      Already described some of the docs the artists and such need.
      Note that you only need docs for the groups of people you are trying to attract. In the early phases of an open-source project, you may neither need nor even necessarily want end users. In that case, no need to write docs for them (or at least don't make them public). The only docs the end-users need is "This program is not ready for end-users. Please check back later to see if it's usable.", changed appropriately as you start to need actual beta-testers and stuff. It is a serious mistake for a project to attract end-users before the project is ready, as the users will sap away development time with support needs, with no infrastructure/community to support them.
    • A solid design. I want to mention this explicitly, though it's already strongly hinted at in what programmers need. You need to start with a strong design for the program, because it is likely that the initial design will be in place for a long time. If it sucks, it could even kill a project that would otherwise be very successful. If it's OO, learn what OO means and how to do good OO design, same for any other paradigm you might want to use. The problem is that no contributor, no matter how good, will want to completely rearchitect any project, because they won't know it as well as you and they won't know what will bite them. (In fact, for my project, there are in theory other Open Source projects I could have at least started with, but the designs sucked so horribly they were unsalavagable.) I'm not certain, but it seems like one of my favorite Open Source projects, LyX, has been bogged down the last two or three years trying to re-architect the program into something that can grow again, more-or-less treading water in the meantime (and re-organizing the damn menus every release... but that's another story...). While you're at it, make sure you include hooks for everything that you determined you need, like documentation places and suck.

    Certainly there are successful projects that haven't done some of these things, but I think that's success in spite of bad planning, not because of it.

    Everything boils down to it must be easy to contribute. The number of projects out there bitching because nobody is willing to program for them, when the leader can't be bothered to even format the code decently, let alone comment the code, provide a blue-print for the design, or even have a design in the first place, boggles my mind. It's like the usability folks have found... every barrier to entry knocks away a percentage of people, and any you can remove helps. Even if a hypothetical wizard coder in the language your project is written in can understand your code by reading it for three or four hours and getting the Big Picture, doesn't mean they aren't more likely to join your project if there's a document they can read that gives them the Big Picture in five minutes (leaving them that much more time to actually contribute, or learn something else), for instance, and that goes for everything.

    Too many projects make the mistake of expecting the contributors to jump through hoops to contribute, instead of making it easy. I think it's part of the Open Source hubris that we see so much of. Don't fall victim to it.
  • Thank you everybody (Score:4, Informative)

    by AsparagusChallenge ( 611475 ) on Thursday December 19, 2002 @03:27PM (#4924856)
    >>>Make a really good product...

    I expect to be doing it :)

    >>>Do you know that sourceforge has a "Project Help Wanted" forum, right?

    Well, that's why was I asking. I'd like to hear experiences of other people with that kind of things.

    >>>Get something usable (or at least a proof of concept) working

    Working code ready.

    >>>Four, Usenet.

    That's something I still have to try, thanks.

    >>>go ahead and tell us what your project is

    https://sourceforge.net/projects/elcad/
    Please don't slashdot my poor homepage :)
    I didn't want to appear as simply promoting, but thanks for asking.

    >>>I think one of the reasons that people build open source projects is to prove themselves

    I have high expectations about that project, and can't find the time for fixing autoconf, setting .deb packages correctly, building a user interface, and that's just what I've found until now. I don't think that the "lone programmer" paradigm will be enough for it.

  • Your lack of self-promotional whoring is a breath of fresh air.
  • by stevey ( 64018 ) on Thursday December 19, 2002 @04:32PM (#4925237) Homepage

    I suspect that I got lucky because my project has the magic term 'mp3' in it's title.

    What I did was to start my project, post it to Freshmeat and SourceForge and make regular releases when new functionality was added - this is necessary to make your project known to random people.

    All the time I was developing I was answering emails from users who needed help installing, or tweaking things, and that got fed back into future releases.

    After a few releases it was getting obvious that one or two users were being helpful above and beyound that which I'd expect from a random user. These users were sending patches, playing around with the software in interesting new ways, and asking for very specific features which would be useful to other people - but which I'd not considered at all.

    These were the people that ended up getting write access to my CVS repository, and these are now "my little helpers".

    All of this happened naturally, the only things I really did were to publicise the project itself in my Advogato [advogato.org] diary, freshmeat, and online. If people want software you want to make them find yours - then you want to have something which works well enough for them to use it. If people have a hard time using/installing/understanding your project they'll give up on it very quickly. (Sometimes they'll even refuse to use it again; thinking "Oh I tried that once - it sucked")

    Finally I always asked for help on my projects page - making it clear to visitors that I'd be extremely greatful to recieve code, logos, themes, documentation, and suggestions from users. 99% of people won't give you anything - but the 1% really makes a big difference.

    Three suggestions I'd make to writers of any new software:

    • Think of a 'plugin'/'extension' system early on. If people can add bits to your software, (even if they keep it to themselves) they'll be more likely to like it, and work on it.
    • Think about integrated bug reporting, like Emacs 'M-x report-bug', or Debians 'reportbug' package - that'll save you receiving email which says "Your software doesn't work" with no details.
    • Documentation, documentation, documentation.
    • Finally I guess this is a good point to say thank you to all the people that spared the time to contribute to my project - your contributions are much appreciated :)

  • Focus on the framework. Focus on documenting/commenting the code. Focus on good desgin (OO or otherwise).

    This will make it much easier for new developers to make positive contributions once they do join; that will make them much more likely to stick around. I have seen projects where the code was a mess; who the heck wants to join a team and have to spend most of your time untangling spaghetti or figuring out "what in hell was he doing here"?

  • Anything else is an art. In my experience best contributors range from those that come completely out of the blue to people you know professionally in person.

    Generally, lack of contributors shouldn't be a concern - if it is, then the scope of your project is too big. Keep your scope narrow and goals simple (work on the assumption that you will never get any contributors other than yourself), focus on perfection rather than size or time, and your project will be successful.

  • If most of the end-users -aren't- necessarily
    programmers, they may have a presence outside
    OSS circles (newsgroups, eGroup conferences,
    mailing lists, or even meetings at phys. venues,
    if you have time to travel).

    Join the most populated ones, or those most
    open to your presence &/or input.

    Of course, not all groups welcome geeks,
    for some reason; I include here both:

    - groups with more luddites than technology-
    friendly folks at the helm, and

    - groups that have grown up around a com-
    mercial product, eg sold at near-zero
    cost by a one-person development firm

    The latter comes -close- to the Open Source
    model, since the developer gets -lots- of
    user-feedback, but holds tight onto the
    source-code (often with no succession plan
    in case of the principle's untimely death).

    In each case, one -might- even have to hide
    one's open source orientation, eg in order
    to get more detailed or complete feedback
    from the user community, who may have been
    "trained" (eg by the "worshipped" developer)
    to shun open source advocates, as if they
    were missionaries.

    Even those who see benefit in OSS models
    are likely to remain silent in such groups,
    ie in order to ensure continued support
    from the non-OSS developer.

    We've set up an alternative eGroup & project
    & continued to drop bread-crumbs leading to
    these, for the benefit of open-minded members
    of the non-OSS groups/lists.

    "Softly, softly... catchy monkey" ;-)
  • First you write the program, then you get users. Once you have those two ingredients, only then should you think about a mailing list, a comprehensive project page, public CVS access, registered domain name in the name of the program and so forth.

    If you have no talent yourself, forget about attracting those who do in order to assemble a project out of nothing. You can't do that with an empty web site; the usual custom is to start a software company, get some VC, and pay people.

    Isn't any of this obvious? But then if you had any brains, you would not ``Ask Slashdot''.

    • Well, I was not really asking for the obvious; I was expecting that people that had done that before would tell me how is it done. But you hit on good points anyway; it's good to work on increasing the userbase first.

      And at risk of sounding presumptuous, I DO have talent of my own :)
  • I had a question similar to this, so I started up the Open Software Job Bank [ballsome.com]. Check it out.
  • how do I attract talented people?

    try a LFSP [paulgraham.com]

Business is a good game -- lots of competition and minimum of rules. You keep score with money. -- Nolan Bushnell, founder of Atari

Working...