Home > java, rant, software development > Why your open source project isn’t getting attention

Why your open source project isn’t getting attention

August 29th, 2008

Over the last ten years or so I and my family have benefited greatly from open source software.  For the most part Spring and Hibernate have made the biggest direct impact on my career but there have been countless other projects too numerous to name that have helped me along the way.  I have nothing but respect for those folks that work away all those hours to give away something that is useful to other people.  So while I may be a bit blunt and rude here just keep in mind this paragraph.

I have been looking for a place to give back to the Java open source ecosystem for a while now.  In that quest I’ve downloaded and looked over a ton of open source projects.  Most of them suck when it comes to initial buy-in costs on developers who might just want to give some of their time to the project.  There are a lot of us out here that would love nothing better than to help you out on your project if only trying to do so wasn’t so painful.  Let’s take a look at what I’ve seen on where open source projects go wrong and start driving potential contributors away instead of attracting them.  I’m also not going to name the guilty parties (after all these people are honestly working hard on their pet project too) but I will call out one that does a good job.

Your open source project sucks if…

…building the project is so retarded it makes Stephen Hawking cuss
In the last few weeks I’ve pulled source from a ton of projects whose build instructions amounted to:

  1. Pull from SVN/CVS/Mercurial/Bazaar/Git
  2. Dude, ur a hax0rz now!!!!oneelevenone!

Take some time to explain how in the hell a newbie is supposed to get this project up and going so they can starting looking around to contribute.  If I look up after checking out the source and the clock’s little hand has moved while trying to figure out that I was supposed to run “ant build pleasegod -Dtest=john3:16″ to have the initial project actually work then it sucks.  You are bleeding away potential developers because we don’t want to jack around with this stuff.  Clean up your build instructions, automate as much as you can, and put a quick rundown of what needs to be done on the project’s website.  Simple.

Run over and take a look at Seam.  They have a few steps beyond just grabbing the source but it is short, sweet, and it works!  I know some will say that JBoss is paying people to write these instructions but seriously…they’re one freakin’ page long.  One page!  All open source projects should be able to crank out something like that without breaking a sweat.

…source control, issue management, forums / mailing list, and/or automated builds are things you read about once in a magazine
You won’t get people to even download the source to your project if we can’t see that just the basics of having a distributed development effort are in place.  To be honest I’ve only seen this once and I’m not totally sure it wasn’t a joke.  But still, developers looking to join a project really do want these base level tools in place.

…the number of completed builds can be counted on one hand but you need an abacus to keep up with the broken ones
If I, as a developer just walking up on your project, has to tell you that your project’s “nightly” builds are broken and have been for three weeks and it comes as a shock you should quit. I’ve had this happen a few times now and I’m sorta stunned it happened at all. Basically after getting the project up, having a problem, and then wandering out to the automated build reports and finding no working builds I hit the road. This tells us that either everyone on the project is too busy to pay attention to something pretty important or the project itself is dying a slow, painful death.

…if you’ve created the project favoring a particular development environment but don’t tell us
Look, it is your project so you can do what you want when it comes to the tools you want to use.  Build the thing from the menu in Eclipse if that warms your pants (the rest of us will laugh at you though).   But at least tell us about it!  Most of the developers you might actually want do not really give a crap about the development environment that the project is slanted towards.  Some of us might even submit some changes that help out moving it to other environments.  But having spent time trying to force some project into what I could only guess was what tools the dev team decided to use makes me just move on.

…if finding the Ark is easier than figuring out what your project needs
When a potential developer goes to help out on a new project they have no clue what needs to be done, what has been rejected as bad ideas already, or what half of the issues in the issue tracker even mean. Keep an updated - easily found - list of high level “This would be really cool if….” out there. It doesn’t have to be glamorous work since most people getting involved in an open source project understand there is a bit of trust that needs to be earned. Be honest, open, and try saving some the things that look like good learning experiences for those noobs when you can.

…if trying to get familiar with your project’s community is less fun than watching three hours of Carrot Top
Good god, Carrot Top has a fan club.

You’re not going to get people to flock to your project if simply by them simply saying “Hey, I’d love to help out” gets flames in return that would make Gavin King proud.  There are very few open source projects with the inertia that can keep people around when the community stinks that bad.  You need to ensure that while healthy debate can flourish that blatant rudeness is actively discouraged.  If noobs are asking the same questions on the forums/mailing list over and over that’s a pretty good sign to spend some time setting up a FAQ or a sticky post covering that stuff (hell, set it up as a “This would be really cool if….” item).  Most people wanting to join a project really don’t mean to ask the same freakin’ question the last twenty people did.  They just don’t know any better.  Cut them some slack.

Of course, if there happens to be an “inner circle” of people running the project and the rest of us are just passengers on the ship then you probably don’t give a damn about getting new blood into the development process anyway.

So all this adds up to taking a look at your project and actively spending effort to keep the barrier of entry to it low.  Spending a little time fixing these broken windows tells us you really do care about the project and we’ll be understanding when things aren’t going so smoothly in return too.

I’m still looking around to see where I can fit in, help out, and make a difference.  If you happen to have a pet open source project that you think I might be able to lend a hand out on send me an email or leave a comment.  Even if it doesn’t work out maybe I’ll know someone who is a better fit.

Chris java, rant, software development , , ,

  1. chris
    August 29th, 2008 at 10:49 | #1

    If you are doing java development, consider using Maven. The standardization of project layout means many of the issue you bring up fall away. nice!

  2. August 29th, 2008 at 13:48 | #2

    Would you spend a few minutes looking at my project and tell me where I could use some work in terms of getting a first time visitor the information that they want? Thanks!

    http://72miles.com/architecturerules/

    What questions do you have that are no immediately answered?

    ~ Mike

  3. August 29th, 2008 at 14:12 | #3

    Hey Mike, went out and took a look. Wow! That’s an amazingly professional looking site. I looked it over and it seems that you addressed all of the points I mentioned above. :) I went and download the source and had it up and working as a project in Eclipse (with m2eclipse plugin) in about 2 minutes. No problems at all. It was the type of noobie experience that all OS project should aim for.

    On a side note, have you tested the front page in IE7 or Firefox 3? There is a bit of a positional misplacement of a div tag (I think). Looks fine in Firefox 2.

  4. August 29th, 2008 at 14:40 | #4

    Chris. Thanks. I really appreciate the time that you took to review the site, and you really went above and beyond by setting the project up in eclipse. Thanks a ton.

    I’ll investigate the div issues. Thanks again. Cheers.

  5. August 29th, 2008 at 23:01 | #5

    Chris: nice post. I know I’ve got a lot to work on with my various open source projects. I bookmarked this to use as a checklist later.

    I’ve actually put a lot of thought (but not much action, sadly) into methodology for helping future developers get started.

    I have a post about it here:

    http://withoutane.com/rants/2007/07/trailblazing-brickslayer

    To Mike:

    Your site has a huge headline (Assert your architecture!) that hardly means anything. You have to read all the way down to the tiny text in the “More” section to find out what the thing even does. I thin “assert your architecture” would make a great tagline, but the headline ought to convey the benefit: preventing convoluted package dependencies.

    I would have pointed this out to you personally, but you do not have any way to contact you on your page except for the mailing list. Having to sign up for a mailing list just to post a simple comment was also kind of a turn-off.

    (Interesting idea, though!)

  6. August 30th, 2008 at 10:20 | #6

    @Michal
    That is some really positive feedback. Getting to know Mike a bit I know he’ll appreciate it too. I chatted with Mike a bit and I think we totally agree that there is something in the messaging of his project that just isn’t getting through to people. Maybe you’ve got on something there with “Assert Your Architecture” being too formless and vague. We’ll have to see what Mike thinks.

    I admit when I first looked at it I thought it was an add-on to JDepend or something like JDepend++. But after talking to Mike a bit the light went off and I “got it”. In fact it solves a problem I’ve having a work right this moment: being able to detect that the architecture of the application my team is working on is maintained over time as various developers plug away adding code to it. It is a clever idea and bringing that to open source (there are commercial offerings) is excellent.

  7. August 30th, 2008 at 10:33 | #7

    Thanks for taking a look at the site, Michal, and thanks for the feedback. After talking with Chris one on one last night, and reading your comments I am going to have to rethink the landing page and maybe refocus it.

    As for the commenting. I’d really like the comments to go to the user list so that the other community members know whats going on and can get involved in the conversation. That’s the ideal situation. On the other hand, I don’t want to lose out on your valuable comments. I guess I will need to put a contact form up or something. As a side note, I get emails weekly from visitors. Whats funny is they always seem to go to a different email address (I have like eight, but only use one). I don’t even know where people are finding them, heh.

  8. August 30th, 2008 at 10:46 | #8

    I added a new page for individuals like yourself to leave what I would consider “one-way comments.” That is, you want to provide some feedback, but don’t necessarily expect a response. Thanks again, Michel.

  9. August 31st, 2008 at 09:39 | #9

    Great posting! For those who have worked on “good” open source projects I’m sure these tips seem like good common sense, but the simple tips you point out are often over-looked. It’s great to see you referencing Seam here as I feel the team has done a great job in promoting community involvement and really excels in each of the areas you discussed. Of all the projects I worked with, Seam impressed me the most, which is why I got involved ;)

  10. August 31st, 2008 at 13:34 | #10

    @Jacob
    Thanks! I agree that most of the tips are pretty simple stuff. But I was getting frustrated (can you tell?) seeing them broken or missed on so many projects. I’m hoping people will take them in the spirit they are intended and just give their projects a once over to ensure that new people are encouraged to join the project.

    Did I say Seam? I mean Spring…. ;)

  11. August 31st, 2008 at 17:55 | #11

    “I’m hoping people will take them in the spirit they are intended and just give their projects a once over to ensure that new people are encouraged to join the project.”

    Absolutely, I certainly hope so too!

    “Did I say Seam? I mean Spring…”

    LOL! I see how it is.

  12. August 31st, 2008 at 20:28 | #12

    nice new theme.

  13. August 31st, 2008 at 20:52 | #13

    @Jacob
    Aren’t you supposed to be writing a book or something? :)

    @Mike
    Yeah, that green one was making me want to kill.

  14. gary
    September 9th, 2008 at 04:40 | #14

    take a look at red hat’s freeipa (www.freeipa.com) and zivios enterprise management (www.zivios.org) and enlighten us. thanks

  15. September 9th, 2008 at 09:21 | #15

    Gary, on freeipa, I appreciate the sentence “FreeIPA is an … tools” because my first question when I get directed to a site like that is “what the heck is this?” I like that you have a couple sections on contributing and the contribute badge on the left. I don’t see any information about licenses though.

    On zivios you do indicate the license. You could break up “provides identity management, single sign-on, user, group and computer provisioning, as well as remote management of services” into bullets and describe a little further what zivios does for each area, or make them links to a doc that describes them further. I couldn’t find a link to checkout the project from its VCS. Weather its there or not, I didn’t find it. Zivios is an attractive site.

  1. August 30th, 2008 at 12:54 | #1