After 15 years in software engineering I have won the stress. You don’t need to wait — start it now!
I was very unwell a few months ago. A series of stressful events in software engineering over the past 15 years had triggered a disorder in my body, and also in some private domains. Because I am a person of character, when I do something, I care about doing it correctly and, of course, not disappointing myself first and the people around me so they can count on me.
I worked hard to meet deadlines, maintain a positive atmosphere, and so on. Even though I had seen a lot of red flags, I ignored them. During my absence from work, I paused and started thinking retrospectively about what could have been a root cause to help myself to be better than others in case they are in the same situation.
I spent about 2 months on R&D, which was out of my professional domain, in fields such as psychology, sociology, and medicine, and I realised how they are related and a critical part of keeping yourself healthy.
Before I go into some software engineering tips, I need to clarify what I discovered in the Biopsychosocial model.
I need to clarify what I discovered in the Biopsychosocial model.
George Engel came up with the Biopsychosocial model in 1977. It says that to understand a person’s medical condition, you need to look at not only the biological factors but also the psychological and social factors.
- Bio (physiological pathology)
- Psycho is a collection of thoughts, feelings, and actions, such as psychological distress, fear/avoidance beliefs, current coping methods, and attribution.
- Social (including socio economic, socio environmental, and cultural factors like work problems, family situations, and benefits and economics)
- People with chronic pain often use this model, based on the idea that pain is a physiological behaviour pattern that can’t be put into one of three categories: biological, psychological, or social.
A picture of this model is shown in the diagram below.
The human body contains an emotional centre, which perceives emotions basically as 6 factors that are formed in 3 pairs.
• Satisfaction factor (A) * Irritation factor (B)
• Exhilaration factor ( C ) * Depression factor (D)
• Good factor (E) * Bad factor (F)
When these things are combined in different ways and with other things, they create constructed and complex feelings. (A) and (B) are short-lived and cause tremors, a faster heart rate, and more energy in a short time.
Depending on the situation, they can be pleasant or annoying to the person, and sometimes they can cause sweating. While © and (D) have to do with how people feel and how proud they are of certain things, they make a person feel happy and sad, causing their energy level to rise and fall. These last about a year.
(E) and (F) last long and make a person feel good or bad. They stand for positive and negative ideas. In the same way, when thought is formed, it is labelled with any of these things, which shows how you feel.
This can be interpreted when it is bridged to mathematics and the theory of numbers. The Consciousness Centre has a feedback system that shows how people behave, and it helps people understand what their bodies are doing. Together, self-intentions and self-expectations lead to self-control and maturity, which disrupt and change how one feels. So you can figure out how you feel and what you think if you carefully think about them.
So one or more of the six factors can be used together to make someone feel something, but people show their thoughts based on how they have learned to categorise their emotions
Common sources of stress in software engineering
Let’s discuss how to use and apply these factors in software engineering, which might be true for all sectors. I’ll talk about some of the stress that software engineers often face.
Let’s be honest in the first place
People aren’t always honest when they need to say they don’t know something. This is one of the most common problems I’ve seen around in the 15 years from a junior programmer to the CTO of two companies. “I don’t know, but I’ll look into it” is a magic phrase, but you must feel it.
You should find your place
Also, if you’re not interested in some topics, like Frontend, Backend, or anything else, let’s be clear about that from the start. You have a talent for something else. Software engineering is a big field. Even if you are interested in something other than Frontend, you can still do well with Algorithms, QA, or maintaining Networking, why not? When I retrospectively review the teams where I worked, I have seen common patterns in why people behave like that.
Understand the problem before you commit on something
Almost every team has a group of business analysts who cannot, for any reason, give precise requirements. I can’t blame the business analysts for this. Maybe they need more time. However, the point is that you should deliver and commit to something only if you understand expectations and what should be done, otherwise, DON’T COMMIT TO IT. Also, almost every team has 20% of people giving the outcome, and 80% try to take credit for that. Very similar to the Pareto rule. Let’s be aware of it!
We have a star
People in the team might feel less confident since we have a “star on the team”. Like other team members, your voice in the group is regularly essential, so do not be shy. Let’s speak, let’s share our experience, even from your childhood, if necessary. Some people have more knowledge and experience than others, and I have seen them use it against people who do not. Genius, by definition, comes from creativity, which can transform one domain into another and improve the original domain. So let’s be creative and solve problems using mistakes from other fields. If you have less experience and are giving your best, you are not less critical for a successful project!
You have to know your capacity
Be it knowledge of a particular technology, your experience in the business domain, what you will solve, etc., your estimate is your estimate, and an estimate of the team is the team’s estimate. That’s why you should use best practices from the Scrum and try to avoid giving estimates without a team. This is a topic in itself, but in a nutshell: use complexity metrics instead of time.
Anxiety around pull requests
You should feel relief when you get the PR comments from your team. It means the reviewer actually read and thought about them, which gives you more confidence that the solution is correct. If you see someone just put comments without proposing another solution, do not accept it easily. It would help if you asked for a solution since this comment is unacceptable from PR Review’s ethical perspective.
Also, please consider that sometimes people cannot express their feelings just by writing a form, and you might think someone is angry or upset about you. I have seen on numerous occasions this is not true. Since I could be a better writer of PR comments, my intention was always to help and provide my opinion on a solution with clear resolutions on how I see that problem solved. You always have options to jump on a call session and collect more information.
Commenting on PR’s does not mean it should always be acceptable by you. If you see that this solution is better, you should not feel bad about it since you have to keep in mind everything can be better, so you just take this as a lesson.
Also, everybody can have a bad day, so do not take it as something negative if you sometimes see a bad comment from someone, but if you see that this pattern of nasty comments is repetitive, let this be a red flag for you.
It would be best to speak out when you have a chance, for example, during sprint review sessions. Please remember that you as a person are not your code and every code can be written better.
Strategies that software engineers can use to help manage stress
All of these things above cause you to have a lot of stress. I’ve made some assumptions and told you briefly how to solve them. I will discuss each one separately and explain in detail, in one of the next articles, why they are essential for you reading this.
One of the most critical aspects of this industry that is often overlooked is ethics in engineering. This principle can be applied across various branches of engineering, not just software engineering. It discusses the importance of ethical practices in software engineering called “Honesty and Integrity in Software Engineering”
Honesty and Integrity in Software Engineering
This is the second article in the series “After 15 years in software engineering I have won the stress. You don’t need…
Are You Making These Common Empathy Mistakes in Your Pull Request Reviews?
Welcome to the third article of my series on stress management in the software industry. In this article, we will take…
How to know how you under big stress?
Cortisol is a hormone that the adrenal gland makes when it feels stressed. It is essential for many of the body’s functions, such as metabolism, the immune system, and blood pressure control.
When the body feels stressed, it releases cortisol to help it deal with the threat or challenge it faces.
This is called the “fight or flight” response. Cortisol can help the body deal with stress in small amounts. Conversely, having high cortisol levels for a long time can be bad for the body. It can lead to weight gain, a weaker immune system, and a higher risk of getting some health problems.
If you notice any of these signs, you should see your doctor and get your cortisol checked right away.
I started to think about writing about this subject because everything I had found about it was very general, along the lines of speaking with your manager, communicating with your team, managing changing requirements, including HR, etc.
I have not seen someone explain how and why this should work in reality. Also, I want to help my colleagues worldwide and make this industry a better place to work.