Lessons Learned Shipping Impact for iOS
I shipped Impact earlier this year. Impact is an iOS App that helps CrossFit athletes plan and log their workouts. I’m happy with the progress I’ve made with it so far and after some reflection I have ideas where I want to take the App next. This is what I learned shipping version 1.0.
1) Ship Early
I shipped the first version of the App to TestFlight after a few weeks. This was very early–maybe even too early. The experience was buggy. The views and animations were janky. There was no signup or login flow. Saving and loading to disk or the network wasn’t even built. The data that had had just been entered would disappear every time the App was relaunched.
However, it was critical to ship this early. Was I on the right track? Did some bit of UI make sense on my screen size device but not on another? Should I prioritize one feature over another? Is adding an animation critical to creating a magic moment or is it just gratuitous? This feedback was critical.
Products consist of a few very large decisions and thousands of micro-decisions. Both are criticial to get correct.
It is key to let initial testers know that they are receiving early access to the App. The App shouldn’t be relied on to get day-to-day tasks done. It is important to let testers know that their feedback is important and that it will actually affect product development.
2) Ship Often
This leads to the next point. The best way to make progress is in short, bursty, iterations.
I shipped a TestFlight build almost every week. I paired this with a demo video that explained what was new in the build.
Sometimes, I would receive feedback from a build and put together a fix and ship another build the same day. This led to a positive feedback loop. It kept my morale up but it also kept testers engaged. They felt like their feedback was resulting in progress.
3) Listen to Athletes
Impact does not have users. Drug dealers have users. Impact is for CrossFit athletes. Impact is for CrossFit coaches. Impact is for CrossFit affiliate owners.
The way one speaks is the way one listens. If one calls people “users” then they will treat them like nameless, faceless slot machine pullers that should be served another ad.
It is clearer to map the job-to-be-done for a CrossFit athlete than a generic user. How does a CrossFit athlete prepare on a Sunday night for the week? How do they prepare before a WOD? How do they train during a WOD? And what about after? What language do they use?
How does an athlete interact with their coach? How does an athlete interact with other athletes?
Start asking questions. Lots and lots of questions. Ask what’s working. Ask what’s not working. Don’t ask for solutions–that’s your job. Ask about their day before they need to complete a task. Ask about their process. Listen for complaints about current tools that they use.
I am a software programmer. My knee jerk reaction is to write more code. I guard against this by budgeting my time 50/50 between customer development and product development.
When in doubt, send more emails asking questions. Personally meet people when you can. Schedule FaceTime calls. At the end of each meeting ask for three specific people that you can speak to next.
Don’t take no for answer. Don’t take “I don’t know” for answer.
Ask clearly, “Introduce me to three people that you believe that an App like this could help”. Then shut your mouth. Let the awkward silence do the work.
This is how the flywheel of feedback spins up.
5) Don’t Make Work
The key learning from shipping 1.0 of Impact is that the App was too much work.
The CrossFit athlete archetype is a high-functioning, type-A personality. They wake up to train at 6am before work. Or they train at lunch time or right after work. They train 3 or 4 times per week or even more.
A CrossFit athlete spends $150 to $250 per month on their membership. They spend even more in food, supplements, and gear.
They work more than 40 hours each week. At least. They volunteer. They hike. They have a dog. They have other responsibilities.
What they don’t have is spare time for more work.
The fundamental learning from version 1.0 of Impact was that the App couldn’t make more work for the athlete without a huge payoff. The App should reduce work for the athlete in the best case scenario. And athletes are willing to trade money for that.
6) Make Magic Moments
The opposite of making work is making Magic Moments. The best Apps reduce the time to the first Magic Moment. There should be a Magic Moment during signup. There should be a Magic Moment every day. And there should be an even bigger Magic Moment every week.
Every feature should funnel athletes to the Magic Moment. Every tap and every scroll should be in service to the Magic Moment.
Magic Moments are sometimes called the job-to-be-done. Magic Moments are more than that. They fullfill both a functional job as well as an emotional job. They fullfill a need and also a want.
A Magic Moment is more than just getting the job done. A Magic Moment is getting the job done with style.