Stack OverflowFed up with my programming job: What should I do?
[+47] [15] Eduardo León
[2009-08-31 00:40:28]
[ career-development job-satisfaction ]

When I was a teenager (about 8 years ago), programming used to be fun. That alone led me to study Systems Engineering. (Later, I found that SE wasn't only about programming, but that's another story.) However, my first experiences working as a programmer haven't quite been what I expected. Most of the time, those I work for don't expect me to carefully design my programs before I write them. They seem to think of programming as a physical production process in which the most obvious way to improve productivity is to speed up the process.

Writing code that validates data input against business rules is boring, but tolerable. But being forced to do a half-assed job just to finish projects under unrealistic schedules puts me off, to say the least. It's the opposite of what made programming so attractive to me.

What do I do to fix this?

(8) Mark it as community wiki please. - Sergio Tapia
(1) For the last year I have felt similarly. I am not sure what the solution is, but rest assured, I'll be watching this thread. - Ryan Taylor
(31) COMMUNITY WIKI POLICE! I just gave him +1 and he gets to keep those 10 points and there is nothing you can do about it. - Alex
(3) Why should it be a community wiki? Just because it's subjective..? I haven't been keeping up with the rule-set, I'm afraid... =/ - David Thomas
Ok. How do I get to make it a community wiki? - Eduardo León
Or else... can somebody else make it a community wiki for me? - Eduardo León
Turn with 12 RPM for 5 minutes. - Alex
(12) The community wiki police inexplicably believe that anything subjective should be community wiki. This view is completely unfounded. - cletus
Eduardo, if you want to make it community wiki, hit the 'edit' link below your question, and there's a check box below the text-entry portion (I think) marked 'community wiki.' But don't feel pressured into it; you came up with the question, and I can't see any reason it's not valid for you to maintain ownership. 'Community wiki police'? O.o Umm, seems harsh... - David Thomas
(3) I'm pretty sure anything tagged as rant deserves to be community wiki. - gnovice
(1) @gnovice: And why is that? Are questions per definition only questions when being asked without expressing frustration? And what exactly requires this question to be 1) editable by people with less reputation points, and 2) not give points to the asker. - Alex
(1) @Alex: This sounds more like a whiny blog post that the OP happened to add a few general, subjective, poll questions to the end of. Not to mention the fact that I've seen plenty of these kinds of question on here already, but no one bothers to search first before posting off-topic stuff like this. - gnovice
(8) There is one point of view where questions that do not have a definitive answer (such as this one, which explicitly asks for individual experiences) should be marked as community wiki. - Greg Hewgill
@gnovice: Ok, but you didn't really answer my question. If you think this is a whiny blog post, then how does it become something better after marking it a 'community wiki'? Agree that there are similar posts, but still don't get the CW policing. - Alex
(1) @Alex: I did answer your question. Poll-like questions should be wiki, since they're just asking for individual experiences from the community. The fact that it's also a duplicated rant doesn't help it much either. In fact, I think it should just be closed. - gnovice
(3) It wasn't quite a question with a definite answer before. It has now been changed so it is. "What have you done?" is a discussion. "What should I do?" is a question. - cletus
Voting to migrate to Programmers.SE. They hate it when we send them stuff like this! - Tom Anderson
@Tom: Agreed, migrate it. Back then when I posted the question, Programmers.SE did not exist unfortunately. - Eduardo León
I have only just noticed this was posted in 2009. Why on earth did this show up in the questions list? And now it's been closed as not constructive, with my name on the close, even though that's not what i voted for. Strange days. - Tom Anderson
[+41] [2009-08-31 00:43:29] cgyDeveloper [ACCEPTED]

Find a better place to work?

I know it's the simplistic answer, but there are places out there that treat programmers well and require top notch coding.

And if you can't find one (or get in on one), try starting your own business.

(3) I second the motion. - Steve
I will file an appeal with the recorder. - Alex
(1) Pretty much the best solution. Sounds like he's working in a very corporate environment as a code monkey >.< - MunkiPhD
(8) I'd like to add to this. My grandfather once gave me advice about a career/job scenario: "If you aren't happy with things which you can't change and can't put up with, it's time to move on." Sometimes it's the tedium of the work, other times it's the people you're working with. Applying this idea has generally worked out very positively for me. - chsh
* cough * Google - Partial
(1) * pat on back * Yahoo. Better? - Alex
@Alex, nicely said, sir. @Partial, what was your point? o.O - David Thomas
I'd underline the "try starting your own business". - Andrei Rinea
[+28] [2009-08-31 01:01:12] cletus

There are many possible courses of action:

  • Suck it up. Programming is like many jobs: you get as much out of it as you put in and it's all a matter of attitude;
  • Change jobs. You might think other places are the same but other companies doing the exact same thing can be vastly different. Also, if you don't want to be doing this CRUD-type software, change industry;
  • Change position within your company. Not sure if this is possible but it might be worth talking to your manager about your discontent (but keep it positive);
  • Find a more interesting programming outlet out of hours. Open source, personal project, whatever. Part of general work dissatisfaction tends to be related to not having a whole lot else going on, in my experience;
  • Find interesting non-programming things to do out-of-hours. This can help make otherwise boring programming tasks a little more tolerable.

Ultimately life is too short to do something you hate.

(2) 'Ultimately life is too short to do something you hate.' Aahhh, I hate working, but love spending money. What do I do? - Alex
Win the lottery or change your environment (job/attitude). - cletus
I'll go with your first suggestion. Oh, darn, the mega million lottery is over :( - Alex
(11) You forgot: "* Rant with your full name on the interwebs and let the problem take care of itself." - Andy Gaskell
@Andy: that's a good point. :) - cletus
[+8] [2009-08-31 00:45:09] David Thomas

I suspect that the first and foremost answer you'll be given is, probably, the best: find a new employer.

I realise that's a lot more easily said, than done, but if you loved programming, and have a career within the field, it's a shame to see that wasted. Are you still programming with hobby-code; if you're not doing it for fun, then it might already be time.

But still, a new employer with more interesting challenges would be a better first step to soemthing new. Find the fun again.

[+8] [2009-08-31 01:49:29] Brent Baisley

Sadly, your experience is reality. For every hour you program, your employer is paying you. Your employer doesn't know how successful the product you are coding will be. It just needs to be good enough to be able to discover if the product has the potential to be a success.

Some call this concept "fast failure". Finding out quickly if what you are doing will be a success or failure, and move on to the next idea. If it's succeeding, iterate on it. This is especially critical in new platforms where there is a huge advantage to being first.

Look back at the Facebook application platform and the iPhone app platform, both fairly mature now. It's harder to get noticed now on those platforms. The quality of the applications have improved immensely since the beginning.

If you want to write well designed programs, you need to find the right industry. For example, one that is not short term market driven, like research. NASA is probably the perfect example of a company that would require well design programs. When your code is running on a system millions of miles away, you have to get it right the first time.

(3) I wish there were more companies like Apple, which like doing less things and doing them well. - Eduardo León
@Brent Baisley: Very well said. +1. - Alex
Not sure I'd call NASA a 'company', though. They have a very different mandate than being driven by a market specifically because they are not a company. - mmr
[+7] [2009-08-31 00:56:21] TrueWill

Say no and accept the consequences. That may mean finding another position.

If you asked a doctor to amputate a healthy limb, you'd expect him or her to say no. If we want to be treated as professionals, we have to have a professional code of ethics. Writing poor quality software to meet artificial deadlines does not serve the common good.

(1) Unless meeting a deadline is seen as intrinsic to the quality of software. - Alex
I have had this happen when an important demo date must be met to promote your new product, say at a conference. Accumulating technical debt in such a scenario stinks but sometimes it is a part of life. - Ryan Taylor
(2) I had the opportunity to hear "Uncle" Bob Martin speak recently. He disagreed with the term "technical debt". His comment was something like "It's not debt, it's making a mess." - TrueWill
(1) I second Bob Martin's opinion! - Eduardo León
Ryan - I'd agree, but would try to consider that "throwaway code." - TrueWill
[+7] [2009-08-31 01:15:33] mmr

Or start your own (consulting?) company.

Everyone here suggests working for other people. If you feel like your coding style is just that much better, then go ahead and produce your own code that way for whatever customers you can find, starting with freelancing websites (like rentacoder).

One thing you may discover is the business reality of whatever market that you're in is that programmers may need to be nimble. While one solution may be theoretically pure, if it takes five times longer to code than the plumbing solution, then it's probably not so good to be so pure.

I've learned a lot from my employer. He is very much in the as-fast-as-possible-specs-are-a-waste-of-time camp. I've forced a build process, a bug tracking solution, and source control, but in the end, if he wants it by the end of the week, we'd better be able to produce it. Why? Because sales depend on it, and the sale can't be made, then it doesn't matter how pure the code is. The nimbleness of a small company is one of the only real advantages it has over a larger company with more money to throw at a problem. If your stance on code purity flies in the face of that nimbleness, then maybe your purity is misplaced.

But maybe your code is just that much better. If you know your market segment, if you can get customers, go off on your own (but don't poach any from your current employer, there might be laws against that one) and try to succeed with your approach. If you do, if your customers are happy and your producing code up to your standards, then you were right. If it doesn't work, then you might need to reevaluate how 'pure' code should be, or whether your approach is the right one.

(1) In the US the problem with rentacoder etc is that you face $5/hr competition from India etc (nothing wrong with competition, or India, or indian programmers). I mean this purely in relation to the cost of living which is much higher in the US. - Alex
I had several students that paid for their tuition and then some through rentacoder, so I think it may be a viable thing to just get started. - mmr
[+5] [2009-08-31 01:45:13] Stefan

The day has 24 hours, only ~8 of them is for your work. For me, if the projects I'm doing at work are boring and/or stressful, then I tend to have fun private projects I spend the evenings and nights with.

If my work projects are fun and challenging, then it seems like I spend the nights in the bed with my wife instead.

Either way, I'm happy. ;)

I actually work about 11 hours a day. However, I only work from Monday to Friday, so a Saturday personal project isn't a bad idea. - Eduardo León
(8) You are working too much - Alex
[+4] [2009-08-31 01:10:23] stonemetal

Unfortunately you seem to have fallen into the same trap I did. When you do your hobby as a profession you no longer have a hobby. Programming can still be your hobby especially if you differentiate it from what you do at work. Doing real time embedded C at work? Do some web development in Python for a hobby. Probably the best thing would be to find something really different say horse back riding, running marathons, or building furniture.

I work for a PeopleSoft consulting firm. My job consists in developing customizations, functionality the ERP doesn't come with and the customer needs. - Eduardo León
[+3] [2009-08-31 01:49:34] Jeff Tucker

Best advice I ever got when I was in this situation: You can either change where you work, or change where you work.

[+3] [2009-08-31 02:19:57] David Rutten

Are you alone in this sentiment, or do your programmer colleagues share this frustration? If so, you could try and put up a unified front.

I wouldn't quit your job that easily, try and improve the one you have now.

(1) Unfortunately, my peers don't care too much. "It's a fact of life", they seem to think. - Eduardo León
[+3] [2009-08-31 06:14:18] DSO

But being forced to do a half-assed job just to finish projects under unrealistic schedules puts me off, to say the least.

Unrealistic schedules are common in software engineering. I don't know if you will find it different even at the best of companies (except maybe Fog Creek?)

You can leave the company and hope for the best. Or you can stay and learn as much as you can and gain influence. Then perhaps you can bring about the changes that you desire.

But be forewarned, there's a good chance that when you've matured enough to see both the technical and business side of what you are doing, you will realize that some of the things that used to keep you up at night (e.g. perfect design) are not as important as others (e.g. delivering what your paying customers want on time).

(1) While I'd agree that perfect design is less important than delivering value to the customer, ease of maintenance allows developers to continue delivering value to the customer on time. - TrueWill
[+2] [2011-03-05 16:44:28] KDev

I too am a computer programmer. I've been in the industry for almost 7 years now. In that time I have literally met a handful of programmers who enjoy what they do. Most of us are disillusioned, having discovered too late that IT is actually a terrible career choice, even if you love computers and programming. Maybe even especially if you love computers and programming.

What I can tell you with relative certainty, is that it's probably not the company that's the problem. I've worked at several blue chips, amongst them Fortune 500 companies, I've also worked abroad and at smaller companies. IT sucks everywhere, and programmers everywhere think so.

To the people suggesting that enough money can fix the problem: it can't. Believe me. If you're miserable every day it doesn't matter what you get paid. I've quit jobs for ones that pay less just to escape the situation. One of the best paid developers I know recently had a nervous breakdown and possibly can't go on working anymore because of it. Another one is on 5 different anti-depression and anxiety medications. Doesn't help much you're rolling in dough and your job is slowly killing you.

My suggestion would be trying to find something that appeals to your creative side and studying that. Unfortunately career change is a long term goal, and if you never start, you'll never get there. I find a lot of people get into development because it was their hobby and they thought it would make them lots of money. Most of these people also have something else they would have studied, but decided against because it doesn't pay as well. Maybe not a bad idea to revisit some of those options.

[+2] [2011-09-17 11:01:43] hexture

As far as delivering 'good enough' quickly I would consider that an art in itself. Programming is fairly high intellect but bottom rung work. There are tons of smart enough people in the world to do the work so the unique value of that position is fairly low. The key is to have some plan to create a better income stream or career with whatever income you can generate. Working 60hrs a week on something is only valid if you are actually building a future(or facing starvation). Top corporate career prospects now are in nursing/health care and domestic based accounting/finance.

[+1] [2009-09-02 14:14:22] Chris Needham

Get so good that your day rate is so high that you don't care what you have to do for it.

[+1] [2009-08-31 00:44:16] Noon Silk

The commercial realities of programming need to be accepted, and embraced.

But also, it's just a job.

I happen to get a lot of enjoyment out of my job, but at the same time, I have lots of little side-projects that I work on at home, at let me get that bit of 'perfection' that we are sometimes looking for.

Don't fight the commercials though; it is important to deliver programs, and you can better your software dev processes, in general, by coming up with schemes to make this process deliver stable code, regardless. Writing unit tests, and enforcing them for builds, is something that helps.

-- Edit

I will say, getting fed up as happened to me, in previous jobs though. It's only natural some times. In these times, focus on other things. Start a project at home, or maybe don't even program at home at all, build something using wood :)

(1) Wood is so 1900s. - Alex
Okay, magnets then. - Noon Silk
(1) Magnets are so 1950s. - Alex
(3) Legos. And if you must program, Lego Mindstorms. - Ryan Taylor
delete - Alex