by Flemming Funch
I'm having a little bit of a conflict with myself. See, I believe that the philosophy and practice behind open source software is one of the most powerful and hopeful potentials in the world. Individuals, small teams, large networks doing good things and sharing the results. For a variety of reasons like: it needed to be done; it is fun; other people think you're cool; knowing it is the best way to do things; or just to scratch one's personal itch. The point is that money and greed has relatively little to do with it. But monetary rewards might very well follow from this approach. It all makes sense that the best way of being valuable, and being considered valuable in the world, is to get something useful into as many hands as possible, and making as few barriers as possible to further creativity and improvement.
And, now, one of the roles I've most often played is that of a programmer. I've written a lot of code, a lot of software, some of which has been very useful to others. I've written chat rooms, bulletin boards, calendars, task managers, weblogs, member databases, mailing list managers, website authoring programs, shopping carts, content managers, image manipulation, DNS administration, server monitoring, and probably much more I'm forgetting.
But I've never made a program open source. I.e. I've never created a page that you could download a program from, with installation instructions and documentation. And I've never made any meaningful way for others to contribute to the programs I created. Why not? Well, in part it might be that I still have the remainder of a belief that I somehow would be more likely to be paid if I kept the software close to my chest. Despite that a lot of this was given away freely to use on my server. But, even more, it is probably that I'm a perfectionist and my projects are usually a little too ambitious. Meaning, they were never quite finished to my own satisfaction, so I didn't feel they were ready for prime time. And I had usually made some shortcuts that meant that the programs worked alright when they stayed on my server, and when I could fix any problems that popped up. It takes some additional effort to make software solid and generic enough that somebody can just download it and use it in a somewhat different environment, maybe in ways I hadn't foreseen.
Most successful open source projects start off by doing one relatively limited thing fairly well. They might grow from there, sometimes tremendously, but they usually start by providing a small amount of well-defined functions. I know that very well. But still, I usually end up trying to include everything and the kitchen sink in my plan, so that even if I do something relatively limited, it has hooks into a bigger master plan, which I usually never quite finish. And therefore the individual pieces might not be easy to give away.
I'm considering changing my mind, and picking one of my projects as something I can make limited and solid enough that I can actually export it to other people. Best candidate right now seems to be a program I wrote to easily create databases, which automatically come with online forms submission, admin area, searches, group e-mailing etc. I wrote it first when I noticed that many of the little website database jobs I got were boringly similar. There are some forms on a website people can submit stuff at, and then we keep it in a database, which we need to manage in an admin area, and we might want to send e-mails to people who signed up, etc. That can easily be a few days of work each time. Where really it could be done in 1/2 hour if you didn't have to re-do the same repetitive work.
|
|