Starting an Open Source Project?

Since 2001 or so (according to SourceForge) when I got involved in Open Source, I've joined a handful of projects and had roles varying from a general advisor/reviewer to Core Developer to Newbie Wrangler. Yes, that last one was an actual title. But the interesting thing is that I've never started an Open Source Project myself. I've worked with projects that were established, already had communities (some quite small), and already had some structure in place. Recently, a number of opportunities have come to light and one of the interesting ones – but not the most interesting one – involves preparing a small application for release as Open Source… so I find myself considering and evaluating what it would take.

First, I'm a firm believer in that it must be useful now. As great as SourceForge is, I'm not willing to add yet another project that has a grand vision that doesn't do anything. That said, it doesn't need to be perfect. I don't think the application needs to do everything and fully encompass the entire vision in the first release… but it needs to do something useful immediately.

Second, I believe the project has to have somewhere to go. If the first release covers the entire roadmap, it's a development success, but doesn't seem like a good Open Source candidate. In this case, having active users will help you define what the next steps are (and potentially do them), but you may still want to have ideas to seed the discussion.

Next, the code needs to have a certain level of quality. Sometimes I cringe when I look at code I wrote years ago or under a tight deadline or worse yet when both are applicable. I'm never quite sure what I'm going to get and I can't help but think "well, that was dumb!" So what level of quality is required? Not a clue… but it can't be embarassing. That will vary from person to person. I'd also check for some basic security, etc here. If it's compromised moments after release, this sounds like more of a liability as opposed to a project.

Finally, I think some company's cast off project is a bad idea. I don't know how many times I've heard about a company losing market share, considering killing a failing product line, and what's the answer? Open Source it! Bzzt. Wrong. If your customers don't want it, odds are that the community doesn't want it. Yes, most likely some of your customers will want the code to customize and expand upon, but they're going to pursue their goals, not necessarily yours…

What do you think? What are your critieria for starting or joining an Open Source Project?

Are you interested in API Design? Check out our new book "A Pragmatic Approach to API Design." In it, we cover the basics on why you might need an API, how to get started on modeling your API, and finally some design patterns and anti-patterns to be aware of. Available soon from LeanPub