In his now infamous book, The Cathedral and the Bazaar, Eric S Raymond wrote "Every good work of software starts by scratching a developer's personal itch."
- Once you've started scratching does the itch go away?
- Do you reach a point where the itch has gone but the software is not complete.
- If you do what happens next?
Writing a new piece of software can be hard work and time consuming. You slave away at it in your spare time for days, weeks, months and even years until it works the way you need it to.
Then the problems start when you show it to a friend. Who shows it to another friend who shows it to another friend ad infinitum.
Now all these people are really impressed with the piece of software that you wrote, for yourself, and they send you little messages that stroke your ego.
- "Just what I've always needed"
- "You've answered my prayers"
- "Thank you so much"
But then, as more and more people start to use your software, you start to get some other messages.
- "The software doesn't work when I stand on one leg"
- "Could you please add this feature as it is essential for me"
- "Why doesn't it work in my language, all I see is English?"
At first you're happy to fix the bugs and to add the features because it's fun, but over time the demands on your time and your energy increase and it stops being fun.
To make it worse you no longer have the need for the software and the system that you wrote it for originally has changed so your code no longer works.
Now instead of the compliments you are bombarded with messages
- "My business relies on this software, fix it now"
- "When will this be fixed"
- "I've been waiting for weeks and no updates"
So what do you do now?
- Abandon the software, close the web site and stop answering your emails
- Place the software on sourceforge.net in the hope that someone else "might" take it on
- Look for a more positive outcome
One that will allow you to continue to support and develop the software and it's users. As it no longer "scratches your itch" and you have no "personal need" for it this solution surely must include a means to:
- recompense you for your time
- take over some of the drudgery e.g. support, documentation etc
- provide a new "itch to scratch"
So that piece of software might start scratching your itch but end up filling your pockets.