Photo From Pexels
Originally Posted On: https://beapython.dev/2019/11/30/stress-management-for-software-developers/
It was a Friday afternoon at 5:30 pm. I was just about to pack up my things and go meet my girlfriend at a new restaurant downtown when my on-call pager went off. The availability in one of our teams new services started to decrease significantly and I didn’t know enough about its system to confidently solve this alone when most of my team has already left for the weekend. On top of that we had two days left in our sprint and I still have 5 open story points and 3 more story points in code reviews which would be about 4-5 days of work if I’m lucky but still clearly behind the release schedule. I texted my girlfriend to let her know I wouldn’t make it to dinner for the third time this month and hunkered in my desk for what I hoped wouldn’t be a long night of debugging why the new service was behaving unexpectedly.
– Stefan B.
It’s not unlikely that you haven’t encountered a similar situation to the above and the developer world can be more stressful than some people give it credit for. You and I both know we’re not just sitting at our desks all day hacking away at code and eating free “name your favorite food here”. Managing software cycles, dealing with outages from changes in traffic or dependencies, debugging bugs in development code, having challenging meetings with senior leaders or pushy junior developers, and skimming through log lines in broken integration tests can all drive you to feel stressed out.
Being able to recognize the causes of your stress, how stress affects people, and finding positive ways to deal with stress can help you avoid burn out, feel more energetic, happier, and even healthier.
Also I feel obligated to tell anyone reading this article I AM NOT A DOCTOR. This article reflects my own research and experiences with stress in my life as a software developer; and is a result of me wanting to learn more about stress and share my learning with others out there. If you are experiencing extreme stress, chronic anxiety, or other stress related ailments that affects your quality of life please also consider talking to a professional.
What is stress
It may be hard to imagine a time before cities, meetings, and deadlines but it is said that the earliest versions of recognizable human ancestors are estimated to be from over 2 million years ago. Fossils of humans in our current evolved form have been found and dated to be 200,000 years old. Industrialize humans have only been around for 250 years and as such our current way of life is far different to the way humans have evolved.
It may be obvious to say primitive humans didn’t have cars to escape from dangerous predators or sophisticated weapons to fight them off. Somewhere through genetics there existed a group of Humans whom having encountered such a threat their hypothalamus, a part of the brain responsible for regulating hormones, tells the body to release more adrenaline and cortisol to physically prepare to “fight or flight”.
The adrenaline will increase the function of your heart to help pump blood throughout your body so your muscles can respond quicker, it bind to cells in your lungs enabling you to be able to breath faster and take in more oxygen, it also generates other small reactions in the body almost making you some kind of mini-super-soldier whom can lift cars off of small children in trouble.
Cortisol is used by your body to help process blood sugar and stored fats to generate energy. It also helps your brain control your mood and fear. This helps to be able to respond to a threat in such a way that would result in our early relatives having a higher chance of survival than those who didn’t have such a “stress reaction”. As such humans with an evolved stress reaction were more likely to survive on 200,000-year-ago-earth and pass this biological reaction to their children, compared to a human who may have not even been scared of the charging bear coming right at them.
While it wasn’t everyday early man may have encountered a bear in their face while walking to the nearby stream to get water; In today’s modern society human’s perceive threats that trigger their stress reaction more frequently. Examples of potential causes of stress can include; driving in traffic and you get cut off by a big truck, watching dramatic tv shows, intense conversations with coworkers or friends, receiving dislikes on your social media post, or running behind on a timeline where you may feel your job and livelihood can be endangered if you don’t deliver a high quality feature.
Depending on how you perceive daily situations one person is likely to experience a heightened or lowered stress reaction to similar situations. And while this stress reaction of increased adrenaline and cortisol release has helped humans escape threats our bodies are not evolved to handle this for long periods of time. People that experience frequent heightened periods of stress responses are more at risk of also experiencing a type of reaction that people now call burnout.
Burning up and Burning out
The room suddenly felt as if the temperature had went from 70 to 100; I looked around at all the senior engineers and managers that I was about to give my first large presentation to and seeing if they too looked hot. Obviously not since several big dogs from out of town were still wearing sweatshirts and jackets.
I had been preparing for this demo for the past week and knew in my mind I would nail this but something about public speaking to this many higher ups was intimidating. I could feel the antonymous negative thoughts kicking in, “You’re going to forget your slides and how your service works. They’ll surely laugh at you when you blank on what to say and have to run out of the room and move back to the mid-west in your mother’s basement. Whelp it was good while it lasted.”
The fight or flight reaction was kicking in at full steam as they announced me to present. I went slide through slide as I prepared but there were more “ums” than I’d hoped for but overall it went fine. The audience all clapped at the end and some even gave positive feedback and contributed some ideas I could bring into the project I just spent the last 50 minutes talking about. However, My body felt as if I just been hit by a truck. When I came home I swear I instantly slept for the next 12 hours.
I woke up the next day with a cold and was really dragging at work. I was more silent than normal during meetings and noticeably slower at writing working efficient code. Luckily it was a Friday and I’d be able to sleep it off but this was all tell tale signs of burnout from the preparation I put into the presentation while having to maintain my normal job duties.
– Stefan B
Burnout can strike at anytime of increased stress and be so severe where the only solution before you have a heart attack is to switch careers into being a cruise ship deck cleaner. It is also a large reason to learn to recognize and manage your stress since it can have significant affects on your relationships, as well as your mental and physical well being.
Am I experiencing burnout?
Here are signs you may need to keep reading this article:
- You find yourself losing patience with co-workers, customers, or clients
- You find it difficult to sleep or sleep too excessively
- You have difficulty concentrating
- You have to give yourself pep talks to go into the office
- You find yourself swearing at people in traffic more often when you’re the one driving badly
- You are overly critical at work to people for no reason
- You feel like your job is all for nothing and people have a lack of appreciation of your work
- You resort to food, drugs, or alcohol to bury away the dissatisfaction you may be feeling otherwise
- Unexplained headaches, stomach problems, or other aches make you feel like a hypochondriac and WebMD makes it seem like every one of your symptoms means your going to die tomorrow.
- Your girlfriend or family say you have become distant and not the same old ball of joy you usually are
Well friends most of the above can all be attributed to burnout and stress. If you are 100% happy with your life and job and still have all the above then please immediately quit reading this and go to urgent care because it probably isn’t stress and you may need more than the words from some software engineer.
Is it my company that is stressing me out?
Well the answer to this could be “YES, get out immediately” or it could be a simple no. This depends on the way you think and the way you respond to things that can be considered stressful.
In the case of “YES” there are always teams and jobs out there that might not match your values. There may also be toxic teams who don’t reflect on failures or make changes based on employee feedback. Luckily, I haven’t experienced this first hand but others have made me aware this could be the case. In which case I’d advice you to also considering getting out immediately.
There could also be a case where your values have changed over time and the company direction has gone differently than you expected since you started. Remember, it is always okay to reevaluate your situation and pivot your life plans to realign your current values with your career to reduce the amount of stress you feel.
Stress can also be attributed to our experience levels. A professional athlete in his very first game in front of millions of fans is likely to feel completely differently than the veteran on his team playing in his 800th game. So if coding under pressure makes you feel stressed than code more to gain confidence and grow your skills. This isn’t something drastic enough to warrant considering a career change in your first few years of software development.
To help drill down on this question a little more it helps to know what other situations at work can contribute to increased stress.
- Feeling you have no control: Do you have an intense job schedule with frequent meetings, or lack of influence over the work your team does or how it does it? A person whom often works beyond their area of influence for their current skill set may be prone to feel more stress from having a lack of control. Remember that growing your influence in your company can take a long time depending on how much deliberate practice you find yourself doing.
- Social life imbalance: Contributors to this are long work hours, lonely home life, weak social relationships. Firstly there have been studies that human productivity declines after 40 hours of work a week so try to avoid intense mental work far in excess of this. Second, Humans have evolved in social circles from tribes, to towns, to cities and as such weak social connections can lead to heightened stress. Try to encourage more team outings, reach out to your old friends more, go out and make new friends through programming meetups, or go to tech talks in a new technology you are interested in. Remember to put yourself out there and network more. If you identify as an introvert like me, I find there is still value in these kind of activities for my work life harmony.
- Ambiguous job expectations: If you’re not sure what you’re supposed to be working on or what level of authority you should be taking over your work then that is a recipe for stress. Try to research your companies mission statement, role responsibilities, and your teams documentation for more clarity of expectations. If these don’t exist work with your management and members of your team to get these systems in place to help clarify things for you, your team, and new members in the future to aide in your teams operations.
- Conflicts in your work environment: When you have a certain type of personality and there exist a more senior member of your team with a completely opposite type of personality who may assign you work you don’t enjoy or you frequently disagree on implementation details with this will contribute to your job stress. You can try to proactively communicate with that person to tell them you feel tension and you may learn it was a misunderstanding. You can also raise issues to management and/or your companies HR team. If all pathways to resolution don’t improve the working dynamics then you can try to transfer teams. Working through conflict is better than avoiding it and letting stress build up or to just quit without giving reason.
- Inconsistent work: Do you find your team goes between downs of not having much work to do and periods of extreme sprints with high demands on what your team outputs? Working in such a way keeps a team from finding consistency and momentum. Try to raise questions on what it is you need to deliver, what value are you bringing to your customers, then use this information to drive priorities for your teams work using a project plan that clearly breaks down deliveries. This should help your team achieve more balance in their story assignments and control your scrum velocity.
Is it my own thoughts that are causing me to feel stressed out?
There could be cases where you may be on a very efficient team with clear expectations and consistent 40-45 hour a week work schedules and you still feel you are stressed out. To recap above the feeling of stress is when you encounter perceived threats. These threats can be internal as well as external. Internal perceived threats can actually be more stressful to a person since your thoughts are with you where ever you go and prolonged stress leads to burnout. This causes a fly wheel of stress inducing feelings and thoughts contributing to more mental and physical damage.
To help avoid this cycle lets consider what kind of thought processes can add to your stress.
- Strong associations of identity to your job: Do you pride yourself on the type of work you do or the company you work for? This is generally a great feeling but it can get to the point of being too strong where you may fear making a mistake at work and it affects how productive you are. This can then lead to fears of job loss or insecurity and snowballs into self full-filling prophecies of failure and disaster. Remember to strive for balance and work within your expectations; and remember software is constantly evolving as people learn from mistakes and inefficiencies.
- Taking on too much: Are you a person that says yes to everything? This can end up with you having more responsibilities on your plate then you have time to manage efficiently. You may be able to finish everything you committed to but you may be sacrificing in your ability to take care of yourself and participate in social activities, hobbies, or other stress reducing activities. Operating at this heightened load over months or years will take a toll on your ability to find balance and now reducing this load to dedicate energy on yourself may leave you feeling unfulfilled or lazy. To feel less lazy, you may over compensate and take on even more and end up delivering lower quality work to meet your commitments. Strive to identify your principles and areas of influence you want to be efficient in; such as personal, family, developer, social-being, and prioritize your goals in these areas. Be able to say no to things that would result in your deprioritizing more important items to you in your other areas of self.
- Desire for control: Growing up did you play more team sports or individual sports? If you played team sports did you like to be the one scoring all the points and making all the plays? Or did you find yourself being one that would rather win as a team than losing where you had all the big highlights? I don’t know all the psychology behind this but if you are one that strives for control and being ‘the man’ you may be in for an eye opening experience when you go from being the best coder of your graduating class in college to being just an entry level developer. On top of that, now you’re surrounded by people that were the best of their class that could program circles around your code; literally. Inability to adjust to this phenomenon may cause stress especially if you are unable to recognize this is the case of why you are being treated as a ‘junior developer’ and being assigned tasks you may feel are below your level of awesomeness.
- Thrill seeker: If you are a person that constantly craves your next big adventure, software development may end up disappointing you. Some TV shows make the career out to be an exciting 24 hour hack-a-thon where you are constantly needing to stop the bad guy from infiltrating your system otherwise the government will collapse. Well some software teams may be responsible for just support of legacy systems and can be very monotonous. A thrill seeking person would be very likely to feel unfulfilled on such a team and if they have had numerous failed attempts at reinvigorating their teams software with new tech or design patterns it may be best for them to transfer into a research and development role; or to work for invention based teams working on new products. If you know you are this kind of person please do diligence before your interview to ensure you are a good fit for the position as it’s listed by asking questions to your recruiters and interviewers about the role.
Now that we know what stress is, how stress can lead to burnout, and what work and personal factors can influence a person’s stress level we can now think through how to handle our stress more efficiently. In addition to the suggestions I made in the corresponding sections; here are other activities a person can do to help manage stress as well as affiliate links to books that can provide more information than I can. If you’ve found this article helpful please help me in supporting this blog by checking out the links or sharing this article with others you think it may help.
- Self-evaluation: Periodically take some time to make sure your actions still line up with the things that are important to you.
- Self-growth: Growing leadership and your skills can help you operate more confidently at work and becoming so good they can’t ignore you.
- Meditation: Even if you aren’t a monk many people have found stress relief in taking 15-30 minutes a day several days a week to clear their mind and get back in touch with their own humanity through meditation.
- Exercise: In software development its easy to find yourself sitting at a desk for longs hours everyday. Consistent exercise can reduce depression, raise energy, and help prolong the efficiency of your muscles and organs. After I graduated and got an office job I quickly gained 25 pounds and started noticing affects on my health and energy levels and found more frequent exercise to reduce those negative effects.
- Taking up a hobby: Maybe join a bowling league to socialize more, start woodworking or cooking, or just do something outside of software to help take your mind off of your never ending backlog
- Party More: Remember to get out and socialize and still have fun
- Look at pictures of cute young animals: Just try it and tell me it doesn’t make you feel better
- Pay attention to diet and sleep: Eating a bad diet of sugary processed foods on its own can completely mess up your system. Same with bad sleep. Help your body’s ability to regulate itself by paying attention to how you treat yourself. Aim to avoid processed foods when possible and set a consistent sleeping routine. Avoid caffeine within 6 hours of your desired sleeping time since it will affect how well you can sleep and your overall sleep quality.
- Mindfulness: Remember stress is greatly influenced by how you perceive the world around you and how you tend to respond to that world. Be aware that you can influence how you chose to respond and even facing down stressful deadlines remember that situation is only temporary and you can work to improve you, your team, and your work if you so chose.
Thank you for taking the time to read along and I hope you have been able to learn something new to help you reduce any stress you may be experiencing! Please let me know additional stress tips you have in the comments or on twitter.
Thank you for visiting!
Please remember if you found this content useful and would like to see more python and software development articles from us, help us conquer the google algorithm in any of the ways below:
- Comment your thoughts below
- Share this on your social media
- follow me on twitter
- subscribe to our Youtube channel
- Contact me on the service page for coaching
- Shop through our affiliate links: Python crash course book
- Join as a patron https://www.patreon.com/beapythondev for more exclusive content and my personal weekly schedule and notes I use to keep growing as a SDE
If you didn’t find what you expected feel free to use the contact page and let us know ways we can improve or what would help you grow as a developer better! I am honored by every view and it takes a village to really make this great.