People Make Projects Amazing

We have many amazing open source projects today, but none of them were just amazing overnight and none of them would be considered amazing without the people that have and do contribute to them. Projects themselves are good ideas, but its the people behind them that make them amazing.

It Takes One Bad Experience

It's not easy to get people contributing to an open source project, but it's really easy to make sure they don't. When new people try to get involved with a project they're excited and eager to participate. Contacting a mailing list, commenting on a blog post or sending a pull request is the start of a conversation between the project developers and a potential contributor.

Not all opinions or code offered fit a project or the direction a project wants to go in. That's okay, but how this message is relayed makes all the difference in the world.

Newcomer: This project is awesome, but this feature would make it
          better!
Project Developer: No. Bad idea.

This is a terrible response. It's not helpful whatsoever and it will leave the newcomer with a bad taste of the project. He or she may continue to use the project, but good luck getting any type of help from this person down the road.

If the feature (eg: a suggestion or code offered) doesn't fit the direction of the project explain why. If the feature has been declined in the past point the user to the thread. Help them get to where you are.

Here's a better response.

Newcomer: This project is awesome, but this feature would make it
          better!
Project Developer: Glad you like it. We actually have history with
                   this feature request checkout the thread at
                   http://...

The thread may delcine the feature request, but it sheds light on why and shares any meaningful conversations held on the topic. It's helpful, educational and steers any future viewers to the same conclusion. It's a huge win!

Great Goes a Long Way

When I think of amazing projects I think of the great people that have brought them there. Immediately I think of Rubinius, Sass and Compass just to name a few.

All three projects are great ideas, but the people that put their time into the projects really make them amazing.

Recently I've been working on Rubinius and it's been a wonderful experience. My first pull request had working/passing code, but it wasn't quite as they thought it should be. Sergey Nartimov (lest) and Brian Ford (@brixen) gave input and better code suggestions to help bring my code up to par. With changes applied and commits squashed the request was merged in.

It was a great first experience to the Rubinius project and I was excited to do more. Because the team took the time to help me understand what they were looking for, the next three pull requests were merged without a problem.

When I started approaching more challenging areas of Ruby's feature set I needed help so I jumped back into IRC where Brian Ford and Evan Phoenix (@evanphx) continued to extremely helpful. From looking at code with me, sending links to MSpec documentation, or filling out more RubySpecs, they've been doing what they can to make my time coding amazing.

It's experiences like this, I believe, that make a project amazing. And it's the people that make the experience.

It started out with suggestions on a pull request and now I encourage my friends to try Rubinius, show them how easy it is to contribute and I'm writing about it now. A great experience really does go a long way.