4 ms·
The excellent motorcycle magazine MCN (American one, not the low-quality British one) had a series of articles by a psychologist on flow and how to attain it.
by georgieporgie 15y ago
The excellent motorcycle magazine MCN (American one, not the low-quality British one) had a series of articles by a psychologist on flow and how to attain it. According to the series, attaining flow boils down to:
1) Familiarity. You must be doing something at which you are competent.
2) Stress. You must have a moderate challenge. Imagine Notch building his nth dungeon game, and this time he's trying to do it in ten minutes less than his previous best time.
3) No distress. Distress comes from too great a challenge, such that it pulls you out of your flow state (what you call impulses, I believe). Imagine making Notch do his development in C# on .Net, since he's a Java guru (he may well be a .Net guru, too, but let's assume he's a noob for the sake of this example).
Another example of something which causes distress and an inability to reach a flow state would be tackling an integration using a new API which has a non-intuitive interface and lousy documentation.
To build on your example of changing editors or color schemes, I think this explains why we developers are so sensitive about working on other people's code base. It's not simply that it's ugly, or not architected correctly, but that every tiny, unfamiliar element compounds the inability to attain flow. We chastise one another for being self-centered and dismissing others' work as incompetent without objective reason, but within our own brains there's a very real reason. I suppose it is self-centered by definition, though. :-)