Stress and Software Development

10 Oct 2014

It is with a sense of poignancy that I begin this post.

It is World Mental Health Day and I am fulfilling a pledge.

Why do I find it poignant?

It is almost a year since a work colleague at Blake eLearning succumbed to depression. Rob was one of a kind. Loud, extroverted, a man who loved living life to the full. A born enthusiast and entertainer. I cannot imagine another member of a development team who managed to participate in a daily stand-up whilst riding his bicycle to work! But that was Rob. He was much loved by the team, but vulnerable.

Personally, I only really knew Rob through our work. Life gets busy. In retrospect, maybe I should have seen the warning signs and acted. But it’s easy to say that in hindsight. There is only so much each individual can do.

Rob’s passing struck a raw chord with me. After all, I had battled the scourge of mental illness since I was 17. I had known the depths of depression from which there seems no escape. Fortunately for me, I managed to emerge and am still here to tell the tale.

My Story

Maths was my pet subject at school. There were times when I topped the year with full marks. And that was in a selective high school, so I think I had some justification for feeling a modicum of pride.

However, in 1978, my life took an abrupt turn for the worse.

With the passing of time, there are things about this troubled period of my life about which I have a hazy memory. Doubtless, there are some aspects I have suppressed. But I have a very clear memory of an event which must have provoked my self-awareness. I distinctly recall sitting in a trial HSC Maths exam without the faintest idea of how to answer a single question. Me, hopelessly scoring zero in a Maths test. Clearly something was badly out of balance!

In retrospect, this was probably one of my earliest experiences of being aware that something was very wrong with the way my brain was behaving. I came to realise that during the previous few months I had been on a bizarre high. I was about to plunge into prolonged depression.

The year that was meant to be my final year at high school was an academic write-off.

Fortunately, I was able to muster enough resilience to fight through the mental trough and eventually finish high school the next year. Then I completed a Science degree which paved the way for my career as a software developer.

However, throughout the years since, I have had a number of relapses. Some have been more severe than others, obviously with serious potential undesirable consequences. Luckily I have had wonderful personal and professional support to help me back to normal life.

Depression obviously sucks, especially when it’s affecting you. There is an up-side though. Maybe sometimes it is an effort to think about experiences with depression in a “glass half-full” fashion, but it can help.

Reflecting on my experiences of Bipolar Disorder, I think I have gradually learned more about the nature of how mental illness affects me and how I can learn to be more aware of stressors that can potentially trigger episodes that I would prefer not to experience!

The Nature of Software Development and Stress

The relationship between software development and stress is something that, in the light of my own experience, I have been pondering. I know that many stressors can play a part in triggering an unwelcome episode of mental illness. The life of software development can contribute.

Of course, everyone has a different experience.

In my case, I have always had a penchant for patterns and for solving problems. And, by solving problems, I mean the sort that have a definitive answer. In high school and at university, essay writing was never my strong point. I much preferred the challenge of finding the answer to a Maths puzzle or solving a problem with a computer program.

The Problem Solving Bias

More recently I have become aware that my bias towards solving problems may have an unhealthy aspect. Naturally, not all life’s challenges are best approached with a view to solving them as problems. Especially within a given period of time! But that is the nature of what much of my work has been for the last three decades. Solving problems within expected time-frames! Even in these more enlightened days of Agile software development, I find that I too often set myself unrealistic expectations to finish particular tasks before self-imposed deadlines. Old habits obviously die hard.

And that is just for software development tasks in my work.

I have realised that I am prone to subconsciously treat people problems as ones to be resolved within a certain timeframe. Maybe it also has to do with what I now see as the trap of the Getting Things Done approach.

Sure it helps us in life to get things done if they absolutely need to be done by a certain time. However, that’s not what matters most in life.

Building meaningful, trusting relationships with other people is more important to me, as is being healthy and, simply, having fun.

More on Deadlines

Does anyone still use Gantt Charts in software development projects? Probably.

Stress is commonly caused by unrealistic expectations. Anyone who has worked in software development for long knows how unpredictable an activity it is. So, what better way to subject developers to stress than set deadlines?

Personally, I find it much healthier to remind myself of one of my favourite Douglas Adams quotes:

I love deadlines. I like the whooshing sound they make as they fly by.

But appreciating the whooshing is something I need to work at.

Anxiety and Euphoria

Last year, in a post about happiness and programming, I alluded to something the Australian cartoonist Michael Leunig said about creative work:

Disillusionment precedes creativity.

That’s so true in programming. Anyone who has struggled for hours to try to solve a programming problem will understand this. Jamie Forrest’s expression of this aspect of the life of a software developer certainly struck a chord with others!

Hope for a Better Balance

I guess the aim of this post has been to point out a few aspects of software development that I see as stress-related and consequently relevant to mental health. Undoubtedly I have just scratched the surface.

Whilst some of these factors are unavoidable, I am certain that others can be better managed and that, at the very least, better awareness of the risks inherent in software development can help produce better mental health outcomes.

As an example, let me cite the otherwise excellent book, The Healthy Programmer. Whilst this book focusses on exercise, posture, diet, caring for your eyes and many other important aspects of health as a programmer, any mention of mental health is conspicuously absent.

Thankfully, willingness to be open about mental health issues has come a long way since 1978. However, it is my belief that we still have a long way to go, especially in the IT industry.

Postscript

Some of Rob’s fellow cyclists from Blake eLearning are using the upcoming Spring Cycle to raise money for Suicide Prevention Australia. Please feel free to donate.

Disclaimer: This article is based on my own life as a software developer who has experienced mental illness. Whilst I do hold a Bachelor of Science, I have no qualifications in psychology or medicine.

Other posts

Previous post: Barriers to Effective Stand-Ups

More recently: Preparing to speak at RubyConf AU

© 2024 Keith Pitty, all rights reserved.