The reasons are simple
I worked with hundreds of developers over the last 15 years. The one thing that they all had in common, myself included, is stress. I was about 5 years into my development career when I felt so stressed that I knew it would soon start affecting my health. I was able to reflect and cope with it, mainly through books such as “Don’t Stress the Small Stuff and It’s All Small Stuff” and “The Mindfulness Solution.” Those 2 books changed my life.
There are many legitimate reasons for developer burnout:
- Deadlines
- Legacy Applications
- New Programming Language/Framework
- Poor Project Manager
- Speaking with Difficult Clients
These are all legitimate reasons that developers feel stress. Deadlines are always present. Sometimes you’re working on multiple projects with deadlines approaching for each. There’s never a time for a break. It definitely depends on the environment, but agencies are definitely filled with them. Development agencies probably have the highest turnover rate in the industry.
You may also get stuck with a legacy application that sucks the soul out of you. All of the documentation is dated. You can’t setup your environment to save your life. The code seems so antiquated and you just want to work on something new, but you keep getting dragged back into legacy code. You can’t even propose an alternative; the application works and just needs to be tweaked, frequently.
On the opposite spectrum, sometimes you work for a company with an overzealous sales-staff: “Yes our developers can handle that no problem. As a matter of fact, we have a few experts on board in insert random programming language here.” You spend the weekend trying to educate yourself on the new language and complete your tasks over the next couple of weeks. And then…you get a new project with a completely new programming language and the process repeats itself.
One stress-creator that isn’t often discussed is the project manager. When a project manager doesn’t know how to manage the project, this can be one of the biggest stress creators for everyone. The project manager makes promises to the client without consulting the developers or looking at the current capacity. You’re constantly asking the project manager for stuff from the client, like credentials, that should have been there weeks ago. Aside from the developers, the client gets increasingly more frustrated and demands to speak to developers directly.
Which brings us to the next point: speaking with difficult clients. The project manager was supposed to keep you shielded from the client. The client is blunt and doesn’t sugarcoat whatsoever. You may be proud of something you created, and the client gets stuck on one small tweak. They make it seem like no other work was done over the last 2 weeks; all they see is that the image wasn’t replaced from last time. And now, they’re talking to you about all of this directly.
The Big One That Nobody Discusses
I wanted to acknowledge the above stressors, but there is one other that nobody seems to address: the stress developers bring upon themselves unnecessarily. I’ve seen this scenario play out on repeat. I personally try to catch them before the developer becomes obsessed with it. Speaking to developers after they bring up the stress does work, but it’s not ideal.
The conversation usually goes something like this.
“Dino, a few of us have worked well into the night over the last couple of weeks. I think we need an additional developer or two so that we can keep up with the capacity.”
“Got it. I’m curious as to why you all worked into the night. We don’t have any approaching deadlines for anything that you are working on.”
“We just felt like we weren’t producing enough. That last patch took about 3 weeks and we haven’t been able to work on our other projects.”
“That’s perfectly okay; we discussed this. I mentioned to you all that this patch needs to be priority since it’s a CyberSecurity risk. My next statement was, ‘this does not mean that you work on the CyberSecurity risk while working on your other projects. Your other projects will be pushed back by the amount of time that you spent on the patch.’”
“Yeah, I get that…but…I mean it could all be in our heads. I actually do remember you saying that now. If everything is pushed back I guess we’re still in good shape.”
“Let’s bring everyone else in on this call. Guys, I was just explaining to Jeff that when we have unexpected work, that doesn’t mean that we automatically try to catch up on our other projects. You guys are doing great. Thanks for feeling so passionate about your work, but I do not want this cutting into your personal lives. Why don’t you all take a half-day today. It also looks like it’s time for a few of you to take some much needed time off and recharge your batteries. I’ll be looking out for the vacation requests.”
If I see the communication occurring after-hours on Slack/Teams, I step in and ask what’s going on. Why is everyone working after-hours? There are times when developers socialize through work, and that’s fine. However, feeling obligated to work is never the right mindset.
Another popular self-induced stressor is caring too much about your code. If you’re working for a software agency, this is probably the worst thing that you can do for your mental health. The agency wants to produce a product as quickly as possible. No one else cares about your code as much as you do.
There are other times when your code is completely discarded because the client wanted to move in another direction. You have to be prepared for all of this. I’ve seen a multimillion dollar project thrown away after nearly two years of intense development. The client specified that “it turns out that we do not want a native iOS application; We want a cross platform compatible application after all. Most of the API work needs to be scrapped as well since our consultants are pushing for another framework. Here’s the White Paper that convinced us that this is the right decision.”
This is absolute music to a software development agency’s ears. To developers, not so much.
“What do you mean we have to start all over? This is some kind of joke right?”
You as a developer should be happy about it as well. You have a project that you’re extremely familiar with. You get to implement all of those things that you wished you would have done during the first iteration but didn’t have the time for.
And yet, developers quit. They cite stress.
“I poured my soul into this application over the last year and now it’s just being thrown away. I can’t do this anymore.”
Conclusion
Most of the time, developers cause their own stress. There are imaginary deadlines; the coworkers didn’t acknowledge the amount of work they put in; they have to create perfect code.
To be perfectly honest, it seems like most of the IT industry is like this. I’ve seen it with System Administrators as well making sure that their phone is always on and by their side just in case everything comes crashing down. They bring their laptops on vacation and pop-in to meetings just to make sure that everything is still okay.
Learn to reflect. Talk through scenarios in your head. Talk to others and see if it’s really that big of a deal. You’ll quickly realize that most of the stress was self-induced. Maybe work on some personal projects. Keep your mind of things by having a different focus, like the 100 Days of Code Challenge.