Everyone who uses open-source software (and understands where it comes from!) knows that they should contribute something back; it's the right thing to do. The various reasons so few people contribute are often valid: perceived high barrier to entry, my employer won't let me, I don't have the time, etc… Only a small percentage of folks realize that contributing isn't a purely altruistic activity. Contributing actually leads to personal gains in skills, finances, and connections - and the community is not only okay with that, it actually supports it.