Explaining Flow to non-geeks

Posted by sh1mmer on Dec 4, 2008 in General |

So I ended up having a little tiff with my wonder wife Rosemarie this evening. I love her but I was a bit grumpy because I was trying to get some coding done. I don’t like working late, but sometimes needs must. I realised the main problem was that she just didn’t understand why the little distractions matter. To her I was being a princess, and a drama queen. I can understand how my slight peevishness came of really badly when you don’t have an understanding of Flow. Without understanding what Flow is it would be easy to think I was snapping at her.

So, honey, I love you and this is to try and explain.

Book Pages by dwyman on FlickrImagine reading a book. It should be a real page turner, something you are completely glued too. You know the characters, you feel their pain. Then right at the crux of the story, something interrupts you. It’s a little annoying, but it’s ok. You fluff your cushion, stretch your legs and start to read again.
But no! Something interrupts you again. That’s ok. I’m just going to ignore it. But it’s won’t be ignored. You read the same sentence you just read for the third time. Now frustration moves to annoyance.

This is flow, the concept is that you need a certain amount of time to be able to do an activity well. Sure you can read at the drop of a hat but it takes a minute or so to start understanding what you are reading. If you want that total immersion of a good book it takes a bit longer, but boy the feeling is better.

Programming is hard. It’s harder than reading. In fact programming is hard than most things I know because it’s basically continuous problem solving. So programming takes longer to get into than reading, even deep reading. Some studies have shown it can take 30 minutes to achieve Flow in programming. So for a programmer the experience of small distractions can be that much worse than a reader.

Boulders by cherieb on Flickr To put it visually imagine an easy task (such as reading) is like a pebble and a hard task (such as programming) is like a boulder. It’s easy to push the pebble down a hill it keeps rolling until something stops it. But it’s pretty easy to get started again, because hey it’s only a pebble. Programming is like a boulder you sit and lever the boulder with a stick for 20 minutes to get it moving much at all. The last thing you want is something that stops it part way down. Sure it’s a little easier to get it going again half way down the hill, but it sure would have been nice if it hadn’t stopped at all.

So while I shouldn’t have been a jerk, I hope this explains a little bit why I was and maybe next time I’m working a little late I’ll find some space where my crotchety programmer angst isn’t going to make you feel bad.

Share with friends:
  • Twitter
  • HackerNews
  • del.icio.us
  • Reddit
  • Digg
  • StumbleUpon

  • Jan
    Ahh, "Peopleware"!
  • clothesumidirect
    How I feel your pain. I remember the good old days writing C++ and "Want to get something to eat" would happen or my favorite"I'm bored" would pop into my perfect little world. I knew right then and there that trying to compile the forthcoming disaster was going to be a ball. No question I love my wife but I would much rather be interrupted during the football game than during coding.
  • Just curious, can you listen to music when you code?
  • Case,

    I'm a graphic designer ( including web ) and find listening to music or even watching a movie depending on what I'm doing can be the best way.

    Instead of the work draining you or as was mentioned getting frustrated with interactions, it just outs steadily instead.
blog comments powered by Disqus

Copyright © 2010 Kid666 Blog All rights reserved. Base theme by Laptop Geek.