I dunno; having project members not actively be dicks to newcomers is always good advice.
That said -- and I'm being vague because some people on hn are dicks and I'm careful how trackable my online presence is -- small projects get lots of, well, basically useless people who need tons of handholding to get anything accomplished. I see the upside for them, but I don't see the upside for me: if I where to help them out, I'd spend my limited available time on handholding people who apparently managed to get ms degrees in cs without being able to code instead of doing what I enjoy. So I ignore them. Open source is apparently the new resume chit so people want to spend minimal effort to put a patch into a github project. We're always open to helpful people but I have a depth 1 decision tree for ignoring the idiots: if you can't successfully read and follow the instructions in readme.md and make, you're worthless and I kill your email.
This is a bizarre statement. There are plenty of reasons to write software that don't revolve around "I want this software for my own personal benefit". For example the person in question may just want experience of programming, and/or they may wish to contribute to something that helps others rather than themselves.
(I suspect many people are in a similar position in their day job, given the existence of large amounts of software for which the target audience is not computer programmers.)
I wasn't really trying to distinguishing between personal quantifiable gains from other gains. My being annoyed for someone else whose showed me ridiculous workarounds is a perfect example of a reason I would fix software so >I< can feel better about reality, myself and experience less pain and embarrassment for my profession if I help them again in the future.
For pure experience programming, sure we write "garbage software" to make the changes in ourselves. But if it is worth sharing (even for edification or statistical analysis) then we go back to a personal reason otherwise it has little relevance to the larger topic of discussion, and I personally focus on the garbage in "garbage software" rather than software.
The one that does not have dozens of ignored three years old pull requests and decent level communication with newcomers on mailing list and in issues.