软件工程中的心理健康
Mental health in software engineering

原始链接: https://vadimkravcenko.com/shorts/mental-health-in-software-engineering/

本文探讨了作者作为软件工程师和技术领导者的焦虑和倦怠经历。 他们讨论了平衡工作需求与个人福祉的挑战,特别是在责任和不确定性增加的时期。 作者分享了他们个人与焦虑和惊恐发作的斗争,并使用 Reddit 作为安慰和验证的来源。 他们反思了从个人编程任务到管理更大的团队和复杂的业务环境的转变。 文本最后提供了管理焦虑和防止倦怠的技巧,包括自我意识、说“不”、保持健康的习惯、设定界限和寻求专业帮助。 总体而言,本文强调了在快节奏的科技行业中优先考虑心理健康的重要性。

我的解释是:作者的论点围绕软件工程的心理代价,特别是在管理角色中。 他分享了他管理团队的个人经历以及随之而来的巨大压力和责任。 他强调了认识和解决行业中心理健康问题的重要性,特别是考虑到颂扬无限生产力和忽视自我保健的社会趋势。 他提到了“修复”错误和改进流程的持续冲动,这可能会导致慢性压力和倦怠。 他承认自己也一直在与心理健康问题作斗争,并鼓励其他人优先考虑自我保健,并在需要时寻求支持。 此外,他还谈到了软件工程的文化方面,包括内向、不善社交的工程师的刻板印象以及对这个职业通常平淡无奇的看法。 他认为,这种形象可能导致普通大众对软件工程师面临的挑战缺乏同理心和理解。 最后,他认为整个社会需要承认软件工程的智力和创造性需求,并将其视为有价值的贡献,而不是仅仅将其视为一个生产过程。 总体而言,作者的信息传达了对承认和解决与软件工程相关的心理挑战的高度重视,并鼓励个人和整个社会的自我保健和同理心理解。
相关文章

原文

I want to talk about something we don't discuss enough in our field: the mental health of software engineers, especially those of us who've taken on the challenge of leadership. As a technical co-founder, I've had my struggles with anxiety. It's something that comes with the territory but isn't part of the job description.

If we rewind back to 2017, it was not a pleasant year for me — my days consisted of panic attacks, constant use of relaxing supplements, and trying to code while being severely under pressure with all the deadlines and new responsibilities. During that time, I inherited the position of Head of IT from my predecessor. I was now in charge of a small team of developers, and our startup has made many promises to many partners. It was my job to make it happen. I was either going to break or deliver. I did both.

Mental health issues still carry a bit of stigma with them. You cannot take a sick day by telling your team, “I have mental issues and need a day off.” Not many people understand what panic attacks feel like and why would you need to take a day off because of them? I understand those people completely. Right until the moment I had my burnout (or a mental breakdown), I didn’t have any idea why you need to take drugs to manage your anxiety. I thought it was all in your head; can’t you control your thoughts? Apparently, sometimes, you can’t.

Author: Sow Ay

When I was first diagnosed with anxiety, I didn’t understand it, so I went to Reddit to read similar stories of people all around the world dealing with the same symptoms, trying to survive the same way I did. It calmed me down during panic episodes. Imagine sitting at your workplace, coding, and then a wave of primal fear running through you, an all-enveloping sense of doom starts consuming you, and you turn to Reddit to read stories about people experiencing the same things. That was my coping mechanism. And it worked.

My story is, sadly, not unique. It’s a story that any software engineer can relate to. I was a perfectionist, a high-achiever who liked to have things under control and in a specific way to ensure everything was running as efficiently as possible. I have my keyboard bindings set up just as I need them, I have my dotfiles organized in a specific way, and I have my automation that makes my life easier. I think most software developers are like that. We strive to be efficient.

It’s easy to have things under control when coding is the only thing that you do, for example, at the junior level. You have a clearly defined task, which your senior colleague refined based on some vague description that your product owner brought them. You debug it, have fun building things, get your next task, and solve some bugs. You have zero worries; your only job now is to get better and learn. Life is good.

As you grow, you understand the realities of business. In business, there’s no place for perfection. There’s no space for having everything under control. In fact, not only can’t you influence most of the things around you, but most of the things are uncertain. Thinking about your next month becomes a math problem with probability variables.

🥸 An example of uncertainty in business is when your CEO tells you they promised a feature to your biggest client and it needs to be built ASAP as highest priority, so all hands on deck. Then a day later they tell you another feature, completely contradictory to the first one, needs to be built as well and is also highest priority. When you tell them they both can't be highest priority, the answer is: make it happen.

This was my perfect storm in 2017 — I was trying to control all of the uncertainty around me:

  • Trying to control the looming unrealistic deadlines.
  • Writing a lot of the code myself to ensure we uphold our promises to stakeholders and none of our developers burn out. Which led to me working more and sleeping less.
  • Worrying about next month’s payroll and trying to control our runway.
  • Maintaining developer velocity and tight budgets, juggling future growth and current issues.
  • Trying to control our developer turnover and making sure our juniors grow.
  • There were days I'd be coding non-stop or in a series of back-to-back meetings, forgetting meals, sleeping, and even what it felt like to relax.

There wasn’t one big thing that led to the burnout. It’s more of a combination of factors contributing to my perpetual state of stress. (Side note: I remember waking up on the weekends, feeling great the first few minutes in my bed, and then anxiety taking over).

Eventually, I saw a doctor and am doing much better now. It took me a long while, though.

Not all deadlines are equal

I’m not going to philosophize about how you need to maintain a good work-life balance and how not doing so may negatively impact your non-job-related aspects of life. But I can tell you for a fact I did not have a good work-life balance before. I think I’m getting better, but it’s only due to the fact that my company is doing better — we have better cash flow, more loyal clients, and a great team. Before that? I thought work-life balance was a myth. I thought every deadline was sacred, every project was critical, and if you’re not online 24/7, it all fell apart. Was that true? It was, sometimes.

💡 Some people asked me — why are you working so much? What’s the worst that can happen? People not getting their salaries and the company going bankrupt. I think that’s a big enough reason to risk burning out. At least, I thought it was. Now? Probably still is a good reason, but I would approach it differently. 

This kind of situation isn't rare. You're always on edge, thinking the whole company's fate rests on your next move. It's like being in a constant state of alert, where slowing down feels like you're letting everyone down. As a CTO or any other tech leadership position, you're making calls that could either make or break the whole operation. And yeah, it's thrilling, but it's also a breeding ground for anxiety.

This one time, for example, when our deployment crashed halfway through right before a major release. The CEO emphasized how important this project was, so we were all hands on deck, trying to get it back up, fearing the worst, that the client would go ballistic if he found out we were delaying the release. I was stressing big time, thinking we had to pull off a miracle, and of course we did.

But you know what? After all that chaos, it turned out the relevant stakeholders were away on vacation that week, and the release wasn't even checked for many days after that. All that stress, the mad rush, and for what? We often stress ourselves over deadlines as if they're set in stone. But are they really? We push ourselves to the limit, thinking we're doing what's best for the business. What if we just… didn't? Not all deadlines are equal. That release could've waited. That deadline was one we could’ve let slip. Our health, our sanity, can't always take a backseat.

Deadlines aren't created equal. Source: Monkeyuser.com

In tech, there's this unspoken rule that you've gotta be all in, all the time. But that's just not sustainable. I've learned the hard way that not every deadline is do-or-die. Sometimes, pushing a release back a week is the best call you can make—for you and your team.

What worked for me

So, as you might guess, I’ve picked up a few tricks along the way that have seriously helped me out. I’m not going to tell you I’m an expert on mental health, and I’m not going to be giving out advice. I just thought I'd share the things that have helped me, just in case you find yourself in a similar boat.

First off, anxiety and burnout are real, and they don't just go away on their own. I learned this the hard way. So, recognizing when you're starting to burn out or get anxious is crucial. For me, it was about noticing when I started to dread work I usually enjoyed and the random sense of apocalyptic doom or when my sleep went sideways. I mean, I don’t think anyone can miss those signs, but it took me half a year to recognize them and go to a psychotherapist. I thought I had the winter blues. Go figure…

Saying “No” to anything non-critical in your off time, as well as setting boundaries between work and the rest of your life. I’m not very good at this yet, but I am learning to shut off after work hours. No reading emails, no "quick checks" on projects, no MacBook even. It's still challenging, but it’s getting better. Also, sometimes my partners call me on the weekends to do something; unless it’s something critical, I tell them I will handle it on Monday. Trust me, the world won't end if you tell someone you’ll do it 24 or 48 hours later.

I hope this doesn't become the norm. Source: Todoist

I swapped my coffee for decaf and cut out alcohol. It wasn't easy, but it helped me feel less jittery and sleep better. I also got into walking. I aim for 12,500 steps a day, usually with a podcast in my ears. It's my new (old) obsession. The steps clear my head and get me out of the work mindset. Plus, hitting my step goal feels like a win every day.

Putting things in perspective has been another big one for me. I always ask myself, "Will this matter in two years?" You'd be surprised how often the answer is no. It takes the edge off the pressure. I allow myself to miss a deadline every now and then. As I mentioned above, not every deadline is do-or-die. Sometimes, it’s entirely reasonable to push things back to worry less.


Notifications on my phone? Almost all gone. If something's truly urgent, it'll find its way to me. This alone has cut down on a lot of unnecessary stress. It's like I've reclaimed my attention span. I don’t get constant DING! DING!

But here's something I didn't expect to have such a big impact: educating myself on mental health and emotional intelligence. Understanding that someone might be fighting a battle I know nothing about made me a more empathetic leader and colleague. It's changed how I interact with my team. I've learned to listen more, assume less, and approach every situation with a bit more kindness and understanding. You never know when a little compassion during those stressful times will help someone avoid burnout.

When I felt overwhelmed, I didn’t immediately seek professional help. I thought I could handle it myself; I was ashamed of going to a psychotherapist, as if my seeking help was admitting that I was broken. Since then, I’ve understood many things. First of all, it’s totally fine to be vulnerable. If you're feeling overwhelmed, don't hesitate to seek professional help. We’re all human. There's no shame in it. In fact, it's one of the bravest things you can do. We go to the doctor for a physical ailment; why should our mental health be any different?

In short, for me, it's been about making small, sustainable changes and being kinder to myself. It's not always easy, and I'm still learning, but these steps have helped me find a healthier balance.

Our greatest asset

You've heard it before, but let me repeat it — our greatest asset isn't the code we write. It's us. Our health, our minds, our ability to be present and enjoy life outside of the terminal window. Software Engineers and Tech co-founders, like us, are more prone to hitting the lows. Depression doesn't care about your GitHub stars or how scalable you managed to build your Kubernetes Cluster.

I've learned the hard way that not every problem at work is mine to solve. I used to take every customer issue personally, letting my stress levels hit the roof. But I've gotten better at recognizing what's within my control and what's not. Can't help a customer because of a time difference or because it's outside my expertise? That's okay. There's a team for that, and it's not all on me.

I’ve been burnt out and stressed out, and it took a toll on my work, my relationships, everything. Only after I finally started prioritizing my well-being did things change for the better. I won’t say it’s all rainbows and ponies now, but things have changed. I became a better engineer, a better leader, a better friend, and a happier person than I was.

If you’ve read this far — know that you’re not alone. Things do get better. If you're overwhelmed, ask for help; there’s no shame. Find what makes you tick outside of work — be it with your family, a new hobby, or just chilling with your pets — and give it the time it deserves.

Any company that measures your worth by how quickly you burn out isn't worth your time or talent. So, I will repeat it again: our greatest asset isn't the code we write. It’s us, alive, and living the life.

UPDATE April 2024: If you prefer watching videos rather than reading, or if you just want to see my face — I recorded a video version of this article. In the podcast-style video I talk more in-depth about the stuff that I wrote here. Here's the link.

Other Newsletter Issues:

联系我们 contact @ memedata.com