Recruitment Options For a Small-Scale FOSS Project? 210
thermian writes "I've been developing my open source project for several years now, and I've never found a solution to one fairly important issue. How can a small-scale project attract new members? My project is pretty specialist, (no URL, sorry, I can't afford to get my server nuked) and I find that while it gets a fair bit of use, most users come to my software out of a need to solve their problem, or use my tutorials to learn about the subject, and none seem inclined to stick around and help make the product better. This is a fairly serious problem for me now, because my software has recently been adopted by a university, and I'm just not in a position to manage the entire set of applications and update everything on my own. Just preparing a version for release to students has been especially hard. The open source maxim 'Many eyes make all bugs shallow' only works if those 'many eyes' are available. So do you have any suggestions as to how, and where, to find people who fancy joining open source projects?"
Suggestion (Score:4, Insightful)
No URL? (Score:5, Insightful)
Is it a computer science related university? (Score:2, Insightful)
Try the University (Score:5, Insightful)
Specifics (Score:5, Insightful)
It's really difficult to give advice without knowing the specifics. For instance, you might have luck adding a plugin system, so that the barrier to entry is low enough for more people to join in without feeling like they have to become a proper developer. But that only works for some types of application.
Personality, and money. (Score:4, Insightful)
No URL == Credibility (Score:5, Insightful)
For some people shameless self-promotion feels very sleazy. Apart from that, not everyone looking for help on their project is going to get a story on Slashdot. His question was probably accepted because it was legit and not just an attempt to tap /. for talent.
If he would have included info about the project there would have been a dozen +5 Funny post that said: "Well for starters you could try posting on /. harharhar."
Personally I find this question interesting an I think it warrants more than "post the link".
Re:No URL == Credibility (Score:5, Insightful)
GSoC (Score:5, Insightful)
It's becoming increasingly more competitive for organizations to become accepted as the program continues to evolve, but any established project with a vibrant user community has the potential to get accepted. Once accepted, Google basically provides an incentive for students to become involved with a project's development by seeding them with a summer stipend. It's a little more involved than that, but that's the gist.
This is the first year BRL-CAD [brlcad.org] gets to participate and I can already say it's looking to be a lot of fun. It forces a project to organize, coordinate, market, and communicate more. It's a lot of work but well worth it
Re:Recruit? (Score:3, Insightful)
The downside is that if the pay ends up being greater than the price for some commercial software, you're screwed. I think this is one of the reasons why many Open Source projects fail. Not large enough userbase.
Perhaps another solution would be offering the software to other universities, and ask for help there.
Re:No URL? (Score:2, Insightful)
Re:Same problem (Score:1, Insightful)
Re:No URL? (Score:4, Insightful)
Back on topic: IMHO the best way to get more interest in the project is to find like minded people. What is your software trying to do/solve? Google something that would find it - post your URL in a few forums. Leave the link in your forum signature with a "looking for developers". Actually do something about getting your stuff out there. An online resume with a link to the software perhaps? There is a hundred ways to get information out to the world. Mostly they just require a little effort.
Yes you can recruit them! I've done it. (Score:5, Insightful)
If you have a user list then quite often a plea for programmers/testers will achieve results. I have done this a few times for my major project and it has always worked.
I also disagree wiht parent that you should have posted the url on slashdot. You would have been slashdotted, for sure, the chances of finding interested developers is low. Most would have just been idle browsers.
A post on your own user list is far more likely to give results since the users have a vested interest in the software and are far more likely to be open to being "recruited".
More support requests *your* problem? (Score:5, Insightful)
Suppose your user base where bigger. Say 100k users. Or 10 million. Could anyone still expect you to help out anyone of those users? Ofcourse not, and in that case these 10M users would be forced to help themselves (to some degree) anyway. The same goes for a university that decides to add X students to your userbase.
Probably it's more a question of why you are working on the project, and what you get from that. Set your own priorities, decide how much time you want to invest, and go from there.
May I suggest you ask the university to do some inhouse filtering of issues/questions (eg. using a local webpage / contact person), and give you a regularly updated 'top 10' list of what they consider most urgent/important.
Do only what only you can do. -Edsger Wybe Dijkstra
Re:No URL? (Score:5, Insightful)
PS: The idea of getting "highly skilled software engineers to work on your project for free" is over. Find a corporate/university sponsor and pay someone - or find a corporate/university sponsor who is willing to donate an engineers time to the project. Or be VERY patient and be happy for a small amount of progress. Many paid engineers work on projects like Linux.
Re:Same problem (Score:4, Insightful)
My point is that there is a myth that "if you build it they will come", it's not true because people want the reputation for contributing to popular projects not my useful but no name projects. It doesn't look as impressive on their CV.
Re:Suggestion (Score:5, Insightful)
Re:Suggestion (Score:2, Insightful)
We all know what Mila Kunis would say. (Score:5, Insightful)
I'm sorry to word this so aggressively, but what the hell are you doing? Open Source does not mean "I am free labor for everyone." Nor does it mean, "I am a doormat, please walk all over me."
Listen, I'm no Linux kernel developer. I'm a poetry guy who was looking for a cheap way to get my poems out in front of eyeballs back in 1994, and coincidentally the Web had just appeared. So I'm only a long-time Web geek at best. And maybe that's not the kind of experience that some would respect. But I've put out probably 100 Open Source products in that time -- 50 phpBB mods, 10 Greasemonkey scripts, 5 Movable Type plugins, and a handful of awful, awful old scripts that nobody should ever use. I'm a father of two with a full-time job, and I've have had 15 year-olds tell me they couldn't be bothered to read the readme, because their time is more valuable than my own. I've had people come to my forums, stomp their virtual feet, and demand that I support them for free in much better fashion. After all, they ask, why did I release a product if I don't intend to add their feature requests and do the installations for them?
Listen, their agendas are not your agendas. Their timetables are not your timetables. And most most MOST importantly, your job is not to be their serving wench. It's not a job at all! Get it straight in your head what you are doing this for. I can't tell you why you do it, but making yourself so stressed out that you have to post on Slashdot begging for help (but not giving out your project name, so you can be an even bigger martyr when it all goes south) IS NOT THE REASON.
You know what I do? I say yes if I can, maybe if maybe, and no if I cannot. And I mean it. Don't make it more than that. Stop feeling obligated. And if you made promises that do obligate you in ways that you cannot meet, it's not the end of the world, but get back to the table and renegotiate. If people blackmail you with statements like "I guess I need another product" or "YOU put it out there, YOU DO IT" then just put that burden right to the side. I don't get bothered that someone might uninstall the app. They're cutting their losses (their lost time) and in the process they cut my losses (of time invested in someone who cannot help himself or herself) too. If you say you cannot build a feature and someone complains, tell them to build it. Seriously. Don't be mean, don't be vindictive, don't be snide. Mean it. If you are stressed and this isn't even your paying job, then draw lines and see who comes to your side. If they don't, then it didn't really matter to them. In which case, you're free to work on what matters to you, in a way that is healthy and sane.
Re:Try the University (Score:3, Insightful)
While I wrote that generic sounding letter, I used Microsoft Vista as a gauge for as the possibly negative things that I was saying about open source. Is Microsoft Vista feature complete? No. They keep adding service packs. Is Microsoft Vista mature? No. It experiences severe configuration issues that thwart usage by organizations who have made the mistake to try to utilize it.
That said, in order to stay general without knowing the name or use of the software tool we are talking about, I think saying "not feature complete or mature" isn't as much a negative as it is an opportunity if the software already demonstrates that it fills a market need that would cause the University to select it in the first place.
But, *sigh* IANAPHB (I am not a pointed-headed boss) so use my specific wording with caution because I will provide NO WARRANTY for a failed solicitation. However, if you would like me to ensure that the University signs a deal to support the project in question, I am sure that you could negotiate a deal with me to utilize my services to write a targeted letter that will knock their socks off. :)
Re:No URL? (Score:2, Insightful)
Re:No URL? (Score:4, Insightful)
Freely available is not effortless. Wish people would stop belittling such complaints. Just because you aren't paying money for something doesn't mean you're not paying in some way. Before using something, I like to have an idea whether it'll pay to go to the effort of learning about it, dealing with its idiosyncrasies, and jumping through whatever hoops are in the way.
Just one amazingly trivial seeming hurdle can be enough to dissuade people. For instance, many people abandoned big newspapers' web sites when they started demanding registration.
There's a lot to "real" software development, whatever that is exactly. Ought to have a web presence, perhaps sourceforge, or perhaps your very own site. You'll want CVS or Subversion over the Internet. Probably need forums, some kind of bug tracking (Bugzilla?), and an IRC channel can't hurt either. Your source probably needs sprucing up to various standards. GNU has a lot on just how the code should be indented and commented. Then there's getting it integrated with automatic build and test software, like make (autoconf and automake) or Ant for builds, and things like Fitnesse and Cruise Control. All this is getting to be a lot of ancillary work for a few developers. But I do agree something has to change if current resources are causing publicity to be a bad thing.
Re:Personality, and money. (Score:1, Insightful)
Personally, I have more respect for him than I would have had he posted a link, yet it was only a matter of time before someone found him and posted a link to his project. Now I look on his project with a view that the leader is a modest, genuine person.
Yes, he could still be an absolute bastard. However, shameless self-promotion isn't always the best way to do things.
Re:Suggestion (Score:3, Insightful)
I would put it very simple to the university, "I appreciate the support, but I need support as well."
Re:No URL? (Score:3, Insightful)
1- Consider how you will show the release - mod_dir, a generated html page, a dymaic htmlpage etc.
2- Consider what you will need (ssh/ftp/web/php/mysql or whatever).
3- a find hosting provider - if you don't know one of hand trwal google for the features you need at a good price that seems reputible.
4- create the html/php whatever for the site (its going to need a few help pages at least), create the server side engine you will need (if needed)
5. Write a shell script to upload
6. Maintain - even the most basic of systems needs some loving - making sure the bills are paid, it isn't hacked, it displays what is is supposed to. May be a very quick task to do so, but it is still an extra task.
Remembering as well that the less work you put into 4, the crappier it will work - mod_dir will work fine but doesn't give any extras - all the details will need to be in the filename and if you release often will become a big list - probably the first in a long series of upgrades will be adding directories. As time goes by you will probably want to add extras, such as release notes, documentation etc. all adding tasks to the initial project.
Alternatively, you go to sourceforge, create your project, add a few blurbs and you are ready to roll. The structure is there for documentation, help, forums etc. to scale as you need (you will probably want to expand to your own site at some point if it grows aqnyway, but at least this can be put of for some time).
Re:he's picking on the birds now! (Score:3, Insightful)
Most big projects are more general-purpose. Everyone needs a text editor or email client. Many people need a database or web server. Programmers are big users of things like text editors, programming language tools, and project management systems. Communications tools like email, IM, IRC, web servers, CMSes, etc. are very popular as projects because of what they are and who uses them.
The best way to find people who have both interest and ability in the areas you need for your project is to find people familiar with the problem and hold their hand getting them up to speed on your code. It's much easier to teach someone with domain experience how the program represents their data and manipulates it rather than to teach a programmer with no domain experience what they need to know for the simulation. You may find some others who already have both sets of knowledge, but they're probably busy people (and might even already be writing competing software).
One thing you might consider is searching for similar projects that are also open source and more or less defunct, and see about merging projects or sharing code back and forth. If you could find another project or two working towards the same goals you might be able to propose a standard data format or compatible plug-in interfaces. That would save a bunch of time for all involved, and would make sharing code in the future even easier.
Real advice (Score:5, Insightful)
Re:No URL? (Score:4, Insightful)