How I approach my core work
Gathering a community of my products’ users has brought a tremendous new dimension to my core work of researching and building software.
In the beginning, I initially envisioned having a Slack community with my core customers to make conversations easier in support and when discussing feature ideas.
But far more than that, it has been one of the biggest, if not the single biggest, game changer:
For rapid debugging — before the community existed, if I couldn’t reproduce an issue, I likely couldn’t fix it. With the community, I’ve been able to send quick test builds in Slack to the user to isolate the issue with a quick back and forth, eventually verifying a fix on their end. In most cases, this process takes anywhere between two to five test builds to isolate the issue and test out fixes. Many unique, unreproducable bugs have been ironed out this way — bugs that previously would have gone unfixed.
For my mental work health + motivation — somewhat often, when I no longer have the energy needed for development, I’ll see a Slack message come in containing a mix of excitement for the product and a simple request. These often provide me with the energy to keep building. Multiple times, I’ve shipped new features from this midday boost provided unintentionally by someone’s post in the Slack. Sometimes it’s from a new user, sometimes from a longtime user. But very often, it is the energy within the Slack community that keeps me going, and keeps pushing development forward, even when I would otherwise be at a loss for the energy needed to keep building.
For newfound personal and professional relationships — some of the most active users in the Slack community have become close friends over the years. After meeting in the Slack, I have since started a podcast with Fabio Bracht, spoke to Gerald Aungst’s third- and forth-grade coding class, and more informally grown longtime friendships with many other members. It is truly a community: We’ve swapped takes during watch parties of industry events, we’ve come together to support members’ major moments in life and work, and we’ve helped each other solve problems. We have a channel just for those learning to code (quite a few within the group) to get help from developers in the community (also quite a few in the group). We have a channel for a remote running club among Apple Watch wearers. And we have channels for all sorts of other community topics.
Ultimately, for the product — we’ve dug into issues when feature requests cut against the grain of the product ethos, discovered deeper truths, and built better features that neither I nor the requester could have envisioned without these chats. I create these products all day, and all of us in the community use them every day, so improving the product (and improving that very process of improving the product!) benefits all of us tremendously.
The unexpected benefits of gathering a community started before I had even shipped the first product. I started the Slack a few weeks before the first beta of Mail Pilot, just to get it ready. Immediately, people took to the Slack to share their hopes and ideals for the new Mail Pilot, unencumbered by having seen it yet. This is a tremendous source of input you rarely ever get as a product designer; seeing the product instantly influences people’s thoughts and feedback. But hearing their thoughts before they know much of anything about your product allows you to walk into the full gamut of thoughts uninfluenced by your own, where the most interesting insights often lay. And better yet, they were able to discuss these initial thoughts with one another, building on top of each other.
Additionally, the existence of a customer community led me to discover pioneering users, a kind of user that, when supported the right way, can help propel a product forward. And within the community, pioneering users can riff on each other’s ideas and remarks.