Developers are no strangers to using other third party software. In a world where software development is expensive, the effects of bugs can be nasty, reusing well-tested third party components is the way to go. "Buy over Build" is now the generally the consensus.
What is less clear, among the developers at least, is whether they should invest their precious time into debugging and isolating the products defects, or write articulate letters to request features, or to spend their energies to steer the products into the direction they want. Why, those cynics would ask, should they do something that bring no obvious benefits to themselves, other than a vague hope that one day the product vendors would incorporate their suggestions, fix their problems and respond to their need?
But from my experience, I can't disagree more with those cynics. In my view it's much better to be actively involved in the development of the products that you use, or at least to report the bugs you face. Here are the whys:
- It's good for the software vendors.
Of course, the software vendors benefit the most when you report the bugs or send in feature suggestions. Any sensible companies with a long term goal can't afford to not listen to what the customers say. The more the bug reports, the better tested the software is. If the customers are passive, or silent, the software vendors have a reason to be scared, very scared; the software is either so perfect and feature-complete that there is no complain, which is highly unlikely, or the customers have simply given up using the software or don't bother to report the bugs because "it won't make a difference anyway".
- It's good for other users.
The moment you post your bugs, workarounds, questions or suggestions on a public forum, it's there for other users to discover. And this can be invaluable. How many times you are frustrated by weird behaviors of a particular component, only to be enlightened when you typed in the cryptic error code in Google? If others are not sharing their tips or experience out of altruism, our developers life would be made harder. Much harder. If the vendors act on your reports, you are saving the users from having to lodge the same reports again in the future.
- It's good karma and you are feeling good.
People recognize you if you are a frequent participant. You are recognized as an expert in one particular field. This kind of satisfaction can never be derived from money. You know that by your effort, the world is now a little bit better than before. Maybe you are not saving the world, but you are helping the little guy who's living half a globe away from you. For most of us, that kind of gratification sometimes is enough to keep our mood uplift for a full day.
- It's good for you, yes, YOU!
In addition to Karma, you are also getting an improved version software at the next iteration. Now you can further save your time because the bugs that are hindering you are now removed or because new time-saving features are implemented. Not only that, the experience of isolating bugs and reproducing them can improve you as a developer. Oh, programming jobs are seclusive; but if you are actively posting bugs and feature requests, then you won't feel so lonely, for now you have a community to take care of and to fall back to.
Software development is a complicated task, and we need as much help as we can, from our bosses, families and most importantly, our peers. If we are not going to help each other, if we are not reporting the bugs we saw under the pretense that "we got something else more important to do", it's us who will suffer in the end.