Invisible Hands: A Rapid Application Development Case Study — Part 2

Katie Escoto
Tech in Policy
Published in
8 min readMar 18, 2021

This is the second installment of a three-part series that examines the pandemic response that became Invisible Hands; Commander, the custom-coded CRM and order management tool built for the organization; and an exploration of the issues that existed well before the pandemic and communities that have been working to address them for decades

When we last left off, the Invisible Hands founding and operations teams met with Matt Schaff in late March 2020 to solidify plans for an order management and call log system to improve operations at the Call Center and Captain Delivery arms of Invisible Hands.

Matt had a busy fall with his full-time job, Invisible Hands, and a new initiative he started called Drive Your Ballot. Between those things, he was kind enough to answer some questions I had for him about Commander.

How did you get involved with Invisible Hands?

It was early March, and I couldn’t bear sitting around for months watching Netflix while a pandemic ravaged the world around me. Like so many others, I wanted to feel, and be, helpful. I reached out to a number of mutual aid organizations, offering to volunteer software engineering support. Perhaps it was an accident, but IH was simply the first organization to respond. I credit the inimitable Laura Moss with that, who at the time was fastidiously combing through the Call Center’s texts from folks like me thirsty to help. Eight months later [a year, now], I’m still here, just as lucky and grateful for the opportunity to fight COVID with code.

From inception to when it was first used on shift, how long did it take you to build Commander?

Commander

Commander started out as just a Call Center logging system: a means for call center operators to record, categorize, & keep track of the life cycle of phone calls coming into IH. Prior to Commander, IH was struggling to manage calls across an array of Google spreadsheets, which not only lack efficiency, but also expose IH and its clients to security risks. From the GitHub record, it looks like the first commit to Commander was on March 24, and the first time Commander was used on a Call Center shift was March 28, meaning the delay between breaking ground & using the tool was 4 days.

From that point on, Commander grew, piece by piece, into a fully featured customer relationship management system (CRM) for volunteer grocery deliveries, the first of its kind.

What is Commander’s stack?

Commander is built with Drupal 8 on a web framework called Symfony, and it’s hosted by Pantheon. To loosely adapt the MVC (model-view-controller) language, the data model is provided by a MySQL database, the logic that controls the data is computed with PHP, and the view is HTML → therefore anyone with a web browser and credentials can log in and administer Invisible Hands.

Discussion of Commander’s stack is not complete without touching on its multiple integrations. Part of what makes Commander so useful is the fact that it communicates with 3rd-party services critical to IH operations: MightyCall for making phone calls from the Call Center, MailChimp & Mandrill for transactional emails, Crowdskout for volunteer engagement campaigns, and Slack for volunteer communication.

A peek at integrations

What were some of the technical challenges you faced in first building Commander and subsequently maintaining and prioritizing bugs and new work?

The first major challenge was proposing & launching a call center software solution superior to Google Voice. That was an accident of the fact that I was recruited initially to IH by Laura Moss, formerly the head of the call center. The problem to solve was that Google Voice was not optimized for multiple, simultaneous callers, and at the time — in that scary time in March — the IH call center was being bombarded by calls from across New York, most of them going to voicemail since the GV line was already busy. We needed a more appropriate solution, and fast.

So I surveyed the field, testing out voice-over-IP (VOIP) call center alternatives, until I settled on two: Twilio and MightyCall. Twilio is this developer-friendly, API-driven framework that would empower us to build and infinitely customize any call center we could dream of, whereas MightyCall is an out-of-the-box, 1-size-fits-all call center solution that could be rapidly deployed. Let’s say we wanted a robot pet: The former is like LEGO Mindstorms, the latter is like the Poo-Chi pet dog from the early 2000s that could roll over & bark as soon as you took it home from the mall. For the call center, we chose Poo-Chi for now, and LEGO Mindstorms for later. Resisting the developer’s natural urge to build the solution from scratch — and instead pick MightyCall — was arguably the best decision IH Engineering has made, since it provided our clients and agents with a workable call center immediately that (despite some hiccups) has served us well for months.

After having a call center, we needed a system for logging and managing calls from clients, and that’s (1) how Commander was born, and (2) how the IH Engineering team started to grow. At that point the problems to solve became about team management, and luckily for us, we could just pick time-honored solutions off the shelf. To communicate, IH Engineering started a Slack channel; to manage ongoing work, we launched an Asana team account; and to coordinate it all, we recruited a series of project managers.

How large is the IH Engineering Team? At one of the socials, someone attended who mentioned he was working on DevOps, which sounded very interesting.

Being staffed almost entirely of volunteers (me included), the size of IH Engineering team has fluctuated. At our height in May 2020, we had 11 members, composed of junior and senior developers, designers, a project manager, a quality assurance specialist, a digital strategist, and an engineering director. In its engineering department, IH has a veritable creative agency at its disposal. It’s very unique and empowers IH to be more tech-forward than similar-sized nonprofit startups.

Call Logs are filtered into categories, as seen above

Do you see your work with Invisible Hands influencing your career long term?

100%. My career is dedicated toward building technology that empowers people to build a more just world. In addressing the food insecurity crisis that has befallen many Americans during this pandemic, Invisible Hands demonstrates the ability of smart tech to directly make a positive difference in people’s lives. It is a model for my future work.

From a technical perspective, what has Invisible Hands done well and what could it do better?

The most successful principle of the IH Engineering approach is simple: We listen. As IH received press attention in the spring, offers and invitations came from across the country by tech companies large and small, all wanting us to use their systems, without first asking what we wanted ourselves. There was this thirst to do corporate good, for sure, but too often on their terms, using products built for different purposes and clients. By contrast, embedding an entire engineering department inside of IH makes it possible for our tech to directly address IH’s needs, fitting snugly like a hand and glove. To illustrate, every last feature of Commander and the upcoming IH App reflects a core business need of IH.

Of the many areas of improvement that IH Engineering should consider, chief among them is volunteer recruitment. Granted, I’m grateful for all of the talented, creative people we’ve seen make important contributions to our products over the months. However, organizing volunteer developers and designers is a lot like herding cats. If we had a more regular focus on replenishing the volunteer staff to make up for the volunteers who naturally cycle out (everyone on our team has an outside, time-consuming career relevant to their role), then we’d be able to churn through the backlog at a faster pace.

I know it’s hard to anticipate anything these days, but is there a way you anticipate Commander evolving in the coming year, as we potentially see more waves and/or a vaccine?

Commander’s rapid evolution continues apace. The next phase of its life will be serving as the backend of the soon-to-be-released IH mobile app. So much of what Commander currently manages — user verification, posting requests, delivering requests — will be tightly integrated with the app. For some examples: Training modules will be built in Commander out of Youtube/Vimeo video links and associated quiz questions, and those will be directly accessible to prospective volunteers in the app; new delivery requests in Commander will create push notifications for grocery runner volunteers in the app; Commander managers will create communication channels for neighborhoods (say “Brooklyn”) and app users will be allowed to add themselves and then chat with nearby fellow volunteers.

In the near future, Commander will also manage background checks for volunteers, facilitate bulk orders from food pantries, and completely take over call center workflow using Twilio.

You created Drive Your Ballot. Can you tell me a little about that and how many people it served on Election Day?

Drive Your Ballot is a nonpartisan, nonprofit volunteer network that organized 161 rideshares for early voting, ballot drop-off, and Election Day voting across Philadelphia during the general election. We partner with multiple political campaigns and rely on a uniquely efficient system for assigning rides that is democratic and auction-based. It was a unique honor to have played a role in supporting voting rights in Philly, given the city’s critical role in determining the outcome of this recent election.

I created DYB at the time when nationwide delays in postal deliveries undermined faith that ballots will be received in time to be counted in the 2020 general election. With the potential to disenfranchise millions of voters, this postal crisis represented a direct threat to our representative democracy. Drive Your Ballot became a nonpartisan backup system that helped ensure Philly voters could still get their ballot counted, all while taking careful COVID-related precautions.

What are the goals of the Invisible Hands app?

The IH App seeks to enhance the effectiveness and experience of our volunteers. This application will chiefly feature real-time communication and delivery fulfillment management. The real-time communication feature will include direct messaging, neighborhood threads, and curated community-wide threads, all designed to enrich volunteer engagement. The delivery fulfillment feature will enable volunteers to search available orders, claim them, update their status, and review order history. We will build the app using React Native, allowing us to save time to support just one codebase that serves volunteers using both iOS and Android. Overall, the Invisible Hands App will provide a branded, cohesive ecosystem in which our volunteers can feel belonging and empowerment to serve their communities.

Next week in Part 3, we’ll dive into the mutual aid and community groups around New York City which have fought food insecurity for decades, as well as some technology solutions that have been developed more recently with the same goals. Finally, we’ll touch on where Invisible Hands is a year after it started.

In the interest of full disclosure, the author started their involvement with Invisible Hands as a delivery and Call Center volunteer, but has been a paid member of staff since September, managing the Call Center on Saturdays.

--

--