Home
Levels of agency

Me, you, and us in software


I've been thinking about these three framings of what is possible with a specific technology:

  1. Look what I can do
  2. Look what you can do
  3. Look what we can do

An example of the first would be when someone (maybe an artist/hacker/nerd) creates a bespoke experience that showcases a way of doing things: maybe a cool visualization of events in their life, a fun automation that connects disparate services and tells you things like the current height of a beloved plant, or an utterly custom web page design to be used only once perhaps as a portfolio site. It can be a way to demonstrate control over one's materials, and a marvel to observe and interact with, but you can't make your own—this isn't meant to cast the creation as selfish, but rather to draw where the line is in terms of your ability to build something with it—perhaps even the goal is to be unique and therefore not replicatable by others.

Most apps fall into the second category by encapsulating the 'principles of an experience' (to roughly paraphrase Steve Jobs): they enable people to create their own version of the thing, be it a text document, map of meaningful locations, photo albums, or pretty much anything imaginable. We now say "there's an app for that" and it's the default way for most people to express themselves through digital mediums. 'Look what you can do' empowers people to explore, create, and then share with others, more so than the first category, so there's an order of magnitude difference in the possibility space, but it's also more complex to build as one needs to consider the assumptions of multiple kinds of stakeholders or 'users'.

In the third category, adding social layers can encourage network effects and moves the technology beyond a tool or utility into collective creation; this can occur through follower graphs, timelines, multiplayer, ratings, etc… Producing a digital artifact has platform native ways for people to interact and react, either passively through comments and 'likes' or more actively through 'remixing' (such as reaction videos on YouTube or lip-syncing on TikTok). It's even more difficult to build than the second category because of the additional complexity of network interactions and identity management, but the result is that the technology starts to take on a life of its own as the experience becomes dominated by how other people use it.

Somewhere between these categories, one can find extensions and customization (achieved through some apps as 'scripting'). When someone extends an app for themselves, it might be an example of the first category, whereas passing that around brings it closer to the second, and sharable platform native 'plugins' or 'add-ons' or 'bots' can bring it closer to the third.

Usability and accessibility can impact where a technology falls on the spectrum: not paying attention to these dimensions makes it harder to move to higher levels of agency, staying more exclusive as "Look at what I/you/we can do, as the capable ones"; as in the first level, it's not necessarily selfish but if the intention is to maximize agency, then this creates a mismatch. Self-hosting generally suffers from this, but there are Easy Indie platforms that enable one-click installation, thereby broadening the potential base of people able to participate. Tools like WAVE can help spot simple improvements to accessibility in web-based projects. Although mainstream software expectations can be an antipattern, a cultural appreciation for the simple and functional can help raise usability standards, turning design into a language understood by more people.

I see adding interoperability between systems and enabling data to be re-combined in abstract ways as kind of another level, maybe "Look what a not-yet-existing entity can do": enabling future possibilities by opening data to be composed by the unknown is, in my opinion, just as transformative as moving from 'I' to 'you' or 'you' to 'we'. The emerging Zero Data ecosystem (keeping data and apps encapsulated from one another) feels promising as a usable example of what this could be like. Automation systems like Zapier or n8n are also useful as a way to ensure data is composable, or at least exposed as an API. It shows to me that #OwnYourData is not just about privacy or autonomy, but also about the cool cybernetic possibilities of a future we haven't imagined yet.

Follow my journey

Find me on Twitter or Mastodon.