Note: This issue’s comment relates to app design, but the writing is less focused and more personal than I usually try to be in my comment. Feel free to skip it and go straight to the links if that doesn’t sound like it’s for you.

This article by Lukas Mathis on streaks and habit building¹ that I linked to a few weeks ago has stuck with me since I read it. He opens with:

For a lot of people, including myself, streaks are a powerful motivator.

They are for me, too, but I always hit a limit with daily streaks after a few years. I reached that limit this week with an app that Lukas talks about in the article and one that generally does a great job with its implementation. Duolingo.

I started learning Spanish using only Duolingo almost two years ago, and until a few weeks ago, my daily trip to see Duo and friends was something I looked forward to. I felt myself progressing from month to month, and while I am far from fluent, ¡puedo hablar un poco de español ahora!

Yesterday, I deliberately let my Duolingo streak lapse. It had stopped being something I looked forward to, and I had even begun to “cheat” by finding the quickest way to extend my streak. I could get it done in less than a minute, but I didn’t feel good when I used that. Worse, while a minute of Spanish every day is better than nothing, I knew I wasn’t learning anything new.

In Lukas’ article, he references Craig Grannell’s idea of offering “redemption” after your streak is lost. That’s a good idea, but it wouldn’t have worked here. I need a break from doing it every day.

The worst bit about losing a streak in an app you care about is that it’s a total loss. I’m now back on day one, and I know that tomorrow, Duo or Zari will attempt to push me to start a new streak, which I don’t want to do. I need something to keep a little pressure on me to continue learning, though.

The design of any habit-building feature like a streak counter is a delicate balance between being so forgiving that it loses its motivational benefit and the completely unforgiving stance that Apple Fitness takes, where a one-calorie slip-up can bring a years-long ring-closing streak to an end.

Of course, I have thoughts on how both of these apps could work on this issue, but this isn’t a feature request to Duolingo or the Apple Fitness team. I’m sure their internal conversations have covered this topic more times than I can imagine!

I have a couple of ideas that might go beyond the obvious, though. Rather than go into specifics, I’ll broadly outline them. The first is less valuable motivationally as there’s no urgency to it, but I’d love to see historical stats in areas I’m trying to build positive habits. How many days have I practised in the last year? Is that trending up or down? How many hours have I spent practising? How many new words did I learn this month? I’d like to see my overall progress, which brings its own kind of motivation. Apple Fitness already has already started implementing this kind of feature.

Then, I think quests and achievements² are interesting, especially for long-term goals rather than as a daily motivation. I’d love Duolingo to work with me to push me towards areas of Spanish in which I am weak or want to improve. Or, with Apple Fitness, rather than assigning me an auto-generated monthly quest, I’d love to feel part of the process by guiding it on what I’d like to achieve before setting my monthly goal. Would this work for everyone? Nope! Some people want something simple, and some want nothing at all. I’m sure a group of people who would benefit exists, though. I know I would.

For now, I’ll give HabitBoard and Streaks a go again, and I hope this perspective on the user side of these features was useful if you're designing something like this.

¹ You can ask difficult questions about the morality of habit-building techniques in apps, but when the habit is learning something or improving fitness, I don’t think that’s an issue, and that aspect of this kind of feature is not the subject of today’s comment.

² I know David Smith did some work with achievements in Pedometer++.

Dave Verwer  




And finally...

As someone who discovered both Ruby and Objective-C at about the same time, this spoke to me. ❤️