Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've worked for two major software companies and I cannot deal with the stress.

These are the stressors...

  • Being asked at the end of the day to get something complicated done that day.
  • Being asked to dig through spaghetti SQL, do data backfills or implement some manager's UI tweaks when I have real work to do
  • Being asked to complete work in a certain time frame when it's estimated assuming nothing ever goes wrong (something always goes wrong)
  • Constantly being afraid that I'll be in the bottom 20% in evaluations
  • Wearing a beeper
  • Working 50+ hours a week

I love programming. I'm not super good at it, but when I get a chance to just sit down and design something or code I relax and feel great. Unfortunately, I don't get to do a lot of programming as a Software Developer and it stresses the hell out of me.

Are there programming jobs with fewer of these stressors? Should I consider working as a contractor?

share|improve this question
10  
Short answer: yes, there are. – whatsisname May 11 '12 at 4:33
Glassdoor could help you find companies with a nicer work culture – dukeofgaming May 11 '12 at 4:45
1  
Low Stress Job. Helping me survive since 1996.(TM) – user281377 May 11 '12 at 6:16
"...a solid testing framework, zero regressions, high code velocity. Everyone worked 9-5, weekdays only... If we ever had to pull long shifts, the company had a fresh team that was nowhere close to burnt out... Any time you have worked long hours it is a sign of a broken process..." (quote source) – gnat May 11 '12 at 6:16
2  
This question isn't suitable for a Stack Exchange as it's so open ended. It's also overly localized - people deal with stress differently and what others consider low stress you might find to be incredibly stressful. After reading some of the answers, it seems to be very focused on opinions and very little substantiated by facts and references. – Thomas Owens May 11 '12 at 12:03

closed as not constructive by gnat, Mark Trapp, Tim Post, Thomas Owens May 11 '12 at 12:00

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

10 Answers

The majority of software jobs are like this; the trick is of course to either be an employee of a good company, or the contractor working for a bad one. As the contractor you will still get crap work and will still be treated like crap, but there are several advantages you have over their employees:

  1. Bad companies tend to be notoriously cheap, so they generally will not ask you to work too much over 40/wk if they can get an exempt salaried employee to do evenings and weekends instead.

  2. You are your own boss, and you have more freedom to walk away from a client that is being a jerk.

  3. Your typical 1099 contract has an expiration date on it, so if it is a miserable place to work then you don't have to renew the contract and have a timeline to find a new job by.

  4. You are not an employee so you tend not to be as emotionally vested in project failures.

So of course if I had a choice I would choose to be an employee of a good company and software shop but if I didn't then being the employee of the software sweat shop is being a chump. Thats for the birds.

share|improve this answer

How about software development with Agile?

  • Being asked at the end of the day to get something complicated done that day.

With Agile sprints you don't get new tickets into already started sprint (unless they are bugs). So no end-of-day problems out of thin air.

  • Being asked to dig through spaghetti SQL, do data backfills or implement some manager's UI tweaks when I have real work to do

With Agile there has to be a ticket for that, and it has to be prioritized by product owner. Which usually means that it'll end up somewhere at the bottom of the backlog.

  • Being asked to complete work in a certain time frame when it's estimated assuming nothing ever goes wrong (something always goes wrong)

With Agile estimation is done by developers. And methodology calls for adding at least 30% slack.

  • Constantly being afraid that I'll be in the bottom 20% in evaluations

Hmm.. I really don't know what to say here. The only way to guarantee that you won't be in bottom 20% is to have coworkers that are inept. Not really sure if that's a good thing. Anyway, I don't see how the percentile should matter, it's important if you do good job or bad job.

  • Wearing a beeper

Don't work in sysops.

  • Working 50+ hours a week

Agile assumes 6h a day and 5 days a week of effective work. But note that meetings etc. do not count towards effective work. But generally in Agile, the necessity of doing overtime is considered a failure.

share|improve this answer
Finding a good work environment is harder than just finding a company that does Agile or Scrum. I have been unapologetically lied to my face before by companies claiming to be Agile or the famous "moving to Agile" line when they are essentially the furthest thing from. The sad thing is that much of the time they are really lying to themselves and believe the BS that they are spewing. – maple_shaft May 11 '12 at 11:32
@maple_shaft: Well, companies lying is another thing.I've also seen companies that claim 12/12 on the Joel test, while actually being more like 3/12. But lies apart, properly done Agile should eliminate most of the stress. – vartec May 11 '12 at 11:42

Its all relative.

In software development nobody dies. Especially not you! That is a great stress reliever to begin with.

In software development, a wrong decision by a programmer could cost perhaps $10,000. A wrong decision by a solution architect maybe $100,000. Compared with the losses a bad decision by colleagues in the "real" business could cost these numbers are trivial.

In software development the tools you use do not cause you injuries. (Maybe RSI or shortsightedness if you ignore all the well meant advice.)

In software development you get paid enough to eat and then some.

In software development you don't need to sell $1,000,000 kit to strangers each month or lose your job.

So all in all the only source of stress is idiot managers, my advice would be to go on an assertiveness course where you will learn:

  • how to deal with idiots.
  • how to appreciate the stresses other people are working under.
  • how to tell the difference between an over stressed manager crying for help and an unpleasant idiot.
share|improve this answer
unpleasant idiot, hehe... so true :) – šljaker May 11 '12 at 7:59
1  
Not too sure if "In software development nobody dies" hold true in general. Have a look at the software developers for the Toyota Unintended Acceleration problem, or the software in the flight system in the Airbus A380. – tehnyit May 11 '12 at 9:41
3  
"nobody dies" unless you're writing software for medical equipment, nuclear reactors, flight control systems, ... Also, there have been software bugs that cost 100's of millions of dollars of damage. stackoverflow.com/questions/605797/… – Bryan Oakley May 11 '12 at 11:30
It may be a rumour, but I've also heard that a former employee of EA died due to overwork. So again, your second paragraph isn't strictly true :) – joshin4colours May 11 '12 at 13:25
I've witnessed a case where a sign error (missing out a negation) cost £20,000,000. Of course, while that was the programmer's error, there was also a failure in testing... – James Youngman May 11 '12 at 20:50

A work situation with high stress activities in a clear indicator that the process is broken, (unless the process lend itself to high stress situation, which in this case you should get the hell out of there).

Some pointers.

  • be confident in your abilities to negotiate the demands of your manager when a request comes in.

"look Jim, I have to finish coding this module by the end of week for Jack. Would it OK if get back to you with an estimate for your task later today and see if that works for you." or

"Hey Jim, that time frame you gave to complete this task is not going to work. For me to give you good result, I need (insert your estimate here) days."

  • Turn off the beeper at certain times. Tell your boss or whoever gave you the beeper that you need to have personal or family time at (specify a time range) where you want minimal disturbance. This is will allow you to do non-work stuff and refresh the mind.

  • Have a clear understanding of how your evaluations are calculated, and work towards that. Once this is understood and you are hitting the targets, this should bring up you positives in you evaluations. Remember that evaluations are not a competition between you and your colleagues, if it is, the company culture is broken.

Good luck!

share|improve this answer

High stress is a symptom of poor management. And many of the examples you give I would say are prime examples of poor management.

I'm a big supporter of agile development practices, mostly experienced with Scrum. I'm not writing this to preach about agile or scrum, but to show that there are development processes that deals with these issues.

In Scrum, you work a number of developers in a team. The team works in "sprints", typically of a duration between 2 and 4 weeks. Each sprint is sort of a "mini project". At the beginning of the sprint, the team agrees with a "product owner" what to accomplish that sprint.

The team then internally manages who does what in order for the team to accomplish all the tasks, as a team, within the sprint. Nobody is allowed to interrupt the team with tasks such as "dig through spaghetti SQL" or "implement some manager's UI tweaks". If such changes are desired and highly prioritized, then they can be implemented in the next sprint.

Only in true emergencies (e.g. the production system is down, and the company is loosing revenue/faith of the customers) is the team allowed to be interrupted. In this case the team figures out internally who does what in order to figure out how to solve the problem. So that means that the manager don't just attack one helpless developer asking him to fix the problem, but asks the team to fix the problem.

Because deliveries are made with short intervals (I personally believe that sprints should not be longer than two weeks), you can very early predict if you are likely to meet the overall project goal within the expected time. You are expected to be able to accomplish a similar amount of work (with some variation of course) from sprint to sprint. The goal of the team is to find the highest possible pace that they can keep indefinitely. That means you don't work 50+ hours/week, because you are not able to keep that pace indefinitely.

I'm not saying that you need to find a company that uses agile or scrum. But I'm trying to show that it is possible to have a software development department that runs smoothly with happy people who are allowed to work with what makes sense, and who are not overstressed.

And having said that, there are also a lot of companies that claim to be using agile or scrum, who in fact aren't. They have simply failed to understand the philosophy of agile, or have trouble letting go of the micro-management they have practiced for decades. In these cases some of these issues will turn up anyway.

share|improve this answer

To elaborate on the great "Just say no" advice, let me quote the definition of stress at work as stated by the European Agency for Safety and Health at Work:

People experience stress when they perceive that there is an imbalance between the demands made of them and the resources they have available to cope with those demands.

Changing the demands is the obvious way of reducing stress, this is what is asked in the question. Being able to say no makes clear that the resources available don't match the demands. This helps to rebalance the demands downwards.

The other way is changing yourself. To this aim, you can rebalance your resources upwards with actions as simple as caring for you health: more sleep, more physical activity (e.g. commuting by bike), more life outside work... All of that contribute to improve your self esteem and self confidence and thus your perception of your own resourses.

share|improve this answer

Look for smaller companies with interesting work. Don't be overly impressed by big brand names. Consider another language if the one you know best is the one way too many college grads choose every year because then your resume is just one in a massive pile and you're competing on BS rather than competency in a lot of cases and that's where a lot of these awful cultures take root right off the bat.

share|improve this answer
1  
Importantly look at the culture of the company, and how they treat their staff. – tehnyit May 11 '12 at 8:39

The real question is: can you become a stress free person. Can you say "no"?

share|improve this answer
Yep, very good point. Stress is at least 50% internal. – fish May 11 '12 at 7:07
I was going to post "learn to say no" myself. It will make a big difference to your stress level, and it'll usually get you MORE respect from your management in my experience. – MadKeithV May 11 '12 at 7:16
Assertiveness training helps a lot in saying no by teaching different no-saying strategies. – Pieter B May 11 '12 at 7:18
Agreed. Just say no. – BaBu May 11 '12 at 7:19
Tried that, but i still die inside every time i land on existing spaghetti, get a feature request that makes no sense, have to put up with the stupitidy of slash.hack coders [list goes on]. The best i can come up with is a numb and emotionless face on the outside. – Dante May 11 '12 at 11:26
show 3 more comments

There are plenty of more relaxed jobs in development. I've worked at plenty myself. If you're not happy where you are now, consider shopping around at other companies. There's certainly plenty of opportunities.

If stress is an important factor for, make sure to ask about stress level during interviews. Is there overtime? How's the work-life balance? etc. These are fairly common questions to ask, and there are plenty of companies where you can work a comfortable, stress-free job.

As a side note, government jobs are notorious for being very relaxed, so you might want to consider working in that industry.

share|improve this answer

There are plenty of stress free jobs in the market.
But its not always stress free 365 days a year there might arise situations where you have to deal with the stress,because the clients might demand very unpredictable things at any time and it does occur in organizations.
Even considering government jobs to be stress free is wrong notion. They have to deal with it during audits.
IMO you should try to handle the stress rather than to run away from it. This will also help you in your future.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.