Manage episode 308469552 series 2257924
This topic comes from a listener request made on Twitter. Mina states: “my name is Mina I’m a mid-level backend developer. I really love your podcast ,now it’s my main podcast. Could you give us tips on how to deal with work stress ? And how to be more productive HQ developer? Thanks , keep up the good work” Thank you Mina, we don’t know much about HQ development, but can definitely talk to work place stress and how to deal with it.
Dictionary.com defines stress as “a state of mental or emotional strain or tension resulting from adverse or very demanding circumstances.” Workplace stress happens when your work environment or tasks become so demanding that you experience mental or emotional turmoil due to the circumstances. Some times you are able to control or influence the demands that are causing stress in the workplace. However, most of the time you do not have control over them which causes even more stress as you aren’t able to see an end.
This is just an overview of how work can affect a developer’s stress level. Each category highlights a few of the more common aspects of work related stress. There are many more stressors that developers face on a daily basis, but the five mentioned here are the most common that are seen across development shops. Be on the look out for them, especially as you attempt to deal with demands at your job to make sure you aren’t sabotaging your own mental health in an attempt to make things better. Take a hard look at your employer and ask if they are doing things that mitigate or exacerbate the stress levels of you and your fellow developers. If they exacerbate then look for ways you can effect change. It’s unlikely that a single employer will be all one or the other, more than likely they will be a mix of good and bad ways of dealing with stress. Use this information to help guide your employer to better choices in how to help developers under load to better deal with stress.
Common Causes of Stress for Developers
Technology and services updating too quickly.
One of the most exciting aspects of working in technology is how rapidly it changes. When this occurs too quickly it can induce stress as developers have to learn new functionality, sometimes just to get their applications to work.
Technological changes and updates can typically be mitigated by staying on an older version, however if you stay too long the cost to update becomes very high. Stress comes when the changes and updates are so frequent that you can’t keep up and run the risk of deprecated technology if you stay too long on an older version.
Even more stressful that technology stack changes are when services you are consuming update too frequently with breaking changes. If possible find a different provider who performs a similar service but doesn’t update with breaking changes as frequently.
Lack of or changing acceptance criteria.
You can’t successfully build something if you don’t know what you are building. However, it’s easy to get pressured into starting a project or task without knowing all of the details.
When you don’t have complete and specific acceptance criteria then you may be building something amazing that doesn’t fit the need of the customer. Your acceptance criteria should be SMAR, not sure the T (time-bound) makes sense.
Another cause of stress related to acceptance criteria is when they are in a state of flux while you are developing. Once developers have committed to a task the acceptance criteria should be lock, if something needs to be changed then there should be a new task created for that change.
Inflexible or constantly changing deadlines.
Deadlines are the bane of existence for many software development shops. Rarely do they consider the unexpected things that occur when developing or the reliance on third party services that may not integrate well or may have down time affecting development.
Inflexible deadlines are ones that cannot be changed no matter what happens. These cause developers to work excessive amounts of overtime as the deadline approaches so as not to miss the deadline. The way a company handles missed deadlines will also influence stress level of developers.
The other side of this is deadlines that are in a constant state of flux. This can be more stressful than inflexible deadlines because you do not know if you have a week or two days or a month to build something. These encourage developers to rush and cut corners because they have to be “done” at any give point or suffer consequences. Now it is Ok to push deadlines back as needed but only when necessary or the deadline becomes pointless.
Scope creep happens when either your deadlines for a project change or new requirements are added during development but the deadline is not adjusted to match the workload of adding those requirements. There are two ways to handle scope creep that do not induce stress, and many more that do induce stress.
The first way to mitigate the stress of scope creep is to move the deadline of the project back to address the new requirements. This is the ideal approach for adding new requirements once development has started.
The other way to handle scope creep that does not induces much stress is to remove a requirement or set of tasks if one is added and the deadline cannot be altered.
The developers own attempts to mitigate stress.
Multitasking is the mistaken concept that you can do multiple things at the same time. Most people do this because they thing it saves time, however none of the tasks are done at full capacity and most times have to be fixed which takes more time than doing them separately.
Developers who are not able to say no to requests will find that they over-commit and cannot possibly complete all the tasks they take on in addition to their regular work. The trick is learning to discern when to say no and when you should say yes, usually this comes after making a few mistakes.
Cutting corners when developing will lead to technical debt because if you don’t have time to do it right the first time then you won’t have time to fix it. Similarly, ignoring minor bugs or issues when you see them may seem like a way to speed things up and reduce some pressure but those bugs have a way of growing when you aren’t paying attention to them.
How Employers Exacerbate or Mitigate Workplace Stress
The size of the company affects how it handles stress.
Companies come in all sizes from start-ups to large corporations and everything in between. The size of the company will have an effect on how much stress is involved for the developer.
Typically start-up companies will be high stress environments because they do not have an established product in the industry or are creating an industry around their product. They will often try to mitigate this by offering “fun” work environments which can become more stressful than they are helpful.
Much larger corporations have a different type of stress called bureaucracy or red tape. They may have your computer so locked down that you can’t install the tools you need to do your job. Though, they do typically have programs for addressing burnout and employee stress.
The industry makes a difference in how stress is handled.
Some industries are high stress industries where elevated levels of stress are expected whereas others are low stress industries. The type of work you do can have an impact on the level of stress you have at your job.
Companies in high stress industries have programs in place to address work place stress such as scheduling down time for teams where they have a reduced workload or allowing them to work on technical debt for a time.
Low stress industries do not tend to have stress reduction built into their processes because they expect that if there is extra stress that it will be temporary.
Industries with a medium amount of stress are where companies tend to falter. The stress may be intermittent or it may be a low level over an extended period of time. These companies typically do not have policies of the higher stress industries so employees suffer from stress without much relief from the employer.
Ways employers can actually exacerbate workplace stress.
The environment in which you work has a significant impact on your daily stress level. Some work environments such as open office spaces may do well for roles like sales or other highly collaborative positions, however they can be extremely stressful for developers who have to be able to concentrate and focus for extended amounts of time.
Some managers, especially ones without a background in technology, will try to improve performance by promoting competition between developers and teams. While a friendly competition can be good for improving moral it is easy to take this too far and become cutthroat which not only increase stress but causes teams to not work together as that will be helping the enemy.
Finally, employers that have a “go-to” person for handling issues with a certain product or part of the system are creating knowledge silos that cause other developers to stress about if that person isn’t available and it prevents that person from doing the newer things. Legacy applications are notorious for this as they are difficult to maintain as the industry changes causing the developers who do maintain them extra stress.
Ineffective ways companies mitigate stress.
The work hard, play hard mentality is one that seems to be prevalent in the start-up culture. Many times this will involved staying late working overtime for weeks or months then going out and partying when the job is done. The trick is in how you define working hard and playing hard, if you work hard on the clock then how you play is your own business.
Along the same line as work hard, play hard are companies who think that having some fun things like video games, ping pong tables, etc in the work place will allow developers a chance to unwind during the day. This is not the case as most of these places do not tolerate developers taking time or the deadlines are so tight that developers can’t get away to use these. They end up becoming more of a distraction as people are trying to work and the few “golden” employees are allowed to play.
Mandatory time off might seem like a good thing, however for many developers it can be stressful as they are not able to leave the work at the office and carry it with them even if they aren’t doing anything. It also can force them to take vacation at inopportune times in the project.
Effective ways companies mitigate stress.
A surprising way to decrease or mitigate stress at work is when companies encourage education. Allowing developers to learn and grow will help them to not feel trapped. Taking developers to conferences is a great way to get a little fun trip in with the education. It also gives a break from the day to day.
Addressing technical debt not only reduces the stress developers have around it but it also allows the employer to focus on building new things without having to worry about the older stuff not integrating or working.
The most effective way for a company to reduce stress on their developers is to have realistic timelines and expectations of the development process. Accurate estimation is near impossible, however understanding that some things may take longer and accounting for unforeseen issues as well as be able to adjust the timeline if needed goes a long way to helping developers work in a low stress environment.
General Tips for Dealing with Stress at Work
Have a routine for starting your day off right.
For most people mornings are the most stressful time of day. They have more to do than it seems time to do it in and everything has to be done right now. A morning routine will help you to get all the important tasks done.
Having a set way in which you start your work day will allow you to be productive before the coffee or other caffeine source kicks in. This may be as simple as a list of things like checking email and entering time sheets to as complex as scheduled tasks you run first thing.
Morning routines are not just for work but also before you start working. If you’re pre-work morning is chaotic you’re starting yourself out in a stressful situation.
Avoid conflict with others as much as possible.
Conflict wears you down both emotionally and physically which leads to reduced tolerance for stress and stress inducing situations. Basically when you are in conflict a situation that is mildly stressful becomes moderately to severely stressful.
Once it has been initiated arguments and disagreements can be very difficult to get out of which causes even more stress. It’s better to not initiate or not allow others to pull you into conflict unless absolutely necessary.
If possible try to avoid anyone at work who is known to cause conflict. You can’t always avoid them unfortunately so you may look into learning some conflict management and resolution skills.
Find a way to organize your workspace.
An organized workspace prevents you from stressing out when you are under pressure because you will not be scrambling to find something in a pile of documents, books, disks, and papers. This is not just your physical workspace but also your virtual one, organize your desktop and folders too.
You spend more time at your workspace than anywhere else, with the exception of your bed. Being able to easily navigate it is important in not getting stressed out when you are already under pressure.
Your time is another area you can add some organization. It may seem counter intuitive at first to spend time organizing your schedule when you are already crunched for time but doing so will help you to avoid unnecessary or unexpected time wasters as well as define out set times to work on things.
Get up and move around throughout the day.
Many studies have shown the efficacy of exercise to elevate mood and reduce anxiety, depression, and stress. As developers we have a very sedentary lifestyle so we have to make an effort to get up and move around.
This doesn’t mean you need to go to the gym on your lunch break every day, but you should be taking some time to get away from your desk and walk around a little bit.
Try taking short exercise breaks throughout the day. You can even find desk exercises that you can do right from your home office or cubicle to get the blood flowing and help reduce your stress.
Spend a little time, and money to make yourself comfortable.
As developers we sit in chairs and stare at screens all day long. If your work environment is not comfortable you will be more on edge and easily stressed.
It’s interesting how we can tolerate mild discomfort, but if that is extended over time we don’t just ignore it but instead become irritable.
Spend some time making your work environment comfortable. Try a few different configurations out until you have the most comfortable set up for you. If you work from home spend a little money on nice comfortable equipment.
Tricks of the Trade
Some stress is good for you. Seek out stressors that make you grow, versus ones that make you feel helpless.