Jan 312021

Like a lot of developers, I’ve worked on applications that solve business problems for almost all of my career (there was that brief time I worked for a government contractor). I’ve started to realize that there’s a lot of overlap between charities and businesses in terms of the general types of problems that they need solved. For starters, a lot of charitable organizations employ people to run the operation, so any employment/business management software would apply there. Then there’s the fact that there are certain types of problems that are universal to organizations trying to do something for other people. Businesses want to solve these problems to be better at making money, and charities want to solve them to be better at helping people, but they’re still the same classes of problems, and both of them could use cost-effective solutions to help them.

So what are these problems that are common to businesses and charities? Well, let’s start with a local Goodwill store. First and foremost, there’s inventory. Because they’re donation-driven, inventory isn’t remotely consistent between locations. Do they have an item, if so, where? If someone needs something that isn’t in the local store, is it at a different store? Can they get that item from the store it’s in to the local store? That last question is a logistics problem, the type that Wal-Mart already has a good handle on. Goodwill uses their proceeds to provide job training and help people find employment. That means they need to track the people they’re working with, what those people are training on, and who’s hiring for those skills. You also need to be tracking and projecting demand of skills so that you aren’t training people for jobs that companies aren’t hiring for, preferably before those companies stop hiring.

Then there’s churches. There’s a general flow to someone becoming a member at most churches – people visit, then they become regular attendees, often times they’ll start getting involved in things outside the weekly services, and then they become members. That’s just membership, there’s also the spiritual progression – not saved, taking classes/participating in studies, actively considering salvation (asking questions, meeting with ministers, etc.), saved. Both of these sound like…pipelines, only instead of sales it’s souls. If only we had any inclination about tools that could help track people through pipelines so nobody slipped through the cracks. For both cases there’s accounting needs too, you have to track donations, monetary or not, because of tax-purposes (for the church itself, plus it has to send receipts to donors). That’s essentially accounting and customer management.

While charities have needs that are similar to businesses, that doesn’t mean what charities need is to buy business software, even if someone’s offering it at a steep discount. First and foremost, business software is built to track and help incentivize sales, and charities don’t do sales. But the biggest issues that prevent existing business software from being directly usable by charities is the fact that charities have a need for much more stringent privacy controls than regular businesses. I’m not just talking about donors, standard privacy practices around PII and other sensitive information is fine there. Where we really need to be thinking about serious privacy controls is around the people charities help. The simple fact that an individual is getting help from a charity should be considered extremely sensitive information, let alone the details of that assistance. If writing charity software is going to be a thing, then we need to be thinking about segmenting access to data. Obviously, the people working directly with those seeking help need access to a lot more information than someone who’s keeping the books. They just need to know that $X was spent on helping {guid}. If there’s an audit or other investigation into finances, that’s when you can convert {guid} into an actual human being. In fact, I’d say that charity software should have documented annual security audits to be taken seriously.

Here’s another wrinkle into the whole security and user privacy issue with charity software – a lot of charities address different needs or different aspects of a larger need. For example, food banks deal with 1 aspect of poverty by offering meals to people who can’t afford food, but they don’t necessarily offer shelter. If the poverty in question is related to mental illness or addiction, they likely aren’t addressing those concerns. There are, however, groups that do address those concerns. Wouldn’t it be useful if these groups had tools that shared just enough information about the people they helped that these different organizations could coordinate their efforts? I’m not totally sure what form that coordination could take, but the power of platforms is that it empowers other people to solve problems that you haven’t figured out yet. That means whatever services we write for charities should have an interoperability standard for communication between applications, like FHIR in health care (full disclosure, I’m working for a health care company). We also need a tool that gives people fine-grained control whether their information is shared, and if so, how much and with whom (which sounds like a great use of Tim Berners-Lee’s Inrupt).

If there’s 1 good place software developers can put our skills to use for charities it’s in automation. The biggest expense businesses incur is employees, and while charities may not pay as well as Fortune 500 companies, we still generally want them to keep expenses down. Software and services with a focus on automating anything that can reliably be automated can reduce the number of people charities need to pay to function, which (for good charities) frees up money to spend on their mission instead. Let the software keep track of all the information and handle the day-to-day routine, and have the humans focus on doing good deeds for others.

Good charity software, with a common information exchange protocol, opens up some interesting possibilities to help identify ways to help in a community, particularly if we can aggregate data from multiple charities. For example, let’s say that aggregated data shows that there’s a large number of people re-training for new job skills, and at least some of them are applying for mortgage assistance programs, but those people aren’t turning up at food banks or homeless shelters. That lets us infer that there was a large layoff recently, and the people affected are looking to re-up their skills, stay in the area, and if they can be hired soon we can them back on their feet before they start needing major assistance. Now assume there’s a company looking to expand operations in that same state, perhaps we could encourage them to expand in this area we were just talking about? We already know that the people who need work are willing to learn new skills, maybe we can train them in whatever the new company needs. Perhaps there’s a scenario where needs aren’t easily visible  – there’s a lot of people who need assistance with some things, but not others, and those needs aren’t consistent. Odds are there are local organizations helping who they can as best as they can, but maybe they could coordinate and be more efficient. Aggregating information from multiple charities helps us see what exactly the needs in the community are, who’s able to provide what, and better expose what help is still needed. That information can help charitable organizations that are a bit more “general purpose” in terms of the help they provide focus their efforts on the greatest unmet needs. For example food programs are running along but there’s not nearly enough shelters. The data could show that what homeless shelters that are in place are at capacity consistently, maybe even being forced to turn people away. That tells us we need more housing and programs that can get people employed again. We can also see what programs work, by simply tracking people through them and seeing who no longer needs the assistance. That lets us focus resources where things work, and gives us the confidence to experiment and try new ways of offering assistance.

There are already some people taking a “let’s solve some of the problems we’ve solved for businesses and consumers, for charities.” NeedsList is a tool designed to match people who have stuff they want to donate with people who need it (hat tip to GrepBeat for the newsletter story that made me aware of them). They provide matching between people who have stuff to donate, and people who can use said stuff, similar to how Lyft matches people who need rides with people who have cars or AirBnB matches people who need a place to stay with people who have some space in their house. Just like this was huge for personal transportation and vacation stays, this has the potential to be huge for donations. Think about how we do donations now – the best case scenario is that we know someone who might know someone who can use something we want to get rid of, and they help us get that stuff to the person who can use it. If that doesn’t work out, we take it to a Salvation Army or Goodwill, mostly because we know they’ll take it and they seem like the most likely to find someone who can use our old junk. Wouldn’t it be nice to have a website out there where we can enter the stuff we want to get rid of, and ensure that it ends up being used by people in our community that need it now?

It’s not just charities that can benefit from this style of thinking. Sqweee is a tool that lets people doing direct sales for larger retail brands (your Tupperware parties, Pampered Chef parties, Usborne parties, etc.) host their parties online (generally through Facebook). The software effectively autoplays an existing presentation, consisting of polls, videos, and static content. It also has a little space under the main content player for recommendations, and chat in a side panel so attendees can talk in the group or directly to the sales rep. Because the presentation is autoplayed, the sales rep can focus less on the pitch and more on interacting in chat, and posting custom recommendations based on what people are saying, how they respond to polls, etc. There’s more to it, but a lot of that is geared towards sellers, and I’ve only ever seen it from the point of view of someone watching a sales pitch. What if we took something like that and applied it to online lessons? Instead of recommendations for purchases, there’s footnotes on topics being discussed, so students can follow-up on things that interested them (similar to opening associated links in Wikipedia in a new tab because you’re kind of interested in what that page has to say). At this point, the concept can go 2 different ways. If you favor synchronous lessons, that means the teacher can be there in the chat, focus on answering questions, and even provide customized links in the footnote section based on what they’re seeing from students. If, like me, you think online education going asynchronous offers more accessibility to potential students, you’re skipping the chat, although there’s probably some benefit to linking lessons to a discussion forum for questions and follow-ups. I even put together a proof-of-concept of what this might look like, but it’s nowhere near realizing the potential behind the idea. It’s all hard-coded, with no back-end, I haven’t even begun to think about users or visibility or general security, and it’s ugly as sin. But it’s a start, and a potentially useful idea if we want to actually try new things with virtual education.

Basically, I’m wondering if there’s a group that instead of being Code for America, is more “Code for Charity,” or even “Coding to improve things.” The concepts are very similar, it’s just that instead of focusing on the government and government programs, let’s target our efforts at supporting people and organizations already working with people, making what differences they can. The promise of technology is that it can be a force multiplier for productivity (particularly around administrative tasks), organizing and keeping track of information so nothing falls through the cracks, information sharing, and helping aggregate information in ways that bring new insights to light. A lot of people have spent a lot of years working on solving problems like these already. We have a good grasp on this, enough to start talking with charities about the specifics of what they do so we can adapt the things we’ve learned to their situations. Let’s also make it easier for groups to work together to help other people. Is there anything like this already, at a broader, organizational level? Or even just at the GitHub level? If not, does anyone have any projects to kick it off? I don’t know if anyone’s noticed, but the world is a crazy place, so let’s do some good with what we know how to do.

 Posted by at 11:45 AM