Getting Unstuck (and becoming an app developer)
A few days ago I released Unstuck to the iOS App Store. Because of that, and in honor of Thanksgiving, I wanted to share a few of the things that I’m thankful for that made this possible.
It seems weird to call myself an “independent app developer,” but my app is live, and I’ve even had some early adopters (Hi Mom!). So I guess that qualifies me for the indy app developer club.¹ If you want to learn more about the app, I’ve shared plenty of details here. But here I wanted to share a few of the things that made this possible.
A few people have asked me, “how did you learn to make this app?” And the easy answer is, “I taught myself.” And to some extent that is true. I never took a class on SwiftUI–a new framework from Apple for designing user interfaces that looked clean and native, with simple code that could scale across devices. No one ever taught me how to get an app into the App Store. And I’ve spent countless hours reading articles, tutorials, watching instructional videos and more. But at the same time, saying that “I taught myself” ignores the foundation that I was starting from.
Growing up, I loved computers and technology. So it was an easy decision in college to study computer science. For someone who was terrible at art and wasn’t crafty or handy, it was magical to be able to transform a blank screen into a program that could actually do something. Around 2003-2004, my area of focus in CS was artificial intelligence and robotics, creating neural network brains that could help robots solve mazes and complete tasks. In another life, perhaps I would have had the foresight to go to graduate school in AI, and today I’d be a billionaire.
But in the early 2000s, we were still in the throws of the AI winter, I dreamed of a career in politics, and I thought I was a better writer than I was a programmer. So I went to law school instead.² But I never stopped loving the act of creation through code.
When it came to programming, I became a dabbler. I would buy books. I would sign up for (and sometimes complete) online courses.³ And even took an iOS development course at the Harvard Extension School. As a result, I was able to teach myself some of the things I needed to know to make Unstuck, because I was never starting from scratch. Learning Swift, for example, isn’t so hard when you’ve also learned C, Java, Python and LISP. Learning SwiftUI isn’t so hard when you already know other frameworks for iOS development. So I’m thankful for the foundation I’ve been able to build that made Unstuck possible. I’m not an expert developer by any stretch of the imagination, but the experiences I’ve had over the past 20 years made it possible for me to move from concept to reality.
I’m not an expert on peer coaching. In fact, up until recently, I had never even heard of it. A couple of years ago, my office brought in a leadership training coach, Nancy Persson, who along with Jessica Fjeld from Harvard Law School’s Cyberlaw Clinic, created a series of workshops for the senior staff at the Center. One of the things that they taught us in these workshops was an incredibly impactful method of thinking through problems: peer coaching.⁴
As Nancy and Jess taught it, peer coaching required three people: (1) the person sharing their challenge; (2) the coach; and (3) a facilitator to keep track of the time. At the end of one of our trainings, a colleague raised their hand and asked “if you couldn’t get find three people, could you do peer coaching with two people?” Nancy said that it could be done with two people, but having three allows the coach and the learner to focus on the discussion. It was that question that got me thinking about whether an app could help.
But Nancy and Jess did more than just provide the initial inspiration for the app. They were critical (in every sense of the word) advisors along the way. They allowed me to draw on the materials they had created for the workshop, offered advice on the application, and even participated as testers of the early versions of the app.
90% Done, 90% Remaining
Every year the University closes between Christmas and New Years. And in 2019, I was traveling with my wife’s family for the holidays. The evenings were quiet, so every night after we put the kids down to bed, I’d open up my laptop, fire up Xcode and start the process of making something out of nothing. Starting projects is easy. At the beginning I could focus on the low-hanging fruit and solving some of the simple challenges. By early January, I had a working prototype. It was very rough, and it was missing several key features, but it essentially worked.
There’s an old saying in computer science: “The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.” Yes, I had a functional app by January, but in many ways the work was just getting started. Of course, there were features to add, and bugs to fix. But beyond the core functionality of the app itself, there were also many other components that had to be created. I needed to make the icon, the launch screen, write the text for the App Store descriptions, create screenshots for the App Store (in four different sizes for four different devices), and a thousand other little things you might never realize go into creating an app.
Once back in the grind of day-to-day life, progress became slow. A more skilled or full-time programmer would have made quick work of this app. But for me, with a full time job, two kids, and learning as I went⁵, I had to make the most of the limited time I had. Late evenings, nap times, and stolen moments here and there, became my development time. No one was more helpful in moving this app from dream to reality than my wife. Beyond just encouragement, she would occasionally take the kids out of the house for the day, so I could have hours of uninterrupted work time. Without that support, I never would have made progress. And over the last couple of months, she urged me (sometimes strongly) to push the app over the finish line.
I’m not going to get rich off this app. In fact, I may never break even on my Apple Developer annual fee–the $99 annual fee just for the privilege of being able to submit an app to the App Store. But that was never the point. I’m incredibly proud that I got this done, and I’m proud that I can say I’m an “app developer.” Now, onto the next app…
- Nowhere does it say your app actually has to be wildly (or even moderately) successful to count!↑
- Billionaire I’m not, but it still worked out okay. I met the love of my life, have two hilariously
weirdadorable children, and have had wonderful experiences, mentors, and friends in my (still young) career.↑
- Twice I tried the highly-regarded Stanford iOS development course, but found it too frustrating to be in a “class” where I couldn’t ask questions.↑
- For more about peer coaching, see the app description.↑
- Not to mention a pandemic.↑