I love the principle of IT people helping non profits, but having worked in non profits numerous times I think there's a problem with these sorts of plans that most people don't think of.<p>For any given technology solution, most of its life is spent in maintenance mode. In the simple case, say you as a developer build a new widget for the organization's website. You finish it, feel chuffed, and move on.<p>One month later, the organization needs something new added to it, or there's a security vulnerability in the tool you used to build it which needs to be patched, or the API the widget was connecting to got upgraded and it's stopped working.<p>The organization now has three options:<p>- Hope for another volunteer who can come along and fix the thing which was broken. Hint - this never happens. Tech volunteers almost always want to offer their skills on greenfields projects or exciting extensions to functionality, not mundane business-as-usual work.<p>- Pay a consulting company to make the change for them. This gets very expensive very fast, because <i>consulting company</i>.<p>- Stop using whatever you built in the first place. This often has huge business implications by this point, because having trained everyone how to use this new tech you now have to take a step backwards and stop using it. Instant resentment of the system which put this in place.<p>As annoying as it is as developers that we can't volunteer our services for a few weeks then disappear, that's just not how IT systems work. A system is not finished until it's been retired or replaced by something else, and if you're providing something to a non-profit which does not have an in house IT team to manage the software through the rest of its lifecycle, you're basically donating a liability.<p>Even if that's not the case, you're dealing with people who don't necessarily view or understand technology the way that you do. You could spend several months building what you think they need, then you come back and they say they wanted something else, or some substantial modification to what you've built. You don't have time to dedicate to it any more, they don't have what they want, and both parties go away dissatisfied.<p>I'm saying this as a developer who has been involved with several non-IT non profits, including my current one which I've been working with for over 6 years now. I frequently do volunteer dev work for that project, but even the most self-sustaining piece of software I ever set up for them still needs someone to go in there once a year or so and apply software patches and security fixes, and every six months or so their requirements change in some way or another and I have to dive back in to accommodate. "Three month" volunteers are almost always much less help then you would expect them to be.