Low Frustration Tolerance: Curse and Blessing
There's a psychicologicalous condition known as 'Low Frustration Tolerance', (LFT for short... abbreviations, btw, are helpful for those with LFT ;-))
Low. Frustration. Tolerance. I am writing slowly. Just to frustrate the Living Hell out of those who have LFT.
Every day you will see examples of people with Low Frustration Tolerance. You know these people.
You're in your car, stopped at the lights. Light turns green, and before you've put your foot on the accelerator, the guy behind you blares on his horn. Hard. He's got LFT. Bet on it.
To be a programmer REQUIRES a ^^high^^ level of frustration tolerance. Most people with LFT, on the other hand (OTOH ;->) end up as drunks, hobos, drop outs, early-deaths, burn-outs.
(But stick around -- there is a twist.)
So, the only way to be a decent programmer, able to produce good output every single day is to have a high-frustration-tolerance.
The amount of frustration we encounter in the computing world, every single day, is just astounding. Many days our job consists of leaping one hurdle after another.
Sometimes, just for fun, I keep a little log of the hurdles I encounter in a day. They are numerous.
I want to get from A to B. Step A: Something goes wrong. I investigate. Dead end. I google it. Dead end. I check logs. Dead end. I increase logging. More evidence. I google that. Dead end. I download a tool that will get more info. Tool fails to install. I google the installation failure. Dead end. I look for another tool, install that, run it: crashes. I investigate the crash. Dead end. I find a different tool, install that. Get more info. Investigate that. Dead end. Google it. Dead end. Stack overflow it: dead end. Drink coffee, consider taking up smoking. Dead end. Wait two weeks, increase bounty at stack overflow. Dead end. Reboot, check patch level, look for random hints from astrological tables, listen to reggae... dread end. Sometime later, randomly: breakthrough. And on step B.
Annnyway, I've established the first point: a good career in programming requires High Frustration Tolerance.
And yet... I am utterly convinced, that the only way to succeed as a programmer is to have really LOW frustration tolerance.
You have to get fired up by tiny little things. You have to care, dammit, and care deeply, about tiny little points.
You have to pour your heart and your soul into accepting nothing but perfection from that damn regular expression, that damn CSS selector, that damn SQL case statement, that bloody mother f***ing a*****e of a *** **** son of a ******* ugly ***** ***** **** of a **** installation package, so the lucky ******* **** of an end user gets all the joy of a working system.
It's a catch 22.
And sometimes we forget that *both* skills are needed. We fall into the trap of being one or the other.
So here's my latest plea:
Stopping being so easily frustrated. And please, stop settling for second best.
And then: tell me how it's done.
'Steven Nagy' on Fri, 27 Feb 2009 10:04:20 GMT, sez:
This blog has reached my frustration limit. I'm unsubscribing.
'lb' on Fri, 27 Feb 2009 10:08:20 GMT, sez:
wait a second -- that was you behind me at the lights, snagy?
'Mike Fitzsimon' on Fri, 27 Feb 2009 10:11:44 GMT, sez:
I'm thinking the correct combo should be a "High" frustration tolerance with just enough OCD (Obsessive Compulsive Disorder) to get the little stuff right, er, Perfect!
'Matthew Talbert' on Fri, 27 Feb 2009 10:21:15 GMT, sez:
I've never commented before, but I just had to for this. This article describes my life!! Thanks for the laugh; I just stayed up a whole day and night troubleshooting a problem, so I needed it.
'GlenG' on Fri, 27 Feb 2009 10:22:39 GMT, sez:
I'm frustrated with having to type meatbag to post a comment.
And I look a lot like the programmer pictured in the top right of this post.
'Matt Casto' on Fri, 27 Feb 2009 10:41:56 GMT, sez:
Once again, a very insightful article.
My current project has my frustration level very high, but I have to switch into high tolerance mode in order to get things done by a hard deadline.
This makes me think that while a good programmer requires both HFT and LFT ... a _really_ good programmer needs to be able to switch between the two at will.
'lb' on Fri, 27 Feb 2009 10:43:50 GMT, sez:
@Matt et al
I think Mike hit the nail on the head (above):
>"High" frustration tolerance with just
>enough OCD to get the little stuff right
'Gulli' on Fri, 27 Feb 2009 10:57:09 GMT, sez:
Really amusing and spot on.
One resolution à la Postel's Law: high tolerance for the frustration one encounters (at the hands of oneself and others), low tolerance for the frustration one engenders (unto oneself and others).
Another resolution: high tolerance is good insofar as it causes you to keep going (and not going postal), low tolerance is good insofar as it causes you to make things better.
In either guise, HFT and LFT are eminently compatible.
'Helen' on Fri, 27 Feb 2009 11:18:52 GMT, sez:
It also helps if you can tell what matters. Some things aren't worth getting all perfectionist over, some are. :)
'John' on Fri, 27 Feb 2009 12:09:56 GMT, sez:
You neglected to mention the endless frustration of having to strongly rely on tools which crash or freeze or otherwise bug out on you multiple times a day. Like, say, Visual Studio 2008.
'Sam Moreira' on Fri, 27 Feb 2009 12:54:37 GMT, sez:
That explains a lot. Ah! Do me a favor and... when someone tells you how it's done, forward the solution to me... My FT is getting L :)
'Joel Bushart' on Fri, 27 Feb 2009 17:33:30 GMT, sez:
The ideal programmer has a LFT with a very low FRL (Frustration Reset Level) and a LER (Low Escalation Rate).
Basically you encounter a problem. You're instantly frustrated and look for a solution.
You find a hint at a solution (You reset your frustration level to Zero or your FRL has been hit). Then your hint reveals it's not a solution (Dead End). You get instantly frustrated again.
You hit a dead end trying for alternative with no further hints. You get more Frustrated. (Normal people start getting irritated then angry). Ideal programmers however barely increase their frustration level. Due to LER, road blocks and increasing difficulty stopping the frustration doesn't really get you more frustrated at a actively observable rate. (not that you don't get more frustrated and would definitely be seen to be so after a week or two of continuously increased frustrations.)
'OJ' on Sat, 28 Feb 2009 08:34:00 GMT, sez:
Another great post lb.
HFT and LFT go hand in hand every single day of my programming life.
Knowing when and where to apply each is where most plebians fail. The good coders have the ability to pick it, the bad ones dont.
'Dominic Cronin' on Sat, 28 Feb 2009 09:21:35 GMT, sez:
You need to have a LFT. Definitely. Surely, the geek thing is more about how you express that frustration. We get frustrated, and start pushing stack until we get to a root cause that doesn't frustrate us. Then we pop our way back all the way down to the original frustration point, and kick it's sorry ass all the way down the street.
Frustration? What frustration?
'yanky' on Sun, 01 Mar 2009 01:20:55 GMT, sez:
LFT is just what we need, not only for regular person, but especially for programmers. Thanks for making a burst of laugh:-)
'AC' on Sun, 01 Mar 2009 06:02:04 GMT, sez:
Maybe your frustrations have something to do with programming .not
'drhodes' on Tue, 14 Apr 2009 20:41:40 GMT, sez:
writing a log about the divide and conquer process. That's good, I'm stealing it.
'yankee' on Tue, 27 Oct 2009 18:50:33 GMT, sez:
consider those who must say "may i help you?" more than 999 times per 8 hour shift. that's what i do. talk about repetitive motion problems. this is no exaggeration on the amount of people i handle each shift. of course, i must also be a multi-tasker too. thank your great binary gods that you don't have the people problem too.
my monitor has what i perceive to be a short, chubby 'neck' i have often placed my two hands around the neck while talking sweetly to a customer.
'Harry' on Wed, 05 Oct 2011 17:10:23 GMT, sez:
This article made me chuckle and got me thinking, thanks for the read!
'deborah venable' on Sat, 29 Sep 2012 02:33:00 GMT, sez:
frustration is caused when you hold back from beating the crap out of the guy that pulled in front of you from the right lane..WHO REALY HAS A PROBLEM?