Doing good with Drupal and beyond
Interested in working with nonprofits, social change groups, or community activists? Want to "give back" some of your expertise to projects you care about? Involved in this work already and want to hone your craft?
Let's talk strategies and tools!
In my experience, while you can apply lessons from projects in other industries to this kind of work, there are some important differences.
A few things I'll cover:
Long and collaborative discovery phases.
Treat the people you're working with as clients, even if you're volunteering this work for a group in which you're a part already. And more so than for other clients, build in plenty of time for discovery. Your new clients may have been trained to see web/app development as a kind of checklist-based contract, hiring you to complete one long to-do list. Consider gently stepping them back to a larger view to facilitate their own understanding of what's possible to support their mission.
Budgets will often be fuzzy. Help clients create a kind of "sliding scale" budget that can expand or contract depending on their funding, by packaging features into separate projects or sprints.
Remember there may be lots and lots of stakeholders.
Information architecture is a proxy for organizational structure. Don't be surprised when a conversation about the primary navigation turns into an existential discussion on the nature of the organization. (Card sorts will only take you so far.)
Build infrastructure into the project, even if you're not asked to do so.
Nonprofits have lots of churn when it comes to volunteers, interns and board members; community groups even more so.
Take simple steps to make institutional memory less prone to disappearing. Set up a forwarding email address, at the organization's domain, to use for all third-party system registrations. (It can forward to you during development, and then can be switched to someone in the group when you're done. No more forgotten domain renewals!)
Document everything, in particular workflow processes for staff or key members. If the organization uses Google Docs or a massive Word document, that's fine, but get the documentation mirrored in the repository somewhere! Use screenshots and short videos, and consider linking to documentation from within inline help text.
What happens when you're done?
Talk up front about a support contract, whether with you or another development shop you trust. If that isn't feasible for their budget, recommend building in some budget at the end of the project for a deep dive with someone on their end.
More than any other kind of project, you can't just build and walk away — you will get calls six months from now. At the very least, compile a list of local resources or meetups (FreeGeek, TechSoup, NTEN, etc.) where they can go to find help if they ever need it.
Consider the mission of the organization, and educate staff/members on technical tradeoffs between security and privacy, convenience and data ownership, etc.
If the group is working with vulnerable populations, they should be aware of the ways in which their website can facilitate (or frustrate) tracking and surveillance of their visitors.
Facebook and other social media are often useful tools in modern advocacy, but they're built on monetization and their precarious utility should be made clear.
Third-party tools like Google Analytics, Disqus, AddThis and others have ulterior motives and are not just "free features" to drop into a site without consideration. (More to the point, there are open-source alternatives.)
Putting the Drupal in Drupal for good
We'll cover some of the many resources, discussion groups, and projects that will let you connect with others doing this kind of work. I'll post a list of these resources that I know of and that others share to this session listing for everyone to enjoy.
I've been a Drupal developer for 13 years, and I've also worked in and with nonprofits, as a community organizer, and for countless causes "for good." I'm currently a Senior Drupal Developer at CoLab Coop, focusing in particular on frontend development in Drupal 8.