Depression and the Software Developer: The Last Straw

Photo © 2007 Jason Eppink CC BY-NC-SA 2.0

Here’s a story I’ve been keeping on the back burner for almost a year now. I haven’t published it until now, because it still hit too close to home. But this week, I’ve scheduled an interview with Sharon Cathcart, author of In the Eye of the Beholder, which I am currently reading, and a memoir Les Pensées Dangereuses. And parts of her story reminded me of certain elements of my story.

This is the story of the software-development project that plunged me into a deep depression (a continuation from part 3 of “Depression and the Software Developer”).

[Note: You can read the story from the beginning in order to catch up.]

It was only a couple months long, but it was the straw that broke this developer’s back. It was the project that made me realize how much I enjoyed making a difference, as I did in my first job after college. It made me realize how important it was to make a difference, rather than just being a cog in a useless, corporate, perpetual-motion machine. Most development managers simply don’t know how to let their developers make a difference, possibly because they’ve never known themselves what it feels like. And to this day, the memory of this painful project keeps me from taking the software-development industry seriously.

The project itself wasn’t that bad. I joined it as a consulting developer, along with a couple other consulting developers. The client had been desperate for short-term help, and I took on the project as a favor for a friend, who was already hip-deep in it. They were also on a limited budget, and so I offered a reduced rate, again as a favor to my friend. That was Idiotic Decision #1. Continue reading

Posted in Uncategorized | Tagged , , , | 5 Comments

Looking for Smart Software Developers

Aaron Edwards is a-Job Huntin’! (© 2006 Aaron Edwards CC BY-NC 2.0)

A lot of companies were looking for Drupal and WordPress consultants this week, and you know what that means: another batch of funny job ads! No, really, I’m really excited about this week’s funny job ads, and I think you’ll agree. Because who doesn’t just LOVE funny job ads?!

Like this real-life job ad from CraigsList, which I swear is completely true, which is looking for “Smart Software Developers,” as opposed to the stupid variety. (And if you’re not a smart software developer, I’m sure they might still accept your application, as long as you’re at least a technical rockstar.) Continue reading

Posted in Uncategorized | Tagged , | 1 Comment

So THIS Is Why I Can’t Find Work

Angry Vampire

I hope you get as big a kick out of this as I did. Here are a couple of recent craigslist ads I did not reply to. I mean, yeah, there’s getting work just to make money. But then, there’s getting work just so you can make fun of your new client.

So, maybe I might have tried to get on one of these projects, just so that I could get some Dibert-esque, “You gotta be kidding!?” blog posts out of them. But I didn’t want to have to deal with the headaches, hypertension, gastritis, and murderous impulses. So I figured instead I’d just write about them here. That should help guarantee that they never hire me. (Whew!)

First up, a startup company advertising for a Linux-Apache-MySQL-PHP developer. Hey, that’s right up my alley! But… Uh… I can only imagine that they’re actually serious. Frankly, this reads like a joke to me. (I added the yellow highlighting below, so that you’ll see what I mean.) Continue reading

Posted in Uncategorized | Tagged , | 11 Comments

10 Things I Hate About Software Development

This blog post is intended to sabotage any chance that I’ll get a “normal” software-engineering job, because I don’t think I could ever go back to a “normal” job. Continue reading

Posted in Uncategorized | Tagged , , , | 44 Comments

Why I No Longer Belong in a Dilbert Cube

The biggest block of time in my software-development career I spent working in an extraordinary job, a very special place to work, with a very special group of people, for 14 years. Throughout the dot-com boom, I stayed there, ignoring the promises of exciting work and increased salary.

But before I worked there, I tried to work at a supermarket, like my very first job. Continue reading

Posted in Uncategorized | Tagged , , , | 3 Comments

Depression and the Software Developer (part 3)

(This is a continuation from part 2 of “Depression and the Software Developer”.)

[Note: This is a recounting of an experience from several years ago. Read the story from the beginning in order to catch up.]

According to psychologist Joe Griffin, the cycle of depression starts when innate needs are not being met. Among these are a sense of achievement and knowing that we are valuable to others. Setbacks like this, however, are just a part of life. What turns setbacks into depression is when they dominate one’s thoughts, they overwhelm him, and he loses hope.

Unfortunately, if my previous work situation epitomized camaraderie, this one did the opposite: Continue reading

Posted in Uncategorized | Tagged , , , , | 4 Comments

Depression and the Software Developer (part 2)

(This is a continuation from part 1 of “Depression and the Software Developer”.)

If one of the most powerful weapons against depression is hope, one of its most powerful fuels is hopelessness.

I attacked my next job with gusto and enthusiasm. The company had previously outsourced a project to an offshore contractor, and now that the fit had hit the shan, they were looking to bring it back in-house. The product was a stand-alone box with embedded software, and they hired me to take over the hardware diagnostics, which are used to ensure that the units sent to customers actually work.

Somewhere, I read that it takes six months for a new employee to become situated in a new job. But I did it in four. And then I crashed. Hard. Continue reading

Posted in Uncategorized | Tagged , , | 1 Comment

Depression and the Software Developer

Motivation: It's not that I'm lazy; it's just that I don't care.

Knowing what I know now, I wonder how I avoided depression for as long as I did:

  1. Stress causes depression.
  2. Perfectionists are more prone to depression.
  3. Isolation reinforces depression.

As a software developer, those frequently go along with the job description. Seasonal Affective Disorder has gotten the rap for at least some of the funk, because many software guys spend most of their time indoors, duty-bound to their office chairs. But surely SAD can’t take all the blame. Long hours of solitary work in front of a computer screen, the amateurish demands of tech-heads-turned-managers, the over-constrained projects, the intolerance we have toward bugs, the widespread myth that software is “free,” and (most importantly) how we as developers respond to these pressures, all these must take some share of the blame for developers’ depression. Continue reading

Posted in Uncategorized | Tagged , , | 7 Comments

Software Bugs, Crawling Everywhere

Software developers have a wonderful explanation for why there are so, so many software bugs. Unfortunately, it’s a highly technical explanation that’s very difficult for the layman to understand. I’ll try to summarize, but be aware that the following is a gross oversimplification.

The root problem is that software is complex. And it’s not just that software has complexity. It has a lot of complexity. And there are different kinds of complexity. For example, there’s necessary complexity and unnecessary complexity, architectural complexity, design complexity, protocol complexity, and API complexity. And then you have process complexity, such as whether you are able to deliver working software or whether you blame your manager and call him a dork.

Needless to say, software developers like to blame bugs on the complexity of software–or on their managers–but mostly on the complexity of software. However, that’s only part of the real cause of software bugs. Software developers have a dirty little secret: most bugs are simply caused by simple human error, and many of these can be prevented. Continue reading

Posted in Uncategorized | Tagged , , , , , | Leave a comment

Too Late, the Code Is Already Written

One way to deal with poor communication on a software project is simply to ignore the people around you and do what you wanted to do anyhow. Of course, this strategy can backfire, especially if you don’t know what you’re doing. But in that case, you probably won’t know enough to notice it backfiring, so it will all work out in the end.

That’s what I did at my first job. Continue reading

Posted in Uncategorized | Tagged , , , , | Leave a comment