"That seems doable," and other mistakes
Some lessons from building a Grateful Dead streaming app, in fits and starts
When I decided to make an app to stream Grateful Dead tapes, I didn't expect it to take years. And it didn't need to, either. But that's how it worked out.
It started when my brother-in-law Josh asked me if it was something I could do. I’ve still got a screenshot of the initial text exchange:
“Potentially not hard:” famous last words
I was wrong in my initial assessment. It was hard—really hard—to get something resembling the app built. But now that we’ve got a public beta for iOS, it’s worth thinking about a few of the things that I learned.
People are hard
Look: I love Josh. He’s a good friend and my brother-in-law. What he’s not is a software designer or developer. This surprised me, though I’m not really sure why it did. I think I’d just wanted it to be another way: that after my day job work of trying to deliver design, which, in organizations not built around the idea of design really means educating everyone about what I’m doing, and why it might matter, I sort of hoped that working on “my project” would be easier. But it wasn’t. Or at least wasn’t easier in the ways I expected.
Josh did play an integral role here: he’s the Dead subject matter expert. He could imagine the kinds of things he wanted to be possible, even if he wasn’t focused on, say, the specific datasets we had at hand to enable those interactions, he could ask questions about why something couldn't work, and, more than once, in the explaining, I found a solution. I’m grateful for that. But the amount of time I spent explaining the why something might not be possible was pretty significant.
I should also give Josh all the important credit for being the face of the project. His “audience building” efforts on Twitter—or, if you prefer, shitposting—built awareness of the project in ways I’d never have been able to.
Life is hard
Some things that happened between the time I decided to start this project and the present:
- My wife and I had a second child
- I got a new job, and moved from Brooklyn to New York’s Southern Tier
- Josh and his wife had a second child
I mean, ok, there’s like three years in there, too. But a lot of stuff was going on. Keeping the motivation could be really tough over the long months.
Ego is hard
I really wanted to make as much of this by myself as possible. That impulse wasn’t useful. That meant:
- I didn’t seek (or accept, when it was sometimes offered) assistance with things
- I insisted on making the website(s), and figuring out something approximating a marketing stack including email tools, list management, and more. Of course, by making a lot of this stuff myself, it actually made it harder to involve someone like Josh in the process for some of these things.
- Very often, I’d create arbitrary requirements for myself—we can’t release it until X feature is finished, we can’t share it until there’s a new website—that took me away from wherever I’d been previously focusing. The worst part of this was that it often meant jumping from the app’s React Native codebase to some other codebase or way of thinking. Task switching is hard, but when I had the chance to write my own scope, and prevent that task switching, I let the scope balloon.
Speaking of scope, I was a terrible product manager here. As it stands, the app has one database for Grateful Dead shows (with a GraphQL endpoint), a headless CMS for some of the content (e.g., the curated lists of tapes, the layout on the home screen). And the aforementioned website? Different stack there, with a different CMS. This could have been significantly easier, and I knew that at the time. But with nobody to say ‘no,’ I went ahead and said yes.
Purpose is hard
Many times, I wondered whether the world really needed any of this. Josh often joked about “just doing it, and being legends,” and, ok, that’s probably where my mind was, too. But we’ve never really planned to monetize things—there are some obstacles to doing so, given the app’s reliance on the Grateful Dead archive—so it’s weirdly hard to say whether this was all worth it. Like: when are we done? Do we want to be done? And how would we even know?
To that point about wondering whether people would care—though I knew that shipping sooner, and getting feedback sooner, is the best way to answer that kind of a question (and the kind of thing I've always aimed for in professional contexts), the lack of firm deadlines and constraints let things drag on, and drag on for a long, long time.
Shipping is satisfying
As I’ve progressed in my career, the design I’m focused on professionally is often more about people, organizations, and expectations, than it is about the kind of interactions and experiences that I once focused on. It’s really nice to do this kind of work as a hobby, and as a way of staying literate about technology.
What was also satisfying was doing things that maybe didn't seem doable through sheer stubbornness. I mean, the way we've got the queries working? It's really wild. And it might be brittle, too. But I also know we achieved a search functionality that isn't exactly out-of-the-box, even if you're using things like GraphQL. I know if I'd been working for clients, or working with stakeholders within a larger organization, someone would surely made some demands about what we could or couldn't do.
And, finally, receiving feedback from people using the app has been incredibly satisfying. If you're one of those folks who's shared feedback: thank you. Even when the feedback is "this doesn't seem to work," I appreciate it it. If there's any reason I've been able to think of that I've spent time doing this, it's because I wanted to provide some value to people. I'd like to think that if people are willing to take the time to offer feedback, maybe they can see that, too.
The iOS beta is out now. It's available via TestFlight. Let us know what you think!
James is the design, development, and general "product" side of Deadsound. He's @j_m_barnes on Twitter.