Learning to manage stress is vital to staying healthy while working at any job. A necessary subtask is learning to recognize and limit the sources of stress.

But, in the midst of the daily grind, it can be difficult to recognize sources of stress (especially for an intense, focused persona such as a programmer).

What types of stressors should programmers look out for, and how can they be managed?

Here are the things I find cause the most stress to me and the developers around me:


Ambiguity: Ineffectively stated goals, requirements, or other expectations. Many companies have employees who have an attitude of "I don't know what I want, but I'll know it when I see it. Oh, and by the way I need it tomorrow."
Inappropriate deadlines: Most deadlines are set by the business need not by the realistic capabilities of the developers on staff. In addition to this, the expectations for the requirement are increased but the budget/resources are not.
Bad assumptions/expectations: Programmers have a tendency to have a high opinion of their capabilities (not an unearned trait), and because of this they expect that other people can match their capabilities, understanding and expectations. Often an assumption will be made that something is "common knowledge" or the like, and this can be catastrophic in the stress category. Now, not only did the business expert not meet the programmer's expectations, but is a complete incompetent to boot. In the converse, if the programmer fails to meet the business's expectations, the programmer is left frustrated because he/she was not given the information they needed to proceed.
Lack of respect: Many people have a tendency to believe that just because someone is weak in your discipline that it means they are weak in theirs. There is a reason we all have different jobs/capabilities/expectations, and it is important to respect that the other person is very likely very capable at the tasks they are asked to do. Just because someone doesn't have your capabilities doesn't mean they are incompetent or incapable.
Lack of self control: This can be manifested in many things. Perhaps you're a work-a-holic who refuses to take the proper breaks. This leads to build up of stress and is bad.  Perhaps you're a Jolt Cola drinker who drinks more caffeine that he should when stress builds up. This is bad for your health and makes your stress response worse. You have to know your limits, know what triggers your specific stress responses, and most importantly know how to relieve that stress response. Taking it out on co-workers or colleagues is not appropriate and will only serve to increase stress.
Lack of communication skill: Often we don't speak the same language, and I'm not talking about English, German, or Indian. We're using the same words, but we're not saying the same things. People need to be specific and open about things they don't understand. Even if you think you understand, it does not hurt to clarify. Remember that a business metric can mean something different to different departments in an organization.
Bleeding of limits: Keep work at work and home at home. Just because your 7-year-old is leaving his shoes in the middle of the floor and not cleaning up after his breakfast does not mean you need to chew Tiffany from accounting a new one because she hasn't given you the spreadsheet of billing requirements. Same token, just because Tiffany is slacking with the spreadsheet doesn't mean that your wife deserves to be treated poorly on the commute home. (btw, poor Tiffany doesn't deserve that treatment either)

