Volunteering is primarily driven by the need of the volunteer to feel good about themselves, not to do the most good; the way to really do the most good is to know how to do something valuable, like make a computer do what a person wants, or building things. Not that many people can or choose to learn how to do something really valuable, but many people can rehab trails or serve meals to the homeless.
Nonprofit and public agencies know this and many don’t really want volunteers, though they also can’t really turn volunteers away for PR reasons.* Nonprofit and public agencies want cash, which is fungible and can then be spent hiring professionals who don’t consume a lot of time and energy. Programmers know that the smallest number of programmers possible should work on a given project, because each additional programmer increases the communication overhead of the project. Sufficiently large projects often collapse because programmers cannot communicate effectively and ensure their code works coherently together. Volunteers face a similar problem, albeit to a lesser extent.
Low-wage labor is also widely available. Someone with a skill that can be sold for a couple hundred dollars an hour is better off doing that, and then donating their wages to hire at least ten people for ten dollars an hour. That’s much more useful to society as a whole. We’re in the habit of automatically admiring volunteers and volunteerism, to the extent that claiming volunteer hours has become yet another way of gaming college admissions through dubious altruism.
The primary way to usefully volunteer is to have a specialized skill that can be effectively deployed by the organization, but that rarely seems to happen. If the organization really needs a given skill, it tends to pay for it, because it needs that skill delivered reliably and, often, to precise specifications.
Mastering a complex skill, however, is a labor-intensive process; it’s famously been said to take ten years. Maybe one can master a skill in less time, but certainly it takes thousands of hours of dedicated practice. No one can wake up and decide to write a (good) novel or (good) operating system or whatever. One can go off and seal envelopes or make cold calls or serve meals for a couple hours.
One sees this at work in the misguided efforts to send expensive American teenagers to developing countries to build houses. Developing countries by and large do not have a shortage of effective construction workers (the U.S. imports plenty of Mexican construction workers)—they have a shortage of money. The thousands of dollars it takes to feed, secure, and transport American teenagers or twenty-somethings would be much more effectively spent on local labor and materials. But the purpose of volunteer trips is of course not about building houses but about making the volunteers feel good and useful.
Still, if the choice is between volunteering or watching T.V., volunteering is probably a “better” thing, but if the choice is between volunteering and mastering a unique skill, master that skill (and perhaps teach it to others). Be an example to others by becoming an expert, instead of by sacrificing time that should be optimally spent doing something useful for a large number of people.
* I’m a grant writing consultant. Many nonprofit and public agencies will admit in private that they don’t want volunteers. I suspect all or nearly all professions generate uncommon or counter-intuitive knowledge. The Internet is pretty good at letting people discuss that knowledge in a pseudonymous environment.