Malcolm Ocean's roamblog

Conversation App Design ("slack but good")

created 2019-09-13 · edited 2020-07-01 · open in Roam
    • the reality is that "conversation" *is* the backbone of project & team management
    • they're not separate
    • that's, in some sense, the actual insight slack had
    • they just didn't know what a good conversation looked like
    • yeah even Project Management tools are hidden transaction logs of conversation
    • Asana edits are messages
  • Slack and the other apps are all using old dead metaphors.
  • Leaving aside, to some extent, the actual UI (is it more chat-like or twitter-like), what new metaphors might enable a different kind of text-based conversation?
  • Well, for starters, using a metaphor of "conversations" rather than "channels" or "groups" seems like a great start. The latter metaphors assume a kind of staticness to the "who" of a conversation.
    • There might also be something appropriate to having something like a "context" or "room" but these would not be topic-oriented
      • conversations might be topic oriented
  • Then... hm. I'm thinking about how Liminal Space Agency years ago (before it was "LSA") didn't have a slack and we operated using a journal on the dashboard in the common space, and how that worked. And also how we hold all interactions that happen with the entire ecosystem as being part of a larger conversation.
    • eg someone doing the dishes also functions as a conversational move (although interpreting what it means is complex and requires much more context)
  • This page is mostly me thinking out loud; for something I resonate with a lot, that is more polished and beautifully illustrated, check out Max Krieger's Glue concept ↓
    • (although Glue seems a bit more oriented towards 1-on-1 chats, and solving the problem for groups is also a very worthy task and more what I'm ideating about below)
      • QC > there's a structure to conversations, and it's a tree evolving over time
        • MO > like new branches grow
  • List of all terms/metaphors that might get involved
    • conversation
    • membrane
    • fishbowl
    • utterance
    • thread/topic/lens/door/frame
      • question
    • common knowledge
    • move
      • like dance move, like the "move" of "power move"
    • recording
      • this is interesting! preserving the liveness of the conversation but allowing other people to view it later & comment on it. not a metaphor most people would currently be fluent in but that's fine; roam itself barely matches existing metaphors
    • whisper / passing notes
    • room
  • What problem is being solved here?
    • Slack pitches itself as a solution to email, but as this brilliant twitter quip noted, "slack solved email like heroin solved opium".
    • Almost all of the slacks I've used (like a dozen) are actually *not* solving the problem of "too much (corporate) email".
    • They're solving the problem of "XMPP never took off so there's no fucking federated chat system, and definitely not one that works with groups, and the UI of group chat on all other message apps is shit, and not everyone in this group regularly uses those apps anyway, and in any case I want to be able to tune into this context without getting messages from randos or my high-school friends"
      • though I guess this is like replacing a listserv, vs replacing corporate email
      • > tune into this context
        • relates to tuning and also points at user control - this is missing from Discord where you can't easily be only on one server at once - slack gets this right, ish
    • I'm struck that the What problem is being solved here? question is kind of OP
  • I feel a pretty clear sense that ultimately a layer on-top of Roam is what's wanted. Or deep deep integration with Roam. If those are even different.
    • This would allow
      • tracking the ongoing threads by using page refs
      • referring to earlier utterances by using block refs
      • natural nonlinearity of conversations via both those above two structures as well as tree-shaped stuff potentially
      • convergence of topics because "which earlier message is this a reply to" can be more easily "all 3 of these utterances" or "this utterance in light of this thread/topic/lens/door/frame"
    • What makes it a conversation is
      • some amount of real-time notifications
        • which includes maybe separate questions of
          • who do you want to notify in real-time
          • who do you want to notify like "you'll want to eventually make sure you're caught up on this" (something that could perhaps be cancelled or redirected)
          • who do you want to be able to see the message in search etc
            • this could also perhaps have a time-delay, where it becomes visible in search after a few days or a week
            • certainly this should be able to be manually changed later
      • better ability to organizes messages by when they were sent
      • more clear "who sent this message"
      • more clear dated-ness of each message within conversation mode
        • both visually
        • and the idea that utterances are by default frozen - you can later revise what you want to say, but your original utterance was what it was. could even call these "utterances" rather than messages! (kind of weird, but interesting to think about)
          • this actually relates to the thing where if you have a quote from somewhere else, and you make a page link in its text, then currently if you rename the page it'll modify what is apparently an original quote
    • I think an MVP for this could be its own separate app though, with loose coupling with Roam:
      • access to the page/block list for autocomplete
      • importing (some) conversations into Roam for later reference
  • People who are exploring these ideas
  • Other thoughts
    • I'm thinking about Finite & Infinite Games by James Carse and conversations as a fundamental infinite game, and this mode of play being very different than the kind of goal-oriented "we've got to figure stuff out & make decisions and have them be final" approach.
    • whisper / passing notes: an experience of how there's team-visible-only notes right inline in a chat makes me think about how fascinating it would be to have in-context private convos
      • twitter kind of has this with private alts
  • Relevant things
    • A Text Renaissance - ribbonfarm post
      • > There is a renaissance underway in online text as a medium. The Four Horsemen of this emerging Textopia are:
        • Roam, a hypertext publishing platform best understood as a medium for composing conspiracy theories and extended universes.
        • Substack, a careful and thorough ground-up neoclassical reconstruction of the age-old email newsletter.
        • Static websites, built out of frameworks like Jekyll or Gatsby (full disclosure: a consulting client).
        • And finally, Threaded Twitter, a user-pioneered hack-turned-supported feature that has wonderfully revitalized the platform.
    • Slack's "should we send a notification?" flowchart - not simple
  • Notes from my friend Hrothgar
    • when i once did concept brainstorming for trying to design a better group-communication app, i was faced with the following issue: there are THREE relevant dimensions when sorting messages for a user display:
    • 1. chronology (when was it sent?; ordering)
    • 2. context (where was it sent? to what was it a reply?; threading)
    • 3. relevance (what do i want to see?; priority)
    • these dimensions have complex relationships to each other. currently, most apps set relevance := chronology.
    • apps like WhatsApp ignore almost everything but (1) (“almost” because a “reply to” feature gives a little bit of (2))
    • email is clunky and awful but does incorporate (1) + (2) reasonably well
      FB comments, slack, etc have (1) and a bit of (2), but threading is only one level deep, which limits complexity & nuance after a while. could be argued that slack’s “starred” feature is a tiny bit of (3)
    • maybe it’s indeed less important than the others, but (3) seems increasingly important to me. such a high volume of info/messages i get (even as a relatively hermit-y person) when i aggregate across platforms. currently there is only very coarse algorithmic/computer-assisted prioritization for 1:1 & group comms. (FB separately bins messages coming from non-friends; Gmail identifies spam; Gmail also can be set to flag “important” things but idk how useful that is.) but of course we know more fine-grained prioritization can be done, because every freakin social media feed does it. why not for my messages too? at least as a sort option?
    • (ofc, a poorly designed prioritization algo is far, far worse than none at all.)
    • conversations are/can be/should be able to be really complex, but it’s crazy hard to linearize them sanely!
    • so difficult to design a 2D screen UI that allows for complex+intuitive conversations. this discDAG thing is a step in the right direction. real innovation!
  • Places I think slack legit innovated
  • From WorkFlowy Import: "Slack++"
    • "As soon as your users ask for your communication tool to have snoozing, mark-unread, etc features then you know it’s no longer delightful. Then it’s a todo list."
    • Have "today" not start at 00:00
    • Ability to retroactively collapse a bunch of messages into a thread
    • Stuff about fluid conversations, rather than channels
      • eg the ability to grab a bunch of messages from one conversation and start a new conversation with them, with new people
    • Threading more like twitter, less like forums
  • Aside