If you're anything like me you'll frequently come up with ideas for neat applications. For me, turning those ideas into code is the challenge. It's not that I'm incapable of writing code - I have more than enough experience to write simple applications. The problem is that I lack the enthusiasm and energy to complete my projects.
Looking back over the projects I have completed, I notice a pattern. In order for me to complete a project, one of two criteria must be present:
- I need to be paid. Money is a great incentive. Think this is shalow? you're probably right.
- I need to be working with other, like minded individuals. There's nothing more rewarding than working with a bunch of intelligent people who are as excited about the product as I am.
So, getting back to the original problem - how do I turn a half baked idea for an application into an open source project with 2+ developers? Traditionally the process has been something like this:
- Have brilliant mind-blowing Earth-shattering revolutionary idea.
- Start writing code.
- When code gets slightly usable, create a sourceforge project and advertise project page like crazy.
- Hope that some like minded developer notices it and wants to join in.
There are several problems with this approach. First, sourceforge is littered with projects that have 0% activity. These ghost projects have long since been abandoned by all the developers (I swear they're not all mine!).
Second, you only have a chance of attracting new developers to your project after you've written a good chunk of the code. This forces new developers to learn the code that has already been written, and prevents them from offering any input as to programming style, programming language, libraries, code organization, feature list development strategies etc. etc. Personally, I think that one of the best parts of working on an open source project is having the opportunity to makes these kinds of decisions.
It seems to me that what we need is an ideas forge. Imagine a place like sourceforge, but for ideas. There would be facilities for advertising ideas, giving feedback on existing ideas, hosting design documents, holding discussions etc.
Unfortunately, ideaforge is an... idea.. Now all I need are some talented programmers to help me create it....