One of the most rewarding ways I've found to contribute to open source is to connect communities and developers. Like if someone posts a fork on github, put the original developer in contact with them and make sure there's an effort to collaborate rather than differentiate.<p>It seems trivial and obvious, but for the dozens of times that I've been able to make a connection it really seems to pay off. As other commenters have noted, it isn't until you're developing that you realize that other developers are just like you - the same goes with assumptions of the original project creators. "He works at Facebook, he'd never respond to me" or "She is from Germany, surely there's a language barrier", etc. are all excuses that cause forking.<p>As we all know, it is easier to download the source, fix your bug, and not submit a bugfix - as open source projects continue to increase exponentially, I think we'll see more of the successful projects being the ones that have people actively creating & seeking collaboration rather than assuming it will occur in the wild.