I spent about a year working with two different nonprofits — one a regional food bank, the other a statewide literacy program. Both had budgets under $80K for new software. And both almost wasted every dollar.
Here's what I noticed. Nonprofits don't fail at picking features. They fail at defining what "done" looks like. The food bank wanted a donor portal, a volunteer scheduler, an event page and a grant tracker — all in one system. That's four products disguised as one project. Nobody on the board pushed back because everyone assumed software worked like buying furniture: pick a set, get it delivered.
The literacy org made a different mistake. They hired a freelance developer off Upwork who built them a decent Rails app in three months. But when he moved on, nobody on their five-person staff could update a single page without calling him. They were hostage to one contractor's schedule — and his rates went up twice that year.
What actually works? In both cases, the fix was the same: bring in people who've done this specifically for mission-driven orgs. Not general agencies. Not a friend's nephew who "knows code." A nonprofit development company that's already handled the donor management, the compliance reporting, the volunteer coordination piece — they'll scope it honestly because they've seen what blows up and what doesn't.
One thing I'd add — get your program staff in the room during scoping, not just the executive director. The ED thinks about optics and board reports. Program managers know which spreadsheet they copy-paste into four times a week. That spreadsheet is your real requirements doc.
Budget honestly, plan for maintenance from day one, and stop treating software like a one-time purchase. It isn't.
Posted by Waivio guest: @waivio_mark-rikhter