views:

1355

answers:

19

Does anybody else feel like they need to change jobs every year or two to stay sane and happy or am I just in the wrong profession entirely? I think I am burned out both on my current job and burned out on programming in general.

Let me explain. I have been a software engineer for going on 8 years and I am now nearly two years into my 4th real job. At first, I really like a job. I like the challenge and the satisfaction of solving tough problems and learning new things. At a certain point, I reach some kind of peak. Then I start a downward spiral. I start to lose energy and motivation, then I am less productive, then I feel guilty, then I like it less, then I lose more motivation, etc. Eventually, I get to a point where I loath the job, I can not focus on any task, I am overwhelmed with guilty feelings, and I feel like I am losing my mind whenever I am at work. Usually, I find another job. Now I am looking around and nothing out there sounds even slightly appealing.

I have experienced the following negative factors at ALL of my jobs:

tedious tasks - I get tired of random intermittent bugs that are very difficult to reproduce.

repetitive tasks - I am always fixing the same or similar bugs.

negative atmosphere - I am constantly hearing the negatives like customer x is unhappy or there are y number of bugs to fix for this release and rarely hearing positives despite the fact that the company is profitable.

lack of recognition - I wonder what is to motivate me to continue doing my best when it doesn't really matter to anyone?

lack of reward - The work does not have an intrinsic value for me personally, I can fix tons of bugs, add features for customer x and make the company a bunch of money, but it does not really mean anything to me. I would rather do something that helps other people directly.

feeling lonely and isolated - More often than not, I go the entire day without speaking to another person.

being sedentary - I am by nature an active person and I find it difficult to sit in a chair at a computer for long periods of time.

annoying coworkers - There are the ones that make strange (although sometimes entertaining) personal calls right there in the next cubicle for all to hear, to the know-it-alls who act like everyone else is stupid, to the just plain creepy (feels like he is watching me again), to the machine-gunner keyboarders that make it difficult to concentrate.

burnout and boredom - The results of the previous factors.

I try to get regular exercise and take breaks at work and take vacation days. I even tried cutting back my hours. Nothing helps. Is there a way for me to fix this problem or is it time for me to move on and find a totally new career?

+1  A: 

Looks like all the downvotes here will get you even more demotivated... My opinion is, if you can afford a career change, why not, try to pick what would be your dream job and apply for similar positions while you work on your current one. Or maybe get back to study, this is a nice way to have a break and improve your CV at the same time. Worst case you are back to IT in a year.

rodbv
You spend most of your life either at work or asleep. (Asleep at work is double-counting; not fair). If you don't like what you do, do something else and quite complaining. Complaining is a trap of negativity that you need to replace with something positive.
S.Lott
+8  A: 

Any job will have its positives and negatives. Finding a new career won't change this. Your strategy of changing jobs, despite its shortcomings, does have some merit and some chance of improving your state of mind, certainly over the short term and with luck, maybe in the long term too if you find a really great employer.

I'd also suggest looking at volunteering your time at a non-profit in your free time. Making an impact on the lives of others can have a positive impact on your own life.

jdigital
I agree with volunteering. Doing something positive for another without payment or expectation of reward is awesome! Having a job that pays the bills and enables you to do this is even better and it may even help you see areas where you can volunteer time at your workplace.
Andy Webb
A: 

If you are sick of your job enough to wright that much than I think it may well be time to change something. Maybe not your employer, maybe just your position, project or something like that.

BCS
+4  A: 

It sounds like you are repeating your first job over and over again. It could be that software engineering isn't really what you want to be doing with your life. If it is, you need to identify what lead you to finding the last 4 jobs you took and what is common between them. Yeah it sounds like your headed towards burnout which, obviously, is not a good place to be.

If you can, I would go on vacation as soon as possible and try and figure things out. Burnout can lead to things that are much worse than not being able to stand your job anymore....like having a heart attack. It can be very serious as this is a type of stress the body isn't meant to endure for long periods of time.

Short term, if you can switch jobs and relieve the stress of work, if I were you, I would probably do so. It will at least buy you some time to figure things out. That being said, you need to make a list of things you are going to accomplish...set goals. Like 4 months from now you are going to have a list of alternative careers, six months you have done enough research to understand what it will take to change career etc. This is key. People who don't set goals normally don't get them done. You will have to force yourself to get out of this situation, or it won't change.

Kevin
+21  A: 

I think all competent, accomplished software developers experience this to some degree. I certainly have in most of my past jobs.

Alex Papadimoulis of The Daily WTF has a really fascinating article on this very subject. In short, it says that motivated, talented engineers tend to reach a peak past which the value of their contribution (NOT their ability or competence) levels off. Their employer squeezes all the good ideas out of them and there's nothing left but support and maintenance. Being highly motivated by the feedback they get from making effective, valuable contributions, the new wears off and they move on. I recommend the full article, there's much more there.

Lastly, hang in there. Try to find new outlets for the things you get from new jobs- like joining an open source effort or starting your own pet project.

Dave Swersky
Excellent article, thanks for sharing. =)
Erik Forbes
+4  A: 

To comment on a few of your issues...

repetitive tasks: I make it a goal when I'm building something for someone that I never do that same task for them ever again. It's often more work initially but it works out in the end. For example, one common task for admins was to "reset the reports" and I frankly got sick of it so I created a method for someone else to do it. After enough of these creations, most replies from IT were quick, canned responses of how they could do it on their own.

negative atmosphere: Your viewpoints are kind of the nature of the business (a good 95+% anyway). Do you ever call a vendor to say nice job?

being sedentary: Tough one... I was fortunate to have clients on site for awhile and going out an working with them helped both of us out (I got to experience the process and they got an assistant). But when actually developing, it's personal discipline to walk around for awhile.

To really succeed you have to be passionate about what you're doing and it sounds like you just don't have it. Why did you get into this profession?

Austin Salonen
+11  A: 

I've been in this career for a little over 14 years now, which is less than some and more than others. During my time, I've been where you are now: completely burned-out and sick of the people I was working with. Here's what I've learned: Regardless of the technology you work with, or the work you have to do, the thing that most makes a job suck or not suck, is these three things:

  • The people you deal with daily
  • The way in which the company rewards your success
  • Your ability to feel as if your contribution is worthwhile

If any one of those is incompatible with your internal standards, the job will eventually wear you down to the point where you're bouncing off the walls. Knowing what makes a job good for you is half the battle (keep in mind, you must define for yourself what rewards you require and what kind of people you like to deal with), the other half is going to find a place that offers those. Unfortunately, them seem to be few and far-between.

Don't feel bad about changing jobs often, I've not stayed anywhere for more than three years, and I think my average stay is something like 1.5 years. Sometimes it takes a lot of hopping around to find somewhere that is compatible with you.

Robert C. Barth
+5  A: 

It probably is time for a change. The question is to what? You could become a contractor working on short projects. You could also look for a position with a company that does short projects.

Jim C
Jim beat me to this one :)Typical contracts are 6-12 months, giving you the initial challenge and chance to learn. Before things get tedious, you're off to another contract. I work through a contracting company, so they handle the benefits and finding new contracts, meaning less stress for me.
Pedro
Try consultancy / contracting. This might fix you.
Andrei Rinea
+3  A: 

I understand how you feel as I went into a similar period of exhaustion a couple of years ago (and still am in part). I fell in love with computers and programming at age 15 and maintained that same passion until around 35. Then the passion went downhill (I'm 42 now).

I've worked for over 11 employers in the past 19 years trying to find a place where I could be happy, but I found maybe 1 or 2 places in all that suited my needs. From my experience, the grass is rarely greener elsewhere. You usually feel better in the first months, but the routine come back very quickly.

Two years ago I tried a career change and went into long distance trucking, but I found it too much stressfull for me. So I'm back into programming.

I now found a job in a small company were I do development and support for the users and I like it. The collegues are great and I'm well treated. That suit my needs for now, but I don't know what the future will look like as I still haven't found my motivation for keeping myself up to date. I know enough about .NET to do my job (I come from a VFP background), but my knowledge is very limited (I still don't do web and I still wonder why WPF and it's XAML is better than plain old WinForms).

If you can afford it, I suggest that you take a long break to clear your head. Then you could really question yourself as what you want to do. If you decide to stay into programming, then question yourself about which technology your interested and what kind of employer you would like to work for and go for it.

If you come to the conclusion that you're burned-out of programming or you're still not convinced that you still have the passion, then try to look for a new career. A career conseillor may be of great help in this step. If it doesn't work, you can always do like me and return back into programming ;)

I agree with jdigital, volunteering your time to a cause that you care about is a great way to boost your hapinness level. I've done some volunteering this Christmas for the first time and it was a great experience. I'm looking forward doing more this year.

Good luck.

izokurew
+1  A: 

Sounds like the predominant problem is the lack of human interaction. I could give you all kinds of advice of getting a new job, new career, motivating techniques, etc. but they'd all end up the same - you'd end up repeating your current problem for the fifth time.

I would see your boss and ask to do something different to programming - whether it is analysis (talking to customers), testing (talking to other developers), QA/Support (talking to customers and developers) or just project or business management, it'd get you out of your cubicle and into areas where you have the opportunity to talk to people. The job will still be shitty (they all are at some point), but you'll have a much more rewarding time.

I have done some support - moved there from my development job, and received quite a bit of acclaim from colleagues and managers - because I knew the codebase inside out, I fixed all the bugs! I also got to mentor the support engineers and business analysts and improved their skills too. It wasn't pure programming, but it was very rewarding role.

The best thing would be if you could have several areas of responsibility to provide some change every so often - I like to disappear into the server room regularly when I get bored programming, but then I've always tried to be helpful in doing sysadmin tasks during my usual job, so I have that opportunity to fix things and update all the old jobs that always need doing.

In the meantime - here's some reading material for you, you'll find quite a few essays here that directly apply to you, and they're brilliant. Recommended for everyone. Try:

gbjbaanb
Quality links, thanks.
EightyEight
+1  A: 

I've felt the same way through a number of jobs and have had a very similar experience.

I'd recommend going into consulting/contracting. The downside is that you lose some of the stability which is important in times like now.

The upside is that you get to be more in control of your work and you make more money. If you get lucky you might find that one company that gives you everything you want, but be prepared to look around for a long time. You may even have to move to a place where such companies exist because they aren't everywhere.

Karthik Hariharan
+3  A: 

Here's an idea that I've been toying with; ask your boss if you can go part-time (like 3 days a week), and take a different kind of part-time job with the days that remain. Want to see more of your town? Maybe be a cabbie. Want to give back to your community? Tutor, give lessons, work at the pound... Take 4 or 5 day weekends as necessary...

When I was a kid, every spring I burned out on learning and looked forward to summer break. But by the end of summer, I was burning out on goofing off and looked forward to school again. What I really looked forward to was change.

If your boss(es) is cool with it, I don't see how this could possibly go wrong. (famous last words, I know)

A: 

Not maybe a career change, but a change of the work place and/or work methods might be refreshing for you. For example move to a work place which uses XP and/or learn to use TDD/BDD (at least for me it has made programming more fun).

Esko Luontola
+2  A: 

I had a similar problem to you. Ultimately I'd be happy at a job for about a year or so, but as time went by, I became unhappy with them, and likewise they became less happy with me. Solution? Now I'm a consultant, where my average tenure at a job is about 6 months. Just long enough to where I still leave them on good terms :-) there are a few downsides:

1) Less steady work in a recession, have a good rainy day fund ready before attempting this

2) You're expected to be the alpha guy, consultants are often held to a higher standard than their in-house employees. Best suggestion there is to learn proper communication and convey that you are the greatest around tactfully :-)

tekiegreg
+3  A: 

You were fortunate enough to start your career during an inflation-induced artificial boom. Jobs were easy to come by. Unfortunately, these booms represent malinvestment: many businesses, pieces of capital equipment, and jobs are created that are not sustainable in the economy because they are not truly desired by consumers. (Think how many Starbucks restaurants have cropped up the last few years -- do you think we really need that many?) So, these booms always end in a bust, which we are entering now.

During the bust, the economy corrects the malinvestment by liquidating it. (As when you buy a car or house you can't afford and have to sell it at a loss to get out of it.) There'll be people jobless for awhile.

During the boom, it was probably easy to find another job.

During the bust, this may not be the case.

If you enjoy eating, start enjoying your job. Don't do anything to burn bridges there for the moment. You might look for something better, but don't let that affect your current job performance.

Instead, you might consider pursuing some kind of career advancement with your current employer. You might be able to do something different for awhile or permanently that you like better, or you might be able to get a big enough promotion that the money involved makes the cost of putting up with your job more than worth it. :)

Think about ways you can earn or save your employer (or any employer) more money. These have a way of panning out into getting you a better position, or a better job elsewhere. What about your employer's process can you improve? Can you ignore some garbage paperwork and get more work done in less time? Might be worth the risk. :) Can you make your work of higher quality by implementing unit testing? What can you do better than other people and better than what you've done in the past?

skiphoppy
+3  A: 

While I've only had 2 jobs in my 12/13-year career, the first of them was, for a good 6 of its 8 years, what I considered my perfect job. (Disclaimer for my current employer: both jobs have their upsides and downsides, so don't think I'm about to quit. ;) If it's any help, these are the things I valued in that period:

Small company When I joined the company, it had only 12 employees, over half of whom were developers. Everyone knew each other well and we all got on. That rose to around 30 before things started going downhill (for me). However, the core of those people still feel like family to me even now, years later.

Creative influence Often working as the only developer on my project, and with no formal business analyst between me and the customer, I had a very large say in how the software was designed and developed. I absolutely relished this, as it allowed me to express my creativity.

A boss who valued people taking the initiative This was a pure fluke, but the CEO of the company was a great guy. He was the kind of person who really encouraged you, especially when you vented your frustrations and suggested improvements to process. As a result, I felt really in control of my own destiny. I guess being in a small company helped too, as everyone had direct access to the boss.

Developing human-centric software When I say human-centric, I mean it was very clear how I was benefitting my fellow man. I wrote software that would be used in the pharmaceutical industry. I could legitimately go home and tell me friends that I was helping people find a cure for cancer. I'm still proud of having done that, and the domain itself was fascinating.

If any of the above are things that you value too, maybe there is a job out there waiting for you. Hope it helps.

Mal Ross
+1  A: 

Many of the things you list have fixes: Isolation ? Bring in XP, more reviews of design or code or other things to increase collaboration e.g mentoring. Hard to reproduce bugs ? Analyse the root causes and bring in process change to stop them happening. Lack of recognition ? Talk to management about how they can praise good work; plenty of other employers out there do. Annoying coworkers ? Chances are you're not the only one annoyed; seek allies and see if you can bring in a code of conduct or similar.

But it seems to me the fundamental underlying problem is you don't feel you have any power to introduce change to your workplace.

In my experience good employers welcome grassroots developer-led proposals for positive change. Try, and you may find yourself pushing against an open door. (If it's not like that, well then it doesn't bode well for being somewhere you'll want to work in the long run). Similarly, most developers underestimate how much power they have to actually get broken processes and workplaces fixed, once someone finally takes the initiative.

With your level of experience you need to stop thinking like a junior developer and start thinking like a senior one, and to me that means spending some time thinking about and advocating improvements to how things get done.

timday
A: 

First off I don't know your environment, but I do empathize with your feelings, I have been there. These are only suggestions that I have tried and so far they are working for me. I think most employers want somebody who is dedicated to the team along with it's issues/faults. I think any of these things can be done at any level. I am a senior programmer but I am not "the" senior programmer and I have gained the respect of my seniors and they come to me for help with things they know I "eat, breath, and sleep". Remember this, if your pattern becomes evident to employers you may have problems making your next change... ;)

tedious tasks, repetitive tasks - I grouped these together because they are related (I think). If I find myself tackling the same problems over and over again. I have learned to ask myself the question, "Why are you doing this over and over again?" Some call it the D.on't R.epeat Y.ourself principle. Take one of these and tackle it. Take one that the team finds just extremely frustrating (This might help with some of your other bullets). Make a Tool, T4 template, Project Template, Utility, Code Snippet, etc. that they can easily use to either avoid the problem or diagnose it when it happens or if possible make a generic class that once written and debugged can be reused and then you shouldn't have that problem any more. Do some research, I would be willing to bet your not the only one that has run into this issue and someone has done something about it.

negative atmosphere - My first point plays into this one, less bugs makes happier customers. Have you explored Unit Testing I am still working with my team to get them all on board, it is taking time. I know every project that I have turned out that is easily maintained and runs with little or no bugs leaves them thinking about the little bit of extra time I spent writing some test might of been worth it. People are starting to ask questions. It's good...

lack of recognition - I know that amongst our team we all know a little bit about our strengths, what we "eat, breath, and sleep". Learn what people love to do... Xml, regular expressions, refactoring (two of my favorites), linq, problem soving, making things generic, etc. Start going to coworkers and asking them questions about how to do something, or what is the best way to do something when it's one of their "things" and eventually they will start coming to you. Another way is if you know somebody is struggling offer to help. They, whether they say it or not, will appreciate the help and eventually some of them will offer to help you.

lack of reward - When we boil it all down most of us, even though it's what we love, want/need to get paid and would all probably like to get paid as much as possible... I am still working on this one. I work for a bank and times are tight for everyone. All I can say is keep looking, researching ideas, maybe start a project on your own.

feeling lonely and isolated - To me this is just something you have to get in the habit of doing... Jump over the wall of your cubicle and go b.s. with someone every once in a while. Go to lunch with a coworker, find out about some of his/her frustrations. I would be willing to bet they have similar feeling. Maybe you'll find someone you can work together with on some of your issues. It's always better to have at least one other person to help you on the days your struggling. Remember to give people a chance, that "annoying" person next to you could become the person you know you can rely on when your in a bind. Have you ever thought of what people might find annoying about you? Come now, everybody has there issues.

being sedentary - Go for a walk, bike to work, start an activity amongst your coworkers, plan an event every once in a while. Does your employer allow telecommuting? I work everything Thursday from... Where ever the hell I want. Sometimes it a coffee shop, sometimes my couch at home. It's just nice to do something different and it does pay off as far as productivity is concerned.

annoying coworkers - Noise canceling headphones. If you don't want to spend the money on them then just regular ones. I don't think there is a day that goes by that I am not wearing mine and listening to something. There is always the direct approach that works just as well (as long as it delivered with some tact). I have even pulled it off with my boss. He is right next door and I had to sometimes politely ask if I can close his door. He does it now without me asking... ;)

burnout and boredom - I think doing some of the things above and taking some time off every now and then when you really feel crappy and forget all about programming will help. I think it's going to happen and happens to most of us. I just think we need to help each other learn to manage it.

J.13.L
A: 

I'd have a few suggestions:

  1. Consider working for a non-profit - The pay may suck but if you feel like you are helping make the world a better place it may suit you better.

  2. Consider starting your own business - This would give you the opportunity to have more control over your work but may also cause the issue that you have to find your own work.

  3. Consider working for larger companies - Sometimes they would have more interaction as larger projects aren't necessarily sliced up for individuals to do in isolation. Being an consultant may be another option as then you'd have a change in environment on a regular basis possibly.

  4. Consider what software development methodologies you haven't seen - How many of your jobs were using Agile? Scrum? XP? Pair programming? TDD? DDD?

JB King