Slashdot Log In
Recruitment Options For a Small-Scale FOSS Project?
Posted by
kdawson
on Sun May 11, 2008 07:54 PM
from the where-is-everybody dept.
from the where-is-everybody dept.
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?"
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Suggestion (Score:4, Insightful)
Re:Suggestion (Score:5, Insightful)
Parent
Re:Suggestion (Score:5, Interesting)
Parent
Re: (Score:3, Insightful)
I would put it very simple to the university, "I appreciate the support, but I need support as well."
No URL? (Score:5, Insightful)
Re:No URL? (Score:4, Informative)
Stephan
Parent
Re: (Score:3, Interesting)
Re:No URL? (Score:4, Informative)
The last time I messed with it it was pretty straightforward. Is it somehow more complicated now than "type in some name/version info for the release, upload a source tarball"?
Well, that and free web hosting for the project site.
Parent
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.
Parent
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.
Parent
Re:No URL? (Score:4, Insightful)
Parent
Re:No URL? (Score:4, Interesting)
No, selecting the file from a list of other recently (an unrelated) uploaded files is part of releasing your software on SourceForge. If you actually maintained a project there you'd know what I'm talking about. (sorry not trying to be rude).
My original point was that some people find SourceForge to be more trouble than it's worth and host their own project on their own server.
Of course you have to upload your file, but, like I said, it can't be automated. Part of being an effective developer is automating redundant tasks, like releasing software. You've hear of ubiquitous automation, right?
I like SourceForge and use it a lot, but there are tradeoffs. "Free" doesn't mean free from criticism.
Parent
Re: (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 go
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.
Parent
Re:No URL? (Score:5, Interesting)
Parent
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".
Parent
Re:No URL == Credibility (Score:5, Insightful)
Parent
Re: (Score:3, Interesting)
Re:No URL == Credibility (Score:5, Funny)
Well I've got a project I'm working right now that I'd love everyone to know the details of. It's really super.
It will be the most secure and robust thing you've ever seen. In fact it will be the BEST thing you've ever seen.
We've got it in the works right now. I've seen the early betas, and it's AWESOME.
It's sort of open-source but not really if you read the fine print. But who reads that?
This will do everything you've always wanted it to do and more. It will literally blow you away.
When we release this thing, everyone will be crapping their trousers about how cool it is and how we managed to sit on it for so long. You really will be so amazed that you will soil yourselves.
Hell YEAH! It's that awesome. Just don't ask us too many detailed questions about what it is or what it does.
Just stick around and wait for the press releases. They'll tell you how incredibly cool our new product is.
Thanks,
Steve BallmerParent
Re: (Score:3, Interesting)
For what it's worth, I've gone into my preferences and set "Funny" to -5. It's amazing how much more palatable Slashdot is once you do this.
Re:No URL? (Score:5, Interesting)
Parent
Re:No URL? (Score:4, Interesting)
Yes I didn't want to trumpet the website itself, it would seem a bit like publicity whoring, but a lot of it was the desire not to cause my friends server that provides the images for the site from going into meltdown. (I could have just removed the images I guess).
When he gets to work and reads his server logs I may need to hide.
Anyway, the question is a general one, not specific to my project I'm sure.
Parent
Re:No URL? (Score:5, Informative)
But without knowing what your project is, it is hard to know what you are doing wrong. Because you probably are doing something wrong if your project is generally useful but noone is willing to help. I also run an open source project (on a really slow site so no link :)) and have gotten quite a lot of code contributions from other people. Here are some tips on what I did to try and attract people. Take it with a grain of salt, I know nothing about nBody modelling.
Presentation is everything! If you can't convey interest to a potential contributor in less than two minutes after they have visited your site for the first time, then you have lost. You need to present your project in the most favorable way possible. You need to show me why I would want to use your code, why I would want to choose your modelling package over any of the hundreds of alternatives. I found no screenshots, no API documentation or tutorials during the ten minutes i spent browsing your project. Just a lot of text. Boooring!
In the same vein as above, you need top quality documentation. And it needs to be very visible. Preferably a front page link. One reason why the parser generator Bison is so popular is because it includes a detailed introduction to language parsing in general. So if you want your toolkit to be popular a good idea is to include an easy introduction to nBody modelling.
Present what your project is capable of doing, or what tasks it is supposed to solve. Can i write a space flight simulator using your library? Can I write a Python wrapper? I don't know.
If I get seriously interested in nBody modelling then I'm likely to want to contact you with questions about the code, bug reports and patches. But your email address isn't available. I know you have an issue tracker but that is no substitute for email. New people often perfer personal communication.
One thing I noticed is that you are using CMake for building, which is cool. But most people aren't as used to CMake as to autotools and make so you need to provide explicit and complete instructions for building your project. It is little details like that that makes your project much more appealing for potential developers.
And last (because it is not so important), use dependencies. For example, if you can use the hash table implementation in glib instead of writing your own. Then do so! You might be able to write a good hash table in less than 400 lines, but by using glib's hash table you just saved yourself from maintaining 400 extra lines of code. There are probably both particle and linear algebra packages you could depend on to make the burden of maintaining your code easier for you.
Parent
Re: (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
Try the University (Score:5, Insightful)
Re:Try the University (Score:5, Interesting)
Emphasis mine... take note of the emphasis.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND , EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
Also from the same source:
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
Here is my suggestion for you. Issue a letter to the university that has adopted your project and lay out a plan for supporting your software that flows a little bit like a business plan.
Dear University,
I have recently noted that you have adopted the use of a F/OSS software program that I am the primary developer for. I would like to thank you for your choice to promote Free and Open Sourced Software and say that I am honored by your selection of my project in particular to serve your needs.
At this time, I feel that it would be appropriate to inform you that this F/OSS project, while it may accomplish all of your needs, is not considered feature complete or mature at the present time. There are a number of features which I feel would benefit your University that I have planned for the next release, but scarce time and a lack of a budget causes progress on this release to move along at a slower than desirable pace. Additionally, due to the unwarrented nature of F/OSS it is appropriate for me to caution you that your use of the software that I have developed is at your own risk (I have done my best to make this software as bulletproof as possible, but undiscovered bugs are known to exist in the most heavily tested software products).
Having said all that, I am greatly interested the opportunity that University use of my F/OSS project presents, and I would like to present a set of possibilities for consideration that would greatly improve my ability to guarantee that you have the most mature, feature-complete software possible in the months ahead.
I hope you will consid
Parent
Re: (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 sayin
Re: (Score:3, Informative)
Forums..... (Score:5, Interesting)
http://code.google.com/p/nmod/ (Score:3, Informative)
Recruit? (Score:5, Informative)
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".
Parent
Re: (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.
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.
Spend More Time Recruiting (Score:4, Interesting)
You may also consider adjusting the amount of time you have to devote to various tasks to increase the amount of time you spend cultivating the ecosystem. For example, if you spend 70% of your time coding, 20% managing documentation / the web site / etc., and 10% of your time with PR, answering user e-mails, reaching out to users, etc., try upping the 10% to 20% or more. Linus' coding chops were only one part of why we've all heard of Linux.
Personality, and money. (Score:4, Insightful)
Re: (Score:3, Informative)
google hosting (mostly but not all)
How much more open then five years under the GPL can I be.
Yes I want someone to share the project, but employ and reimburse? I think you miss the point. I want to find ways of finding people who would want to join in.
Volunteering means they get to choose what they do, not me.
Same problem (Score:4, Interesting)
I have a few developers on one project that have never really contributed anything too, I have tried several methods in motivating them but all I get is the one liner commited from them and then nothing for years.
I wish I had an answer to this problem, but I don't think there is one. Everyone is interested in the popular projects and the rest are left out.
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.
Parent
abandon it (Score:3, Interesting)
Lack of info (Score:4, Informative)
Why did the OP not link to that page? Surely Google can handle a little slashdotting! For those who don't want to follow the link -
This means modelling asteroid/comet motion, spacecraft flight, planetary systems, or stellar cluster/small galaxy systems.
The toolkit contains a Particle Particle nBody model, an OpenGL viewer to display the output of the nBody model, and a number of utilities for generating new projects and editing existing output files.
If you really want people to jump onboard with your project, then you need to publicise it. No point complaining that nobody helps if folks have never heard of it.
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
Just Offer Everyone... (Score:3, Funny)
That'll get 'em for sure! ;)
one possible solution (Score:3, Interesting)
The problem is you want somebody who is qualified to hit the ground running on your project. With the same OSS mindset. Chances are very high that person is already up to their ass in alligators with their own project.
Maybe some sort of cooperative agreement would work. I'll give you 40 hours to work on hyour project if you help me for 40 hours.
Or sommething like that.
Just a thought.
make it easy (Score:3, Informative)
Here are some questions to which it should be easy to find answers:
1. How do I get the code?
1a. Where is the repository, and what type (cvs, svn...)?
1b. What branch/version should I check out?
1c. What external projects/libraries/etc. does it depend on, and how do I get them, and which versions of them do I need? (If allowed by the license, consider hosting a version with your source for one-stop shopping.)
1d. Ideally put this in a step-by-step "for dummies" set of instructions on your project's web page. Or you could make available a script to run that does it all for you - but well-documented so I can figure out what the script is doing and why. Oh, and make sure it works for you if you follow it exactly on a virgin machine!
2. How do I build it?
2a. What language(s) is the source written in?
2b. What compiler(s)/build system(s) do I need, and where do I get them?
2c. Where are the makefile(s)/build files etc. and what does each of them build, exactly?
2d. See 1d.
3. How do I run/use it, and where is the target(s) (executable, shared lib, whatever...) that was built?
4. How can I get help if I need it?
4a. IRC chat is useful, but if most of the developers are on the other side of the world, it would be nice to also have a mailing list to which to post so I don't have to stay up all night. Preferably a mailing list that allows attachments for error output or screenshots.
4b. Ideally your FAQ should actually be made up of questions people have actually asked, especially if they are asked frequently. FAQs rarely do this for some reason - I've often seen the same question asked over and over in help forums, and never answered.
4c. Answer the questions people are asking. Even if the answer is "if you can't figure this out, you don't belong here" - try to phrase that as nicely as you can.
5. What is your process for managing versions and how/when they are changed in your repository?
5a. If you allow checkins of incomplete code, how do I know if I've found a real bug that I should fix, versus something that will be "fixed" when the person working on the feature checks in the rest of it?
I've had trouble finding these answers on small, big, and really big projects.
Those are the ones I can remember having trouble with right now. If you think the answers to these should be obvious, you are looking for programmers who either have experience in all the tools you are using, or who are smarter than me. Which is alright, but either way, it would be nice of you to at least put down a list of required skills and experience, so I don't waste my time trying to help and then give up in frustration.
Thanks for letting me vent.
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.
Start with making your users fix bugs, and .. (Score:3, Interesting)
Set up a wiki and encourage users to document. Use excerpts from forum discussions to build the wiki initially.
You have users for god's sake: that means whether you know it or not, you have a community. If they're nagging at you w/ requests, that means you already have a conversation going. Give them the tools and incentive (that means you stop fixing things alone) to contribute. Involve them. At the very least you can ask them to prioritize the feature requests.
Stop coding now. You're buried too deep to see the bigger picture. (I'm guessing, of course.)
Finally, have fun. If it's no longer fun, either make it fun, or stop doing it.
Real advice (Score:5, Insightful)
- writing better developer-level documentation
- providing a list of "starter projects"
- giving talks and webinars about Amanda's internals
- rewriting parts of the application in a more accessible language (Perl)
- making myself highly available for answers and advice
I've tried to increase investment byMore 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.
- If you want to support the widest possible userbase, then you might work on those issues that *also* affect other users of your project.
- If you put this university first, then you could work their list from the top down.
- If you're just doing it for fun, you could cherrypick from their list whatever issue seems most interesting.
--Do only what only you can do. -Edsger Wybe Dijkstra
Parent
Re: (Score:3, Informative)
> issue, or maybe put a professor with a clue on the job.
Universities don't work that way. If you want one of the profs to assist you, you must engage his interest (Which may be very possible. You might also get a prof to assign you a grad student).