Stepping Away

I’m in the flow with my hands flying across the keyboard feeling like I’m a hacker from some spy film. With each problem I solve my satisfaction increases - like most programmers, I love my job. That is, until my keystrokes grind to a halt as I come across an unfamiliar problem. Desperately clinging to my flow state I try to brute force my way through. It’s like I don’t want the music of my typing to stop. Eyes straining, posture worsening, and caffeine levels increasing I become a 10x engineer - or so I think so. In reality I could be spinning my wheels and if I’m not careful I can waste hours and sometimes days.

After some time of being stuck I start to write more. I will sketch diagrams, break the problem into smaller problems, or highlight things I need to research. Doing this often helps me get to a solution. If not, my scratch pad becomes more of a frustration journal littered with expletives. The longer the problem goes unsolved the more liable I am to jump back to the keyboard and type for the sake of typing. Interestingly my handwriting becomes worse as I become more frustrated.

Eventually life will force me to step away, but I’ll fight it because I’m convinced in the next five minutes I’ll solve a problem I’ve been working on for hours. If I’m late to something it’s likely because I just couldn’t leave my work. However, leaving my computer is almost always the smart thing to do. When I come back my mental state has changed - one that is better suited for difficult problems. I will ask big picture questions, attack the problem from different angles, and will be more willing to learn the problem space on a deeper level. Frequently, the answer comes quickly and is painfully obvious. I just couldn’t see it when I had my flow state blinders on.

How can I get better at recognizing when I need to step away? I've identified a couple signs to watch out for, like my increasingly sloppy, profanity-laden handwriting and a decrease in job satisfaction. I also plan to reassess my perception of productivity - while it's easy to feel productive when I'm zipping around in a text editor, it's not always an accurate measure of real progress. To actually become that 10x engineer stepping away is a skill I need to work on.

How do other people know when they are getting stuck? If you have some good tips or tricks please let me know!