Pay It Forward was a 2000 romantic drama featuring Kevin Spacey, Haley Joel Osment, and Helen Hunt. Decently well-received, I found it a good, heart-warming, thought-provoking movie.
It is also an allegory for how open source works.
In the movie, Osment's character, Trevor, is an earnest high school student that is given a assignment by his teacher, Spacey: Do something that will change the world. Trevor comes up with the idea of doing three major good deeds for people, with the expectation that each of them will then not do something good for him but "pay it forward" to three other people, who in turn will do the same for someone else, and on down the line. His plan doesn't quite go as he intends but has more impact than he expected in ways he perhaps didn't imagine, changing lives and bringing together people and families that had been estranged for years, even among people he's never met.
A moving story and a movie I highly recommend, but it also is, in a sense, the exact model on which Open Source software works.
When you work on an open source project or release code under a Free Software license you are doing something for someone else. Someone you don't know, and who probably doesn't know you, is going to benefit from your actions. You may yourself benefit from the work you do, but so will other people that have not done anything for you. And that is the very point.
If one person does that, the world takes advantage of them. If a thousand people do that, you get Drupal. Or Linux. Or Apache. Or Firefox. Or the KDE desktop. Or, really, all of them combined. Every one of those projects is the result of thousands of people paying it forward, to each other and to you. The net result is a robust, healthy environment of quality code and, more importantly, a culture of sharing and mutual-support, even across projects.
In my day job, I work with Drupal. I've written tons of code for Drupal, both core and contrib, as have my colleagues, and we release as much as we can back to the community. We are paying it forward to the rest of the web development world in return for the million man-hours that have already been put into building what we're leveraging for free. That is what makes open source work.
In a sense, the GNU General Public License (GPL) can be seen as the "Pay it Forward License".
Most open source projects do not have a professional support team on-call. Support and documentation are provided the same way code is: Ad hoc, for free, as people are able to contribute. Sometimes it is broadcast, such as written documentation. Other times it is personal, individual help. I have numerous times been on both sides of the "you wrote this code I'm having trouble with? Wow, thank you for taking an hour to walk me through it!" conversation. That relationship is what makes open source support work.
On more than one occasion, I've had someone I've helped out in IRC offer to pay me for my time. While I appreciate the gesture, that's not really what I do it for. Nor is it why most people who help others with a problem do so.
If someone helps you out with an open source project, be it using it, developing for it, or even just writing about it, you can thank them personally. But the true thanks, what will really show gratitude, is paying it forward. You've just gained new knowledge and understanding. Share that knowledge and understanding with others. Help out the next person, or better yet next people, to come after you. There's no need to stop at three, and I suspect you'll keep going far past that point. And in so doing you will not only help others, but help yourself, too. Being able to explain something to someone else is, itself, a form of learning.
That is what makes Open Source work.
That is what makes a Community work.
That is what makes the world work.
Pay it forward.