Time Sucks: Emotional Well-being and the Programmer at Work

Yesterday was a hard day.  I was in the middle of dealing with a difficult personal issue, and I came to work anyway.  I am old enough at this point to know better, so it’s a little frustrating to realize that I wasted a bunch of time in half-assed production mode.

It can be difficult to remember just how sensitive this career’s demands are to your ability to muster your mental resources.  If you are a construction worker or a dancer and you tweak an ankle, you shouldn’t go to work.  For a programmer, depression or insomnia or fighting with a loved one can all have that same kind of crippling effect.  Anything that occupies a programmer’s neurons will reduce the number dedicated to the creative elements of the job, and to the pattern-matching and –generating mental tasks required to produce great software.  Anything that requires emotional processing can take away from the social side of the job – coordinating with our team members, listening to feedback, and even reading specifications all require a kind of empathetic connection that becomes more difficult when heavy emotions come up in our personal lives.

For many of us, too, I think it’s likely that the state of flow documented in various places is critically dependent on our ability to turn off the life-feed and tap into the mental vistas from which we can understand systems in toto.

Several times over the last 13 years I have seen advice which amounts, essentially, to “work time is for work, so when you are at work, forget your personal life”.  Perhaps there are folks that can compartmentalize like that.  I wonder, however, how effective that segregation of work from life really is.  Does their ability to ignore pressing issues free any brainpower up?  Or are they just burning up subconscious cycles that could otherwise be engaged in productive mental work?

I know that I personally wasted a lot of work time. I was diagnosed with clinical depression last year, after many years of dealing with what by all accounts was (and is, of course – after a certain point you are never not-depressed, just coping more or less well) a fairly severe case.  I had tried talking to counselors previously and that had failed, but medication worked extremely well in my case, and I experience few or no apparent side effects.  So I consider myself very lucky, and my life is immeasurably better now than it was prior to treatment.  But a part of me mourns all those brain cycles lost to the ridiculous belief that I could somehow put a wall between that part of me that writes code and the part that does everything else.

At this point in my life I don’t recognize a difference between physical and nonphysical problems, at least when it comes to work.  At times like this I have to remind myself that I am not the rock star programmer; I am the maintenance guy.  I often work in places where having your bum in a seat is more important than posting features and commits and not breaking the build.  But in an organization that cares about software, about quality, about overall production speed, I think it’s key to recognize that a mentally well programmer is a more productive, happier programmer.  And I think if I am going to preserve my values, I have to sometimes operate as if I am that other guy.