Designing Software for Altruism

How can we design software that promotes random acts of kindness? Plus, a proposed product feature that enables altruism.

Designing Software for Altruism

There’s a lot of talk these days about the role of of empathy in designing user interfaces and user experiences, and it’s a refreshing trend to see take hold in the software world. Increasing empathy in design is pretty straightforward: you do it by designing interfaces flexible enough to support as many use cases as possible, not just the ideal ones. It’s about designing software that doesn’t remind you of deceased loved ones when trying to help you celebrate your past, doesn’t suggest you add former stalkers as friends, and is designed to be used by all. Dan Hon gave a nice presentation summing up his quest to close an “empathy gap” in design—going beyond simple personas towards building platforms that aim to serve all and more easily meet their needs.

Empathy + Community/Social = Altruism

I view everything through the lens of “community”, and after watching the growth of empathy in design I’m beginning to see a similar new trend of Altruism in software design. Altruistic design combines software designed for empathy but also harnesses the power of the network to let lots of people selflessly help lots of other people. The possibilities of empowering people and improving lives using technology is exciting, and I’d like to see software supporting random-act-of-kindnesses continue and grow.


Altruism in software is not entirely a new idea. In the late 1990s, Bruce Sterling wrote a short sci-fi story called Maneki Neko (~15min read, totally worth it), describing a future world where mobile phone software figures out the least effort individuals can go through to make the maximum positive impact on others around them by completing small tasks. It’s essentially a future fantasy of apps enabling highly optimized acts of altruism with the least amount of downside for volunteers, making the world a better place in the process — kind of like TaskRabbit, but without the influence of money.

Maneki Neko - Lightspeed Magazine
"It's only a career," said Tsuyoshi, sitting up on his futon and adjusting his pajamas. "You worry too much."

Author and artist Miranda July famously launched an interesting app called Somebody last summer that let you send messages out into the network for strangers to pick up and deliver them in real-life. The demo video shows off the possibilities of real-world use, but in reality the app was a bit hit and miss and they’re currently retooling it. The Reply All podcast did a good summary of the interesting and strange interactions the app provided after launch.

Somebody is a messaging service created by Miranda July with support from Miu Miu. When you send your friend a message…

1980s Volkswagen Vanagons are a cult classic vehicle not known for their reliability, but thanks to a dedicated following, there’s something called the Vanagon Rescue Squad. This little site (and android app) lets you list yourself on a US map as a Vanagon owner and share what you are willing to offer any other vanagon owners passing through in terms of space, tools, or help. It’s a great example of a small, distributed group of users with a shared interest building a network to support one another.

Vanagon Rescue Squad - Android Apps on Google Play
The Vanagon Rescue Squad app will find your location and return a list of Vanagon owners within 200 miles willing to…

The best new example of altruism in action is Be My Eyes, an iPhone app that uses a connected network of sighted volunteers to help visually impaired users solve problems for them on the fly, using a combination of alerts and streaming video. The demo video demonstrates the situations where random sighted users can step in to figure out problems that braille can’t solve.

Be My Eyes ~ Lend Your Eyes to the Blind
Be My Eyes is an iPhone app for that lets blind people contact a network of sighted volunteers for help with live video…

A practical example

Switching gears (ha!), I’m an avid cyclist and I love riding my bike for miles along the roads near my home each week. There aren’t a lot of cyclists where I live, but whenever I spot the occasional rider going down the road, I often think of pro cycling’s use of team cars in bike racing.

When I see a cyclist out riding while I’m in a car, I often wish I had a cold water bottle to hand out, an energy bar to share, or could offer the tools in my trunk to random riders that might need them. I’ve never gotten to interact with these unknown cyclists, as much as I would love to offer help, and unless I saw a cyclist stranded on the side of the road, I wouldn’t know when or how I could help out.

The rare times I’ve been out for a long ride and either had a flat (without having a spare) or completely bonked (combination of exhaustion/nutrition depletion) on a ride far from home, I’ve had to make phone calls to ask for help, and it’s not always a simple operation. I’ve had times where I’ve had to call more than half a dozen people before I could connect with someone that could help.

Enter Strava

There’s a popular website for runners and cyclists called Strava (along with their companion smartphone apps) that lets you track your runs and rides using GPS and mapping and one of its key features is the ability to “race” your friends and strangers through the use of segments of rides/runs. It’s great to ride/run with big groups of enthusiasts, but it’s difficult to find a dozen people with the time to train together, so what Strava does is time your ride up that steep hill by your home and show you where you stand against everyone else that has ever climbed it. It’s essentially like group training and competition facilitated by software, so that athletes can workout on their own, but later compare themselves to their peers.

“Active Friends” is a recent addition to the Strava app

A few months ago, I noticed Strava’s iPhone app showed me in real-time which friends were currently out on a ride (“2 Active Friends”). That was new and potentially interesting—the app knows which friends are using it, and also knows where they are and how far they’ve gone. It shows me this information for just my friends, but Strava has hundreds of thousands of other users as well.

It doesn’t take much of a leap to take that technology and think of altruistic applications that could be built to connect/help thousands of Strava users.

Idea: Strava “Team Car”

I’d like to propose a new feature for the Strava smartphone app that lets you harness the power of nearby riders, runners, and friends to help you out on the rare times you are in some sort of trouble, and I’d call that feature the “Team Car”.

I wouldn’t envision it as an emergency klaxon (in the event of an injury-causing crash — better to call 911 emergency) but instead use it for the more common/minor troubles you might encounter while out on a run or ride. I could imagine sending out a request to your network and to Strava users nearby that you could use a 26"x2" tube and a pump to repair a flat, that you’re out of water on a 100°F ride ten miles from home, or that you might have twisted your ankle running and need a ride home. Requests could be answered by other members, in-app messaging could function like SMS, and stranded athletes could choose to send their location to volunteer helpers that would get maps and directions to find each other.

This feature could use geolocation to determine nearby users worth notifying, and perhaps strangers might only want to be alerted to requests made <2 miles away from them but if it was a friend they might be willing to go up to 20 miles to help. Strava users could customize the types of notifications so that maybe friends give a buzz and audible tone when alerted but strangers requesting help show up as a banner on everyone’s nearby phone. As someone requesting help, you could notify others that you received help and by whom (and rate them for extra points on their profile), so everyone that got the first alert would know you were taken care of.

Mockups screens of the proposed feature in use

In essence, I see this feature as letting me pay it forward for the times a random stranger asked if I needed help and when friends picked me up while stranded. As a cyclist wanting to help grow the sport and support my fellow riders, I would be happy to jump in the car with some supplies and help any random stranger if I happened to be nearby and available.

Of course, the chances that a person in need could send out a request and get help from someone nearby may be slim, but Strava is a popular app with a critical mass of hundreds of thousands of active users and even in my small town, nearby segments have been ridden by hundreds of other Strava members, usually in just the last few months. In large cities, this could become a fairly reliable support network of connected athletes helping one another. There’s also an obvious problem of ensuring athlete safety when requesting help from random strangers, and the app would need to take steps (show previous help requests/responses, how they are connected to your existing friends network, etc) to minimize potential danger.


Empathy in software design makes applications better adapted to a wider variety of users, but I would love to see that extended into altruism as the next big trend. It starts with building apps that meet the needs of more users, but that can also empower networks of volunteers willing to help their fellow humans, and take technology aimed at solitary uses into directly of helping each other out, making the world a better place in the process.

How can you — working today, building for tomorrow — make not only the lives of your users better, but of those around them? How can the network effect be used for kindness? What small thing can you encourage — magnified by ten million users — that will make the world a better place?