Discoverability and Productivity

Published: 2020-04-18

Recently I've been exploring options for solving technical problems that I just don't want to get into, or for which there are already ample solutions in the wild. Things like:

  • Authentication and authorization with third-party APIs
  • Scheduling (cron)
  • Server side functions without a server

An Example: CRON

  • Do I use cron often enough to learn the commands? at present the answer is a clear no. But is cron occasionally useful? Hell yes. When it's useful it's extremely useful, which is to say it's straight up super useful I just don't need it that often.

An example: Dev ops related tasks

  • Do I manage infrastructure often enough to learn all the gcloud commands? No. However, when I need some infrastructure a good UI is very much appreciated. Also, I do manage infrastructure, just not very often. So I don't have much incentive to become a dev ops wizard and yet I still need to do the task sometimes.

Exploring the options

Let's look at some of whats available in the wild right now

  • They really tend towards NoCode as opposed to LowCode, which means their UI is quite advanced but if you are inclined to actually write some code you might find yourself meandering through the UI for minutes on end just to write the equivalent of a simple function. I'm thinking specifically of logic statements, filtering and data mapping.
  • Their integrations really work which is impressive. It's no mean feat to support ever-changing APIs.
  • Not much else to say about them since I just started playing with the service, but I'm a fan.
  • Free to use but not for commercial interests. Still, may well work for personal automation. The reason this is more worrying is that if it doesn't work out as a business it may completely lose traction.
  • Abysmal UX, although it is possible to get things done. It's a non-trivial product so I know some people put a lot of time and effort into it. This is certainly not a critique of those people, but I feel I should not pull any punches here. I gave up on using IFTTT multiple times before ever getting it to do anything meaningful because I couldn't figure out how to create a new workflow. Hard to describe in words, but I found myself expecting a "create new" button so much that I didn't even go looking in other parts of the UI for it. I thought it was impossible to do anything other than use premade workflows.
    The actual area to
    The actual area to "Create" a new workflow is in the profile dropdown menu... why?
  • Currently certain endpoints (like YouTube) are pretty limited, but they're actively working on it.
  • Node-red
    • I saved this for last since it's probably the most promising of the self-hosted solutions. Looks very powerful and fairly intuitive to use. More importantly it looks extensible and community supported.
    • What's troubling is that I'm not sure why it exists. It seems to be an IBM project, but why? If it remains free and open source, what's the incentive for IBM? They do offer to set it up quickly for you in their cloud infrastructure, but that doesn't seem like a big enough lift to put them on a competitive footing with AWS or GCP.

I've been playing around with Node-red recently and so far it seems like it might just hit the sweet spot of not overemphasizing "No code" while still providing useful UI abstractions over many common functions.

A middle ground

My thinking has gravitated to this idea, that there must be a middle ground where you know in your soul and muscle memory that which is relevant most often (this makes you productive) and for all the rest you have a discoverable UI that let's you be productive enough given how little you use the service or function.

The tricky part is it's going to be different for everyone. For some, the hyper specific gcloud or aws commands are extremely relevant and it pays to know them and use them. For others, maybe the NoCode approach is good enough and nothing specific enough to warrant real code is ever needed.

I of course am somewhere in the middle. My thesis is this:

LowCode solutions could prove to be the perfect medium to capture all the marginal use cases. All the use cases where it's not worth it to learn the thing well, but prior to LowCode learning it well was the only option.

About me

I write about life as well as my mistakes and successes as I learn to build a business. I'm building a self-funded startup (Pairwise).

PrevAll Posts

Thoughts? Let's chat on Twitter or via Email :)