Of course, this first post isn’t actually about social software, except for possibly a bit at the very end. Part of what I’m struggling with right now is that I see this convergence of technology and sociology and even management starting to occur, and I have some intuitions as to where it’s heading, but it’s all so inchoate that I can’t quite nail it down well enough to describe it. I spent a few hours talking with my friend Brad a couple nights ago trying to explain my intuitions, and all it did was make it obvious that I couldn’t define even a single specific example of what I wanted to do, and how I wanted to contribute. I think I want to be in that space, but I can’t figure out if I should be a tool-builder, a philosopher, a researcher, a writer or an evangelist. I’m probably in the space of being a philosopher-evangelist right now, I guess.
Brad also asked a good question: Where are today’s collaborative tools lacking? It’s a hard question, because I thought I knew the answer, but when I tried to explain, it turned out to be more elusive than I thought. The best answer I have right now is that today’s tools, like pretty much all of software today, makes the user adjust to it, rather than adjusting to the user. Humans are infinitely more adaptable than technology, and so we live with all sorts of inconveniences because it’s easier to adapt than it is to fix the problem (there’s also an element of conservation of cognitive effort involved).
What would it mean for a piece of software to adapt to its user? It would mean that:
- It would be aware of its environment, able to adapt to the ever-changing context that we live in.
- It would remember past interactions with the user, and respond appropriately.
Unfortunately, both of these aspects are really hard, and easy to screw up. Let’s take the case of Microsoft Word. Its attempt to solve the first condition was the Paper Clip, which would say things like “It looks like you’re typing a letter. Would you like me to bring up the letter template?” It was annoying rather than helpful, and everybody I know turned it off as soon as they could. One of Microsoft’s attempts to solve the second condition was the contextual menus, where it only displayed the menu options that you used recently. This turned out to be a user interface faux pas, because humans are incredibly good at taking advantage of physical location as a mnemonic, so by switching the menus around dynamically, the software was actually increasing the cognitive effort necessary to use the menus because the user had to read the menu entries each time to find out where things were.
So it’s hard. But I’m going to take a stab at a case study to see if I can come up with something better for a really simple application: the to-do list.
Why the to-do list? Part of what I’ve been doing over the past few months is observing how I use technology. I figure I’m one of the more techno-savvy people around, and therefore technology issues that bug me now will probably become issues that affect the wider population in about two to three years. So I’ve been examining is how I use tools like email and my Sidekick in my daily life.
One of the interesting things I’ve observed is that I use those tools in particular as a way of managing my attention queue. When I think of something interesting, or something that I need to do later when I get home, I whip out the Sidekick, send an email to myself, forget about it and go back to what I was doing. Then, later, when I get home, I’ll read my email, and be reminded at a time when I can actually do something.
As a side note, one of the elements in play here is the scarcity of attention. We can really only focus on one thing at a time. It could even be said that we’re moving towards an attention economy, with supply and demand to be satisfied. So finding ways to manage how our attention is directed is a pretty vital skill, and will become more so as we spend our attention in an ever-increasing number of ways.
I am beginning to think of my attention as a searchable queue, currently managed mostly by email. For instance, when I think of something that I want to write about on this blog, I send myself an email from wherever I am with the word “blog” in the subject line, and a couple line description of the subject. Then, when I’ve cleared some time to actually write, I search my email inbox for “blog”, select among the various ideas depending on my mood, and off I go.
I also use email to keep track of events I’m planning to go to, or web pages I’ve been meaning to read, or tasks I’m supposed to do. But it’s a very crude tool, obviously. I regularly have to go through my ever-growing inbox, trying to remember what I wanted to do. Things fall through the cracks. Obviously, it would be better if I had a tool that would handle this for me explicitly: a technologically-enhanced to-do list.
Some elements of this tool that I think are important:
- It would let me tag various types of tasks (blog ideas, upcoming events, errands to run, household tasks like cleaning up, etc.) so if there’s a specific type of activity I want to do (like blogging), I can restrict the output to only those tasks.
- It would let me rate tasks on a length of time involved (I’d keep the choices to minutes, hours, days) (coarse breakdowns reduce cognitive effort of choice – there’s a great study (referred to here) where a researcher demonstrated that “shoppers were ten times as likely to buy jam when only six varieties were on display as when there were 24.”).
- Necessary physical context (e.g. is this a home task or a work task?)
- Priority of some sort is a possibility. But I don’t like it. As soon as you admit an “urgent” tag, everything becomes urgent.
I think I’m capping it at that because if it’s too much of a pain to enter tasks, then I won’t use it.
What would the output be? Well, let’s examine my current system. In my attempts to just get started, I’ve been making to-do lists on little scraps of paper with a mix of easy stuff (get a haircut) and long-term stuff (install linux on one of my old boxes). Then when I’m sitting around on a weekend, and decide to get off my lazy butt and do something, I pick up the scrap of paper, glance through it, find something that’s of the right scale for what I want to handle, and start on it. The downside is that sometimes I glance at the list, and there’s so much to do on it that I get intimidated and don’t even get started.
So the interface I think would be interesting would be very simple. The software knows what day it is (in particular, weekend day or not would help distinguish whether it should select tasks that are long or short). It knows where it’s being accessed (weekday day I’m probably at work, otherwise I’m probably at home if I’m accessing the software). When I have that nag to do something, I pick it up, hit the equivalent of Google’s “I’m feeling lucky” button, and it will give me something to do. A single task, hopefully one appropriate to the situation. I can choose to accept the task, decline without stating a reason, or choose a reason (too long/too short, wrong place).
An interesting corollary of this system is that it will start to sort out my attention queue on its own. Tasks that get rejected every time they’re brought up are sent further and further down in priority until they barely pop up at all. If I have a partial completion status, things that are partially completed would be moved towards the top of the stack because I clearly thought it was important enough to start. Things like that.
That would be the main interface paradigm. Then, of course, there would be the various tag-based restrictions, where I say I want a task of a specific type (“I want to write a blog entry”). I would also have the option of getting lists out if desired (e.g. “What errands do I need to run?” or “Show me all of the tasks labelled as quick”). There would also probably need to be a management mode, where I could edit the database of tasks directly, but that’s only because I’m a geek.
Anyway. It’s a thought. It isn’t really social software, though. Why am I putting it in that category, then? Because it describes the approach that I’m interested in taking towards social software:
- Figure out a deficiency in what I currently use, in particular by observing what I currently do and the hoops I jump through unconsciously to manage my life and my social interactions.
- Figure out what the task is that I’m trying to accomplish that is impeded by that deficiency.
- See if I can think of ways to use context and memory and social interface design to deal with the deficiency.
As I mentioned in that first social software post, I think the approach to take is to design simple tools and see what gets used. And since I don’t have a willing population to experiment on to determine what they find useful, I guess I’ll use myself.
And even simple tools like this can become interesting very quickly if we include the possibility of interaction, of making it truly social software. Imagine a couple that both used this tool with a common database, preferably accessed through a cell phone. There could be joint tasks, or specific tasks. One could be at the store, and get the “shopping” tag list. Then, when the other stopped by the store later on their way home, they would do the same and find out that those items had already been bought.
Or extend it to groups. Imagine a bug tracking system based around this idea for a software group. Or a political organization trying to get out the vote before election day; having experienced the chaos, such a tool would definitely be helpful, if it didn’t suck.
All sorts of possibilities. But I’ll stop here, because it’s a nice day, and Christy just called and invited me to go join her and UBoat for a hike on Mount Diablo.