blakehawkins.com

zen

Posted 2022-10-30

I recently built and published an android app. I had a number of experiments in mind as part of this. Some of those experiments were big, and others were small.

zen

zen is a deliberatively simple mobile app that does almost nothing at all -- it just recommends a sample of relatively healthy activities, written in a short form like "drink water".

The intention behind the offerings is to aid with mindfulness. Mindfulness as a topic was one of the experiments, and so was the fact that the app does almost nothing at all.

Ausgangspunkt

I worked at Palantir from January 2019 until two days ago. I sometimes felt that I wasn't learning much. But in hindsight, it's mostly just that I didn't learn much technically. On the other hand, I developed a lot in terms of soft skills. I am not talking about writing better emails -- I'm talking about things like product strategy, behavioral psychology, cognitive science, and decision-making.

One of the things that caught my attention at Palantir was that it's possible to work on things that really matter. When I say "possible", I'm not just talking about a physical capability, but something more like: software engineers can reasonably and practically focus on humanity's real and biggest problems, profitably, ethically, and in direct competition with the FAANG job market.

This brings me to my overarching experiment.

Experiment 0

Hypothesis: it is possible for me (an individual) to meaningfully work on something that matters to humanity in my free time.

As boring as an android app sounds, I actually thought about this for days. What are humanity's biggest problems? Which ones could I realistically move the needle on by myself? What's a practical and low-investment way to make a difference?

I could only spare a few hours total on this project, so I did have to be quite critical as to what would be suitable.

I decided pretty quickly on mental health. This was during the ongoing COVID pandemic. I read a number of articles about the projected long-term impact on children who were stuck schooling remotely via video conference, which led me to believe that mental health issues for youth will continue to be a problem in the near future.

I had previously used an app called "noom" -- broadly related to mental health, but more focused on the cognitive science of self-control and habits. I think that service is on the right track, but there were many things that I disliked about it (and some things that made me rage).

As I thought about the problem space and my expeience with noom, I decided that there was a product gap for a mobile app which can be opened from time-to-time in a low-stress way.

This led me to my first sub-experiment within the project.

Experiment 1

Hypothesis: it is possible to build an app that people use, share, and return to without behavioral manipulation. That means no notifications, no gamification, no "sharing" infrastructure, no socialisation, no advertisements, and no data harvesting.

At this point I felt enthusiastic. I had an idea, a direction, and constraints. I was going to build a mindfulness app related to self-control with an express focus on simplicity and privacy/civil liberties.

More experiments

I made more decisions whilst building the app, but those were mostly focused on learning experiments and random ideas rather than concerted goals. For example:

  1. I elected to use the traditional android java framework rather than more modern UI tooling. (Hypothesis: the android SDK has gotten better since I last used it in ~2014).
  2. I used io.vavr and wrote functional, exception-free code modulo the demands of the android SDK. (Hypothesis: functional control is applicable and productive within any framework).
  3. I elected not to tell users how to use the app, but instead tell users how the app respects your civil liberties. (Hypothesis: users who are provided guidance stay longer, but some users will stay regardless, and curious users will stay longest). (Hypothesis: if users don't get mindfulness value out of the app, they can at least learn about P/CL).
  4. I focused on building a prescriptive and simple user interface without being prescriptive about what the app is for or how to use it. (Hypothesis: the functional behavior of the app is the interface, which is more important than anything else).
  5. I went deep on simplifying privacy -- in addition to having no data harvesting, there's no remote data (authentication or servers) at all, and even the local data lives in a fixed-size cache. (Hypothesis: elimination is the surest route to the simplest interface.)
  6. I wanted to focus on users who might not realise that what they're doing is related to addiction, self-control, or mental health. The app doesn't really mention these things. Instead, it just gently nudges you in a positive direction e.g. "You stopped to think -- what will you do instead?" (Hypothesis: the majority of potential users don't want to acknowledge that they're capable of forming addictions).

Learnings

  1. Marketing matters. With a user sample size of five, and zero play store reviews, I have no idea if people like the app or what the results are to many of my experiments.
  2. It is possible to write a meaningful android app in a few hours, but it will take another few hours to jump through hoops getting the app published.
  3. The traditional Java framework for android is still garbage.
  4. I still love io.vavr.
  5. People will not just figure out the app and will be rather puzzled by how to use an interface. Put another way: a simple interface in usage does not equate to simplicity in understanding.
  6. A small project has very limited scope for impact and likely not worth it unless the main goal of authoring the app is pedagogy -- in which case why constrain yourself to building something that matters for humanity? Next time I would 10x the scope and establish a "marketing" plan.

Big thanks

crwi.uk gave me (surprisingly) deep and detailed user feedback on zen. Thanks again!