January 18, 2013

The Productivity Fallacy

Technology tends to serve one of two purposes - to make us more efficient at some task, or to entertain us in our resulting free time. However, when we fixate on productivity to the exclusion of everything else, we often forget about the big picture. Perhaps the best example of this are people insisting that real coders need to use Vim to be productive due to it's unmatched text editing powers.

This is totally absurd. I spend maybe 10% of my time actually writing code, 30% debugging that code, and the remaining 60% trying to solve a problem. Even if I could write all my code instantly, I have only improved my productivity by 10%. I've found that changing my code patterns to let me catch bugs faster and earlier has had a much more significant impact on my coding speed, because taking a chunk out of 30% has a much greater effect on my overall productivity.

But what about the 60%? I'm sure I could make some of that go away with more powerful visualization tools and intense mental training, but when I hit a problem that's simply really hard to solve, nothing short of a cybernetic implant that makes my brain bigger is going to make a dent in how much time I spend thinking about something unless I want to make a stupid mistake and regret it later.

The issue that's arising from our hyperproductive tools is that our productivity is beginning to outstrip our ability to think. We are so productive we can't think fast enough to utilize it. Vim may be the most amazing text editor ever, but it doesn't matter because I spend more time thinking than I do actually editing text. We're so focused on making everyone super productive we seem to forget that we are beginning to receive diminishing returns from some of our efforts.

One consequence of this is that, obviously, we should be focusing on tools to help us think faster. We need to do profiling of people's lives to find the chokepoints and focus on those instead of doing the equivalent of micro-optimizations in C code that's only called every 5 minutes. That, however, does not concern me. What does concern me is the repeated mistakes futurists make when attempting to predict the future of technology.

This Microsoft video is a superb example of good technology predictions implemented in the worst way possible. The entire video treats human beings as machinery that needs to complete various tasks in the quickest way possible, instead of recognizing that human beings are, in fact, people. Many of the human interactions feel fake because all the interactions are treated simply as tasks that must be completed efficiently, regardless of how beneficial the time saved actually is. Productivity is not important, the way it feels is important.

Futuristic architecture often makes this same mistake, creating cold, bland environments that, while they do feel futuristic, are not things anyone would want to live or work in. We need environments that feel warm, inviting, and natural. When building futuristic environments, we must be extremely careful about where the future is peeking in, because there is such a thing as too much future in one room.

We make things look like wood simply because we like how wood looks, not because we need to build anything out of wood anymore. We like trees growing around our houses. We make our lights look like the sun instead of actually being white. We are constantly making arbitrary choices that have nothing to do with productivity and everything to do with making us feel comfortable. Until designers recognize this and stop sucking the life out of everything in an effort to make it more "productive", they will inevitably be shunned in favor of slightly less efficient, but more inviting designs.

Design is an optimization problem that must maximize both productivity and feel, not one or the other. Some people actually like color in their IDEs and webpages that consist of more than flat text, faint lines and whitespace.


  1. Have you thought of any possible solutions to this problem?

    1. As I outlined in the post, designers need to stop being obsessed with squeezing every ounce of productivity out of all their tools, and instead focus on designing higher level concepts that increase your productivity by giving you more power instead of simply performing tasks faster.

    2. I think you are definitely on to something. Have you thought of what any of these higher level concepts might be and how we can leverage them? Or are they too specific a given domain to generalize?

    3. I can't give you generalized UI for everything, but I have been designing higher level concepts for game design and artistic work, which is what I specialize in. I CAN say that in the future, applications will need to talk to each other using an agreed upon universal API or we won't be able to get anything done.

    4. It seems like we are already going down that road. Currently JSON over HTTP is being used widely as an API for transferring data between applications as well as to initiate user requests.

      One question I think we should take time to consider: "What is it that we want to be able to do?"

    5. I've spent some time thinking about that in terms of what kind of futuristic technologies would actually be useful instead of just annoying, but I haven't gone very far with it because of school/work/life/etc.

      The problem with JSON over HTTP is that its all web based, and the problem with web based stuff is that its an amazingly inefficient platform for doing anything like office work. Javascript is a disaster and HTML was never even designed for user interfaces. The sheer amount of inefficiency going on belies a general complexity problem that is dragging down the entirety of software development, and must be addressed, or our future will be one that's stitched together with duct tape.

      Just as we need to reduce program complexity in general, we also need a simplistic universal API for transferring arbitrary data, preferably between both native programs and web apps.

  2. I thought about this at length yesterday, albeit in a different way which may not have anything to do with productivity itself. It's more of a problem with the workforce in general, and it's that we have essentially begun to take human beings out of the picture. Machines are now performing tasks that human beings once did, and in some sense, are more proficient at it. But that's about where it ends. Machines are still machines, and I think human beings are relying on them far too much to do even the most remedial tasks. We really haven't taken into consideration that, while machines do an excellent job at performing the tasks we assign them (ie. never get tired, cranky, or complain), we're forgetting that many families are losing their primary breadwinner to it. And that has a huge impact on the economics of any society. So yes, while machines and the tools to make them do what we want them to are more "productive" than we can think, the outcome in the end is disastrous at best and a calamity at worst.

    1. I feel this is a consequence of a shifting economy that doesn't know what to do with itself yet. Machines are taking boring, autonomous jobs out of the picture, which leaves humans with the more intelligent creative problem solving jobs. The robots will never give back the jobs that have been lost, but we can teach kids to think creatively instead of making them into factory workers.

    2. I think creative thinking is important. When you are thinking creatively you are thinking about ideas that you haven't really thought of before. You may have considered it briefly in the past, but you didn't really getting into it.

      When you are thinking about ideas that you haven't thought of before you can begin to question what you are doing and if it provides any value. If this leads to realizations that cause a paradigm shift it can help you to begin analyzing your situation and hopefully trying to think of a way to get out of that situation.

      From what I've been able to see anecdotally is that lots of people do think creatively, and may even sense that there might be a problem, but the solutions seem too far out of reach. They are "stuck" because they feel that they can't change the things that they think need to be changed.

      This lack of belief in your ability to affect the world in ways that you would like can leave you in a situation where you will just accept whatever is told to you. You have no real choice. At least from a certain perspective.