"Work for full price or for free. Never for cheap." is the most useful advice on this subject.
"Work for full price or for free. Never for cheap." is the most useful advice on this subject.
If you do stuff for free --- and we do --- make sure it's different stuff than what you charge for. We are, for instance, happy to give free advice, or to chat on the phone with you about problems. We are not going to be happy to take a little time testing your app.
This isn't just me pontificating. More often than not, when I've tried to help people out with free project work, things have gone badly with the project itself.
This resulted in me getting a stack of journal articles about several subjects. Most memorably, steel smelting and formation of microbubbles. I don't really know much about microbubbles, so the professional thing to do was say "When they said 'technical translation', they really meant 'regarding software' because that's really what we do here". The client said "Who cares? Its free. Just do your best." So I did my best and asked copious questions about steel smelting. "I don't really have time to deal with you this week. But hey, its free, just do your best. We'll be happy." So they got a journal article they wanted to submit for publication with grammatically correct English which almost certainly contained numerous material errors of fact.
It was a tremendous waste of the time and professional reputation of everyone involved.
If you want to help out a friend/non-profit and actually have the time to do it, "free" is usually a better option. That said, you still need to keep the scope of what you intend to do for "free" ironclad, otherwise it will probably creep out of control just like any other project.