I started an open source software project a couple of weeks ago, sort of. It's about as minor as something like this gets -- at least for now. But even at that scale, it's become a learning experience.
The project is a page template for the Movable Type blogging platform, one which lets you crosspost recent entries to a LiveJournal account as well. I came up with it because the crossposting plugins I'd seen for Movable Type all seemed rather top-heavy, and I wanted to come up with something on my own that would let me learn about how to create such things -- and learn a little about the mechanisms involved. (Figuring out LiveJournal's posting protocol alone cost me more time than putting together the guts of the template itself.)
What I've found, even for a project this simple, is that the code isn't the big thing -- it's the maintenance, the documentation, the upkeep. It's having people email you and tell you about some obscure condition that arises out of unplanned interactions between two other things. It's trying to come up with a process for keeping your personal version of the script, with all the tweaks you created for your own personal setup, separate from the version you published. It's suddenly realizing you need to say something about the fact that the template can be a terrible security hazard if not implemented correctly.
And that's all just from one template. I'm barely able to wrap my mind around what it must be like to deal with this for a project the size of, say, Firefox.
The licensing wasn't even the biggest issue. I chose the BSD license mostly for the sake of convenience -- this is not something I ever seen getting big or valuable enough to warrant more than simply having my name associated with it. I might get incrementally more ambitious with it in time -- for instance, I might add interfaces to allow posting across multiple services like LJ, Twitter, Facebook, and so on, all at the click of one button -- but right now, I'm just barely getting my feet wet with the whole thing.
Big project or small, the one thing that strikes me the most now that I have put it out there is my sense of responsibility for it. I use it myself on a daily basis -- like many other pieces of open source software, it was written to address a personal need -- but I'm also aware of how it could be made better for the sake of other people. In the process, I might well be improving it for myself, too, in ways I might never have anticipated. Let's see where this goes.