Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Promoting user agency in computing

Promoting user agency in computing

Siva Swaminathan

November 07, 2020

More Decks by Siva Swaminathan

Other Decks in Education


  1. Promoting end-user control of the computing experience Interesting ideas are

    in the air; more people are starting to grok an expansive vision of computing. These incredibly subversive ideas are, however, fighting against the inertia of dominant attitudes, so it's worth contextualizing the contrasting vision before digging deeper into it.
  2. Computers you put in your body & computers you put

    your body in "Electric" cars, and "smart" homes are practically the latter (subsuming everything from a bulb to a coffee-maker) Phones, tablets, watches, AR goggles, etc. are practically the former (all the way to cochlear implants, prosthetic limbs, etc.)
  3. Walled gardens "There's an app for that" A vision of

    almost-passive consumption Only mode of expression is through choice among given options (Think: Sheena Iyengar, The art of choosing)
  4. Conway's law, with a vengeance Breaking the universality of computation,

    both incidentally and deliberately Products & services solve well-defined needs, but typically compose horribly.
  5. The software freedom movement Stallman has repeatedly proven to be

    a visionary genius The right to read Free Software, Free Society
  6. Thirst for scale The only way to scale is to

    impose legibility through Procrustean simplifications Calvin Broadus on Facebook (real-names policy)
  7. Ministry of (algorithmic) truth In a medium drowned in content,

    curation becomes exceedingly important. Centralizing curation is a means of consolidating power. Why not decentralize, instead of ceding control?
  8. Always licensees, never "owners" Remote-wiping content from devices (DRM/etc) Surveillance

    capitalism Could be de-platformed on a whim! (email, social media, payments, shopping, etc) Forced arbitration agreements
  9. We shape our tools; our tools shape us "Pull-to-refresh" Why

    promote outrage-porn? Why only 6 kinds of emoji responses on a FB post? Why does YouTube censor content disagreeing with the WHO? Passive consumption is too easy; deliberate use is not.
  10. Why maximize engagement? Because on their deathbed, our users won't

    be thinking, "If only I'd spent more time engaging with brands." Your app makes me fat
  11. Rethinking the computing experience Why Emacs rocks, and the potential

    for Notion as the desktop "I can be whatever you want me to be."
  12. {files, apps, desktop} metaphor sucks Screenful of file/app icons… ugh!

    (>.<) Forced taxonomy of fierarchical directory structure is unergonomic! Email as a pseudo-todo-list! No natural place for liminal data! (Power-users might use an all-purpose notebook/wiki, but very difficult to tie things together.) The popularity of this gateway (go-to-market strategy) is not coincidental!
  13. Crystallizing workflows & processes The hardest part of using an

    app is actually enforcing enough legibility on one's workflow, with the hope that it matches the assumptions of the app. Why not allow users to app-ify their own flows? (IFTTT, Zapier, Huginn, etc.)
  14. B2B no-code products The black hole of Enterprise Software (TM)

    is largely about encoding & automating processes (Think Infosys…)
  15. It's all CRUD clerical work Hardly any of our computer

    usage is actually computing in the sense of transforming data in motion; it's mostly storing and fetching data, with some trivial decision-making sprinkled on top.
  16. "Software eating the world" Most of the hard thinking/transforming/decision-making is

    actually done by a human brain before feeding it in. All it takes to break the system is for a human to respond "fuck off"
  17. It's databases all the way down! The most primitive computing

    concept is not an algorithm but a database – be it an array, a tree, a file, a filesystem, a website, the web/network, etc. The cloud is more a persistent database than a source of compute.
  18. This is why SQL and Spreadsheets are among the most

    successful "no-code" tools, historically
  19. Most apps are just walled DB interfaces! A browser: Viewing/updating

    webpages Office software: Viewing/updating documents, slides, spreadsheets Viewing audiovisual data (actually, not much else…)
  20. Each app is a straightjacket Planning a trip, and booking

    travel & stay Financial planning Why can't I user Photoshop filters on Instagram, and vice versa? Researching a topic Analyze correlations between my exercise & sleep/weather Widget with real-time bus/train timings
  21. How to expose data to the user? Should each tweet/email/post/comment

    be in a file, or whole corpus in a single file? What about likes or viewing metadata? Financial transaction data? Playlists? etc.
  22. What might a usable solution look like? General database of

    blobs (backed by whatever physical media: RAM, HDD, network, etc) Each blob has custom viewers, depending on its type/format User can assemble blob/views as desired
  23. All-purpose command palette Discord "bots", Superhuman email, modern editors Actually

    an ancient idea… In the beginning was the command line, by Neal Stephenson
  24. Is all this reminiscent of something? OOP, MVC, "the Unix

    way", HyperCard… Decouple storage (backend) from access (frontend) Keep the backend stable, and allow innovation on the frontend (tags, search, AI-assisted, etc.)
  25. A great model for practical computing, much better than procedural

    programming Better organizing principle for the school CS curriculum (Bootcamp graduates "coders" who can design apps & websites)
  26. Examples of malleable software (Personal favorites) Emacs, Mathematica, Smalltalk (Pharo,

    Squeak, etc) Notmuch (Next gen.) Perkeep, Urbit, Nyxt browser, Glamorous Toolkit
  27. We need personal clouds Devices that can persistently serve our

    connected clients, as the database backing our applications. (Nextcloud, Urbit, …)
  28. Customizable dashboards Why is the starting point for a student

    the same as a researcher is the same as a manager is the same as an artist is the same as…? Warm starts help inspiration-driven workflows Fight context-collapse, defending against the ubiquitous assault on attention
  29. Reify intent A todo-list is very similar to long-division/multiplication scheme.

    Just like we help kids with math, why can't we help adults reify what they need to do, and then help them execute that?
  30. Tools as an essence of being human Culturally, we are

    active problem-solvers & innovators, with a phenomenal capacity for social learning. Not just tool users, but tool makers. (the heart of convivial technology)
  31. Situated software "designed for use by a specific social group,

    rather than for a generic set of 'users' […] doesn't need to be personalized – it is personal from its inception." Clay Shirky, on Situated Software An app can be a home-cooked meal
  32. The feeling of home Home is where you are in

    control, envisioning a multitude of possibilities. Anything else is implicitly tying knots & imposing blinders. Will inevitably lead to feelings of frustration & alienation.
  33. It's all about the onboarding experience A gentle learning curve

    from novices to power-users Humans are fantastic social learners. Immersed in the right environment, they will absorb ideas quickly.