open source.
That depends, Shawn. Are you looking to be a part of an
established project, or to start your own? If you wanted to work with
a well-known team, I'd recommend starting with something like the
phpBB group. You can start off by writing modules and such, and if
you want, get into developing the core application itself.
To develop full applications in open source technology to someone
else's spec would make me very leery.... because there's almost a
guarantee stamped right there that says, "you're doing my work for
free, you're making me rich." And while, to you, it is in the spirit
of open source, overall it defeats the purpose of open source.
The best way to come up with an idea and build a project is to
follow these simple steps:
1.) Stop giving a damn if something similar exists. You may
build a better mousetrap. If developers always said, "no, that's
already been done," there would be just one of everything - from
open-source content management systems to full-blown operating
systems.
2.) Stop thinking about how others will use your work for now.
Be selfish and focus on yourself for a bit. This *does not* mean to
ignore security and good coding practices, or even to ignore
scalability.... only to not think about how others may accept your
work when it's complete. Think of it as doing coding only for
yourself, to make your life easier.
3.) Identify a problem that you experience yourself. For
example, say you work part-time mowing lawns in the neighborhood.
Each property pays you $5 per 100'x100' square per job, with a minimum
of $5 required. You have 29 properties of various sizes that you mow
each summer, and have always done one each day, taking the last day to
scramble and try to be sure all accounts are paid.
4.) Outline how you want your application to work for you. In
the example shown above, you might decide to have an administrative
panel for you to enter the dimensions of each property under a
different profile, with the ability to add users, and then view and
invoice those with outstanding balances. You can then either merge an
existing user-management framework (allowed by license) or write your
own (it's one of the most fundamental, simple things to do). Then you
may want to incorporate payment processing for PayPal and
Authorize.net into that so that you won't have to knock on doors or
drive to the bank.
5.) Use the application yourself for a while and work out the
initial bugs.
6.) Place the code in a package on your own server with an
explanation of what it does. Tell people who may be interested in
using your work what it is, where it is, how to get it, and how to use
it.
7.) You may even want to submit an entry to directories such
as HotScripts (http://www.hotscripts.com/) or my old favorite,
Resource Index (http://php.resourceindex.com/).
Whatever you do, though, before you step into #6 above, be sure
that you've clearly stated under which license you are distributing
your code. Most commonly, of course, will be GPL, LGPL, and BSD, but
you can use any existing license (such as Apache, PHP, MIT, etc.), or
write your own. You may even choose to license your code for
"anything, anywhere" as I do with some of mine (including all
pseudocode) by using Copyleft- or Copycenter-style licensure.