views:

9735

answers:

158

What are things that make a programmer's life miserable?

+75  A: 
  • legacy code with no tests, no docs, etc
  • vendor lock-in (e.g. ancient oracle db)
  • and only for me: CSS and graphics
dfa
CSS you'll get used to...... graphics I'm still a nubcake.
Mark
I get what he's saying. It's not a matter of understanding CSS, it's a matter of knowing how to make things look good. In that case, we're in the same boat.
Richard Clayton
+1 it is so sad when one writes a perfect architecture with a not-so-good UI
a b
+1 One of my client once told me he liked my design, and I was relieved, as I put so much time and soul and blood in it, but then his partner laughed and told me that it sucked and I realized the first dude sucked just as bad.
MrZombie
+1, but might I suggest your add "WRITING legacy code" to your list. Maintaining crap code is one thing, doing nothing to shore it up is another, but further propagation of bad patterns/practices is grounds for standing in front of the Nerf firing squad.
STW
It's great to know that I'm not alone out there being totally null at getting anything good at design...
MaLKaV_eS
+4  A: 

Segmentation Fault.
Crappy other programmers.

Isaac Clarke
Segmentation Fault is good,it makes bug finding much easier.
Liran Orevi
Sometimes it's hard to find, though... Even with valgrind/ddd
Isaac Clarke
Crappy other programmers. That's all programmers -http://www.codinghorror.com/blog/archives/001289.html
Podge
no, its only people like you
01
+165  A: 

Lack of specifications.

HappyCoder
Or worse, specs that are a continual moving target.
Steve Gilham
@Steve - isn't that called Agile ? :-p
Frozenskys
There's good agile and then there's just churn.
Steve Gilham
Being agile is good if you are the only developer in a project :)
HappyCoder
At best, it's an exercise in flexibility and patience... at worst, it's like trying hit the exhaust port on the Death Star with no targeting computer. And I'm no Luke Skywalker.
Donut
+ sizeof(int64), if I could.
sheepsimulator
#include <limits> + INT_MAX
Daniel
@sheepsimulator: +8, then?
Michael Myers
How about agile specs in a waterfall development environment?
BBlake
+1 No. 7 on the Joel Test :)
pageman
Or even worse: you get specifications, do the work, present it and they say "thats not what we wanted" while you sit there and think to yourself "uhhh what? this is exactly what you told me you wanted...". I really dislike when that happens.
Anders
http://www.projectcartoon.com/cartoon/3 says it all :P
Atmocreations
+56  A: 
  • Project/feature creep;
  • Not being allowed to use the tools you are most comfortable with, for silly or petty reasons;
  • Not being given any "personal development" time (learning new technologies, etc, while not in the middle of the project that uses them).
Chris
+1, I totally agree about last two points
chester89
Why should they allow you time to learn technologies that they don't need right now? I know it's nice to be able to do so, but for productivity reasons it's essentially time wasting, from their point of view.
Pod
I think what the OP was getting at was that they chuck you in and you learn on the job. Instead of realising that if they are going to use technology X, they ought give the developer some time to learn it before actually having to use it. Learning on the job during the project that uses the technology leads to a lot more mistakes that are so easily avoidable.
Colin Mackay
Their point of view is basically wrong. Even old code can benefit from new technology. Could a clunky, old database front end, written in VB6 by the intern of the week benefit from being rebuilt using Ruby on Rails? probably!
TokenMacGuy
Colin's pretty much summed up what I was getting at.**Boss**: We need a new project system on the intranet.**Me**: OK, what are the specs?**Boss**: it needs to interface with the super-important GIS server.**Me**: I've never worked with GIS before**Boss**: you have 2 weeks**Me**: ...
Chris
Danny Varod
@Chris - thats the good solution. The bad one is when they hire somebody to be in charge of the project over you, because they claimed to have 5 years experience of ArcGis2008.
Martin Beckett
+32  A: 

Old code that was generated by a tool, but the tool is no longer available or doesn't work on your machine.

Philippe Leybaert
hehe. I've heard this happen before- some developers I know lost the source code for a code generation tool that generated 1/2 a million lines of code. Not sure how they achieved that considering it was kept under source control but they did!
RichardOD
Or the tool left for a better payin position :)
Larry Watanabe
I'd like to know how a comment has more upvotes than the answer it comments on.
Chris Lutz
@Chris Lutz: A personal connection to the lives of everyone reading.
Xiong Chiamiov
+17  A: 
  • Management
  • Minimum working hours (have to be seen in office 50 hours / week)
  • Meetings (Paul Graham on Maker's Schedule)
  • Not having sufficiently powerful machines / choice of OS
Anirudh
No, I get paid for 40 hours/week, 2000 hours per year. If you want me there for 50, then I need a 25% salary increase to compensate.
Chris Kaminski
@darthcoder - obviously you don't understand the concept of a salaried position...
Mike C.
@Mike C. Even for a Salaried position, if they expect consistently higher than normal work hours per week, then the Salary should reflect a higher than normal salary. They can get away with occasional overtime, but they'll have a hard time keeping a position filled if it's more work for same pay.
Sector Corrupt
They are also foolish for expecting you to *constantly* work beyond normal (40'ish) hours. You will get tired and tired people make more mistakes costing more money. The long-term result isn't worth the short-term benefit.
Nazadus
Choice of OS? Sorry, I don't want to have to hire extra IT staff so every developer can use their favorite flavor of Linux/Windows/MacOSX. Get over it.
John
+1 Paul Graham :)
galambalazs
+146  A: 
  1. No Time to learn new things. Sure i can study books, blogs, boards in my offtime. But when i've worked 12 - 14 Hours a day iam not in the mood to turn on my notebook and start reading.

  2. No rewards from Team-Leaders (non prgrammers) , they think it is just an easy job to code some nice webapplications.

  3. Working on boring projects

  4. CEO has read this great new book on management and wants everyone else to

ArneRie
It's that third one that drives me crazy.
Matthew Jones
3. Working on boring, conceptualy wrong, horribly implemented projects.
voyager
+1 for boring projects
Alberto Zaccagni
+1 for not having time to learn
srand
It's not the having no time to learn new computer things that bothers me, it's the "CEO has read this great new book on management and wants everyone else to" that bugs me.
Richard Clayton
+1 for no rewards "so when do you think you will get this done?" is not such an easy question.
Stan R.
+1 for all the points you mentioned
Andreas Grech
Regarding #2: A reward? Like... a paycheck?
William Brendel
Point #4 is so true... CEO/Top management wants to implement something they learnt in their Harvard MBA without even thinking its applicability to the industry
Ram
Try #2 when you work for a company that makes rewards software (recognition software to be exact). It's demotivating making a piece of software you can't actually use yourself.
Brian Surowiec
@William Brendel: Like a paycheck and a 'Nice job'
AntonioCS
@Brian Surowiec: That should be a crime. Not even dogfooding or practicing what they preach!
SnOrfus
+11  A: 
  1. Lack of Caffeinated drinks
  2. Having to Use a GUI tool when a command line one is available
  3. Project Managers who don't understand the Project
  4. Old code full of GOTOs
  5. Management and Sales Buzzwords.
  6. Sales (Deliberately) underestimating the time to complete a project because it gets them the sale (and the commission) :-(

Of course this list might just be me being a GOP (Grumpy Old Programmer)

:-D

Frozenskys
Sales being bonused 'now' on 'projected' profit and margin on a ten year contract and us being bonused 'then' on real profit (aka loss) and margin when their wingnut vapourware goes tits-up... (that's projected as in projectile-vomit, that is...)
Gordon Guthrie
point 3 is particularly annoying
tentonipete
+100 Lack of Caffeinated drinks!
bastianneu
Favorite Buzzwords: Game-changing, Synergy, Fusion, Share-nothing
Richard Clayton
Sales where I work get payment of bonuses only on actual cost - work. So they work with us to bid properly and they actually care about getting it right. It's a unique experience...
Spence
If you prefer to use the CLI over the GUI then the GUI must suck pretty bad.
akway
+21  A: 

Maintaining code that was done by others who never wrote any comments or description to anything. the main 2 reasons:

  1. always being responsible for any fault happened in it.
  2. if nothing bad happen..."good work, but hold on you didn't do it, it's the previous programmer"...

so basically the blames thrown at you, and appreciation given to others...

I hate it!

MAK
Absolutely true!
Manoj
Now you know what happens to former vice-presidents who run for the presidency.
James McMahon
I wish I could upvote this more than once.
Heather
A: 

Different keybindings for every application...

Hot laptops that burn my thighs...

Computer screens that don't work outside so I miss the summer working on the sofa...

People insisting I have Skype running 'in case they want to message me' when it sucks memory like a dog...

Trying to build cleanly on Windows Vista and Ubuntu (bonus points if you can guess which one is the problem)...

These are a few of my (un)favourite things...

Gordon Guthrie
you actually keep the laptop on your lap? :)
Anirudh
On a cushion on my lap, on on the duvet over my legs when I'm in bed... yup...
Gordon Guthrie
+1 to the screens and working outside. WTF happened to good old fashioned matte screens? At least then you had a fighting chance if you were in shade. Now my screen reflects the entire world right back at me.
Chris Kaminski
They were replaced by the new and improved widescreen glossy screens. I'm holding on to my aging 15.4" ThinkPad with a proper matte screen.
MiseryIndex
Personally, I like my glossy screen. Any time something is obscured by glare, it would have been faded out to unreadability on my old matte screen. Thing is, I'm not straining my eyes trying to read through the glare. Your eyes may vary, of course.
David Thornley
+20  A: 

If you work in a scientific lab, the 'Publish or Perish' mentality will slowly crush you, because your supervisors will always ask you to generate results and plots and you won't have the time to refine any technical detail, refactore your programs or define tests to check your results.

dalloliogm
holy hell yes. I literally have a folder with over 150 one-off programs, each with an average of about 200 lines of code. But hey, we always need new results quickly!!! Tests? Can't you write perfect code straight from your brain?
temp2290
Bless you, bro!
Stefano Borini
Slowly chip away at building a toolkit with your code snippets and make it write the reports.
whatnick
+6  A: 
  1. Handling different projects(using different languages) at a same time reporting to different boss
  2. No coffee provided
SteD
+1 on no coffee provided
Randell
+1 for the first one. I am in the same situation :(
Manoj
Or only really CRAPPY coffee provided. :)
Matt Peterson
A: 

Not being upvoted for awesome Stack Overflow questions and answers.

Randell
Yes. Imagine having the best answer and nobody is reading it because it's at the bottom of all the other answers. It would've saved everybody else a lot of trouble if at least one other programmer took time and noticed that 'Hey, this answer is just so right!' then clicks the vote up.
Randell
you earn respect not demand it.
n002213f
Exactly my point.
Randell
I find that asking actual coding questions gets the most respect. Maybe not the best responses since fewer people are able to answer them and go for the easy opinion questions about programming in general.
Jeff O
+1, I like a little joke!
tuinstoel
+233  A: 

All actual examples that I've encountered in the past five-six years:

  • Having to use corporate standard hardware that may make sense for Joe/Jill in accounts but proactively prevents productivity if you're a programmer and are so bad that people bring in their own hardware like monitors or external drives. Classic example - "Can I have a bigger harddrive please?" "You're not supposed to store stuff on your local harddrive but must use the network drive (which is 500MB)" "OK, can I have about 50GB network drive space then because that's what it takes to compile the software" "No"
  • Being stuck with hardware that's ten years old because the system you're working on runs only on an OS that is not "corporate standard" anymore so you can't buy any new hardware. But the tools we should be using were not meant to run on a box with that low a spec and crawl, if that.
  • Virus scanners that interact so badly with the new corporate standard version control system that check outs take hours (instead of minutes as they do on Linux)
  • The assumption that you don't need additional tools, except the minimum IDE, because "nobody else wants it" and "if you needed it, the IDE vendor would ship it". Plus of course the offers of buying it yourself and installing it on your machine gets knocked back because you're not allowed to install non-approved, non-standard software. OK, I'll go performance tuning without a profiler then, no worries
  • Working in a really noisy open plan office so you can't concentrate because people are constantly shouting, then get shouted at because you're not getting any work done

Not to mention the usual big corporate style mentality that permeates even small companies these days.

Timo Geusch
+1: I think we've worked for the same firm, or at least a for clone :)
Binary Worrier
Sound's familiar just add meetings you have to attend which are either one pointless or two the others in the meeting have no idea what they are talking about and it sounds like where I work.
PeteT
+1 for mentioning open-plan offices
finnw
Sounds like it's time to switch jobs!
BrianH
also if you work for a Public company, thanks to Sarbanes Oxley you can't connect to your work network with personal equipment. I actually offered to sell the company my computer for $1, and I would buy it back for $1 when i leave, because the laptop they ordered me is fine for Excel but can't run Visual Studio.
Jack Marchetti
Bear in mind that the meetings have to be scheduled so that they break up any reasonable stretch of time for trying to concentrate.
David Thornley
And don't forget to set an agenda for meeting so as not to extend from the allotted time.
Randell
The big, open office is my major hindrance currently. The gossip is 90% negative and I look bad for not "being a team player" because I live in my headphones to block it out. The seniors/leads also create scope creep and give me only half of the requirements needed until I'm in testing.
Cameron
Great post. I had to check our enterprise directory to see if you work at the same company as I do. ;)
Mike
sell for $1 and buy back for $1? What about depreciation and amortization?
piotr
Sounds like you work for the government (most likely the military).
Richard Clayton
piotr, $1 is usually the end point of depreciation so no accounting to be done there.
Joshua
I cant stand the SOE that I am forced to use. Its absurdly restricted. I have been given a relatively powerful laptop to work with though, so I had VM Player installed (getting that approved was a nightmare in itself) and use my own desktop environment from a portable hard drive. It was incredibly slow (a 5400rpm disk wasnt up to the job), but recently I got myself an SSD to store the virtual image....now its incredibly smooth. Strictly speaking im not breaking any corporate standards either!
Alex
Basically just a slow machine that can't keep up with me. If VS can't publish my work correctly, and I need to restart my box, then we have a problem.
johnofcross
Had that - machines are bought when you start at the current corporate standard Compaq. And never updated. So the more senior the programmer the slower their machine. A new secretary gets a better machine than a developer thats been there 3 years.
Martin Beckett
+44  A: 

Working on the same CRUD business applications time after time - in other words, uninteresting work.

Galwegian
Make your CRUD-applications interesting. Stack Overflow itself is, in essence a CRUD-application. The polish it was makes it what it is.
Markus Koivisto
@Markus - unfortunately I don't get to decide the feature-set of the apps I develop. I understand what you mean though.
Galwegian
Yeah, I kinda fell the same way for a while, but I realized the thing I hated was the domain and the platform (ASP.NET Webforms).
Michaël Larouche
Unfortunately, it seems that this is one of the most common things you'll be doing in the future. Maybe you could reduce the workload by using an ORM framework.
Richard Clayton
It might sound like a cliche but I think you can find any domain interesting. The thing that helps me is to have pride in your work and try to use the best craftsmanship.
@legendlength - +1 from me. I've learned this lesson over the last year in an SCM position, a job I thought I would despise, but haven't really. We've automated all our build systems and it's been quite fun. Ultimately I think, in programming, as long as you be creative and solve problems for yourself, you can do anything and be happy.
JimDaniel
+3  A: 

Lack of internal knowledge of programming language.

+32  A: 

IBM Rational ClearCase and ClearQuest make my life miserable.

Rorick
+1 - Why is it that everything IBM touches turns to ****?
duffymo
Pyramids of pain
Chris Needham
I have said that I often wonder what it must be like to code for IBM - knowing that you create products that nobody likes. People may be forced to *use* them, but nobody seems to *like* them.
MetroidFan2002
Dynamic views in CC is actually a nice feature.
Fredrik Ullner
+6  A: 

Marketing getting involved, or end users expecting to see 'Minority Report' GUI Interfaces

kevchadders
thats hilarious
Egg
I wanna work on Minority Report GUI interfaces - that stuff kicks ass. Although, not too many of my clients would foot the bill... in fact, I can't think of a single one that would. Maybe I need some new clients :P
BenAlabaster
You mean that's not possible? I saw the application on CSI?
Richard Clayton
+19  A: 

Just throwing this out there...

Computers?

Dan Olson
I find myself hating computers at least once a day.
Jeff O
I find myself hating computers at least once a day - and then hating whoever wrote it's software more.
rlb.usa
computer users are much more hateable.
Nick Kavadias
Sorry but I do like computers. On the other hand, I hate anything that resembles a cash machine.
mafutrct
+292  A: 

Not having admin rights on my machine.

Zaps
I hate this too! At my job IS just rolled out a suite called "trusted desktop" that pretty much locks you out of doing anything on your computer. You can't even add, delete, or move files on the c: drive. Then when they realized they essentially rendered everyone useless they rolled out an "elevated permissions" account, which is just an admin user account. So now everyone has this admin account, what's the point of installing "trusted desktop" in the first place!?
tessa
Nobody here runs as an admin for day to day use, and I don't even do it at home (unless UAC is on). What a select few of us get is a second admin account that we can use when needed (Run As) to perform administrative taks. It's actually not so bad doing it this way, but I'd be stuck with no admin rights at all.
Bratch
@Bratch I would totally agree with this. I would much rather have a lower level access account for daily use, but I WANT access to a local admin account just for days when I need it.
MJ
I have always worked companies where developers had admin rights to their own machines. They're about to change that somewhat where I work currently. They're setting it up so we can't install anything or do anything or the computer will complain and deinstall it for us, yet they're still leaving us with admin rights on our machines. Of course we've already figured out how to get around it.
BBlake
+1 you need this to do the simplest things - like install http://get.adobe.com/flashplayer ...
pageman
OMG ! how can live like that ?!
Yassir
@pageman, IT should have done that before they gave you the machine
finnw
This is why I like working in a small company without a lot of bureaucratic overhead. an Offhand comment about being mildly restricted on my desktop machine forcing me to use my company laptop got me Sudo access about a half hour later.
Sector Corrupt
That would be terrible as under Windows you can't run a debugger without admin rights of some sort.
Matt H
At one of my workplaces, I was given a machine with a blank hard drive and told to "get to it" while they figured out what they wanted me to work on, handled paperwork, etc. Not only does that mean I can start/stop daemons and install software as needed, but I can use the same Linux distro as I do at home and effectly duplicate my environment, which is really nice. I like all my customized keybindings for my tiling window manager, tyvm.
Xiong Chiamiov
@finnw: what about IT installs Beyond Compare, but you like WinMerge better?
voyager
@voyager, return with a couple of 1TB hard disks and virtualize their image. All you use it for is checkin/checkout and email while your outer image sits with no domain connection and you can have fun.
Joshua
@Joshua: I found it easier to just change workplaces to a saner environment ;)
voyager
+61  A: 

Clients. No, wait... People.

Dan
No wait, programmers...
Gordon Guthrie
Don't you mean... Other People?
alexanderpas
No, I think most programmers make themselves miserable as well B-)
Brian Postow
"Hell is other people"
rotard
L'Enfer, c'est l'autres.
chaos
@Brian: Was gonna say...
Mark
To quote Randal from Clerks "This job would be great if it wasn't for the f---in' customers!"
Michael Kniskern
+51  A: 

when the company you are working in scores ZERO on the Joel Test hehehe

pageman
Lol. I wouldn't want to work there.
Jonathan Parker
I started at a company with zero, but soon formed an alliance with a co-worker and we pushed it to five "guerilla style". (For more we'd need management support which is hard to get)
DR
Mine is at 3, what's the average?
Danny Varod
@Danny if you check job boards it hovers at 9-10 so 3 is I guess, very very bad :P
pageman
Mine is a 5, and that's only because of auditing standards. I feel bad enough about a 5. I can't imagine the frustrations of Zero!
TheJuice
@TheJuice if you close your door (assuming you have a door), you should at least get to 1 hahaha
pageman
I mean you almost have to try to get a 0 on that test and if you do then yeah that's really bad!
Brian T Hannan
+1: I started at a company that was a zero, then brought it up to an 8 in about 6 months... now we're back to a 3 because the rest was 'too hard' to keep doing.
SnOrfus
+2  A: 

CUSTOMERS! (yes, not all of them come from fairyland)

p4553d
+80  A: 

Working on your own, instead of on a team:

  • You learn much less when you can't bounce your ideas off other people.
  • You need to do all the infrastructure (servers, versioning, test suites, scripts, etc) yourself, instead of splitting it between folk.
Paul Biggar
I feel your pain; that's why I use this site.
Jeff O
Me too, I'm the Lone Coder :(
yelinna
if you do it long enough you'll start talking to yourself. then you'll have a coding buddy who is always there for you
dr
+1 Dude, I totally get you! I would probably add the same answer if you hadn't!!
Nikos Steiakakis
I used to work alone, but recently started working with a couple of developers. I think working with a team can be great, but you definitely have to be careful, especially when it comes to skill level and personality.
Richard Clayton
Can't upvote enough. This really sucks.
Imagist
It really slows down development time, but it can also create a bottleneck as the team/group is as quick as the weakest link.
Dennis
+1 from me. Working alone is liberating and depressing simultaneously.
Matthew Jones
+1 I'm mostly working alone on my internship.
Ikke
+6  A: 
  1. Management or Sales tell you to change the business/GUI logic (and you warned them about that "future feature" few months ago, but nobody listened)
  2. You say ok (in few seconds you reckon some ~1000 new/modified lines of code will be needed to do this) and at the same time you look really pissed off
  3. Management or Sales tell you: "Oh, come on, this will take 2 or 3 clicks with the mouse..."
I see/hear #3 all the time. "Oh, this is easy, just add a checkbox and a button, hook it up to the database and hang a report off it - it'll only take 10 minutes"
BenAlabaster
This thread is scaring me. hahahahahah...
Alex Baranosky
that happened to me so many times... "come on, it's only a button to add!"... yeah it's a button to add, but it breaks everything else!
marcgg
When someone tells you "Oh, come on, this will take 2 or 3 clikcs with the mouse..." the answer is, "Great! When can you come by and show me those 2 or 3 clicks?"
Kelly French
+41  A: 

The disruptive noise of everyone around you. When you complain about it, management thinks you're an arrogant prima donna, when actually, a developer would rather work in a quiet broom closet than in the poshest, loudest cubicle on the floor.

The isolation. Getting anything done requires isolation, but messes with your mood. In ordinary company cultures, socializing is done on premise and people avoid each other outside of work. In the best IT companies I've worked for, people avoid each other on premises (got work to do!) but socialize at lunch and after work. A developer inside a typical company culture will never see anyone, or will never get work done.

The fact that software requires a rather sophisticated customer. And the customers often are not even sophisticated computer users, let alone sophisticated buyers of line of business applications.

MatthewMartin
+1. In a previous job I often used to sneak off to a portakabin to work on tough problems (the company had hired it for meetings a few months earlier when they had been short of space, but later it was hardly ever used.)
finnw
+1 on nonsophisticated users, I've given a few mouse lessons as a programmer...
rlb.usa
I've gotten used to the noise that coworkers make and can ignore it to some extent. But then they bring in their kids during school holidays and let them watch Dora the Explorer...
lins314159
Blast some good music and I'm a happy programmer. Cancels out all the bullshit coughing, sighing and groaning that developers do.
Typeoneerror
+6  A: 

Too little RAM in my machine. There are up to 3 VMs running the same time, sharing 2 GB of RAM (not to forget the host system)...

Scoregraphic
+28  A: 
  1. CMM being applied as a certification end in itself rather than as a means to reach a better software process.

  2. Management concerned with the impact of any changes/new projects on their reputation with higher management rather than in terms of the intrinsic value of the project.

  3. Noisy work environments.

  4. Long commutes.

  5. Long hours being compensated for with free order-in unhealthy fast food which doubly increases the risk of heart attack.

  6. Team members located halfway across the world in a time-zone that coincides with your sleeping hours.

  7. Company legal requirements that require a 6-month review by the legal department and a technology review to download any opensource tool.

Larry Watanabe
+1 for CMM Fail.
Greg D
There's an obvious flaw in a certification process where the certifiers are highly financially dependent on those they are certifying and where the subjects get to choose which projects get audited.
Larry Watanabe
Yeah, I've got lots of firsthand experience with that broken incentive model.
Greg D
#5 - word. It's hard enough to stay healthy sitting in front of a computer all day. I'd rather just get a cut of the cash they spend on pizza and junk food.
tessa
After a year of working in this kind of environment, I was diagnosed with type 2 diabetes :(
Larry Watanabe
You typically don't *have* to eat the crap they feed you. I know that it's tough but try to bring your own healthy lunch.
temp2290
+1 for #7. It's also called the 'OMG! It's an open source tool!' paranoia.
Jay
+100000 for long commutes !!
Stan R.
A friend of mine told me how ISO 9001 certification works. A guy comes through, and asks the guy at the next desk what he's doing. He's putting a disk in a pan of 70 degree water for 15 minutes to get the bugs out. Six months later, an inspector comes in and asks you where's your pan, thermometer, and timer.
David Thornley
+1 for number 6.
Deepak Singh Rawat
Per long commutes: move or work somewhere else. You have options; don't complain. Everything else = +1
SnOrfus
+11  A: 

Not being able to get a job as a programmer. :(

David Anderson
There's still time for you to escape then, good luck! :)
Gordon Guthrie
check out http://jobs.stackoverflow.com/ !
rlb.usa
i feel your pain.
Gary Willoughby
Do you have a Government Security Clearance? We have 40+ open positions in DC.
Richard Clayton
I am currently on co-op but very soon will be looking for job, and so far with this ressesion and my lack of experience doesn't look good for me.
Dmitris
A: 

1) No Free Beverages 2) The HR thinks they are the main Bread earners for the company and the programmers are just fancy typists. 3) Slow crappy computers 4) Every Programmer should have his own private office.Good programming requires lots of skill and concentration and all the noise around the cubicle doesn't help the cause. 5) Cleaning someone else mess.

Duleb
A: 

In contrast to Paul Biggar; Working on a team instead of largely on your own. Because of one team members thoughts on how a build system should work, half of our projects can't be built directly/without the projects that depend on them. I envision this to be either because the other dev is a masochist or doesn't work below the UI layer very often.

Similarly, derailed meetings; and using generalities and metaphors in an argument/discussion, where they don't fit, or where no instance of the generality exists.

Basically, any time you have a bad mix of personalities on a team. We have one very strong minded individual, and quite a few 'weaker' personalities. It just doesn't work well...

CoderTao
I'd argue this is a problem with how your teams works.
Paul Biggar
No doubt, though poor team... communication? management? interoperability? is something that makes the life of a programmer miserable.
CoderTao
I see it a lot in my current co-op place...
Dmitris
+9  A: 

This has to be said: pressure and stress come from within. What makes the programmer miserable is his or her own business and unique to everyone. I was miserable at a programming job, but it really wasn't the job. It was me. With a proper attitude adjustment I would have been fine. You can't do this on your own, but you do need to realize you need help. Giving yourself an attitude adjustment is like trying to give yourself a haircut.

Now obviously the work is stressful. But any job is stressful. I worked at a company that had written job descriptions that marked each item as "cope with the stressors of..." so your job is to deal with the stress.

One good way to cope with stress as we humans are the talking animals, is to blow off steam to those who can understand us. So whining and sharing your misery with your programmer brothers is a good idea.

But not one universal thing will make a programmer miserable. It's your job; do it, or find a new career. Or at least, a new job.

I realize this is a hard line and as this is a community wiki we aren't looking for one answer; but I didn't come here to bitch today. I have to go get my work done.

tkotitan
damn dawg, breakin' down over here!!!
Alex Baranosky
A: 
  1. Doing admin type work as opposed to programming...for weeks at a time.
  2. QA dept that cannot recognize a defect
  3. Working OT to get a release done, then having it pulled to go back to working on a prior version.
Jeremy Cron
+7  A: 
  • Websense (I call it the Great Wall of China)
  • Not being able to target .NET 3.5 because the server is still running Windows 2000
  • Stupid IT politics (My customer lost a lot of time because on a new push of new Symantec)
  • Lack of planning
  • Lack of interest of the domain
  • Every person in the company has its own version of the rules...
Michaël Larouche
+1 for websense. I've lost track of how many times I finally found one page that seems to match my problem based on the short google description, and then websense blocks it for having social networking tags.
tessa
websense blocked google.com at one point
A: 

i'd have to say incompetent clients, they make life so hard some times.

and things that don't work when they should!

Neil Hickman
Incompetent clients? In what way is a client supposed to be competent? No way, dude: down-voted.
Seventh Element
It was a very sad day when I figured this out (sad because I actually enjoyed contracting right up until almost this point): It's my experience that companies contract out development work because they're completely at a loss as to *where to even start* on the project. If they could describe in detail what they needed (instead of suggest vaguely what they want) then they could go find people who would give them exactly that. And if they could describe in detail what they already HAVE, then rewriting it would take 10% as long as it typically ends up taking.
Jason
+48  A: 

Being on teams who are content working long hours, who lack focus, and in a constant state of emergency yet have no desire or will to improve their processes.

A close second are those who talk a lot about code quality or being Agile, then do the opposite using the "Agile" or "Extreme Programming" methodologies as an excuse to continue their wild west style of coding.

Vinnie
+1 because I am living this right now! Wonder if anyone from my work reads SO? Meh. :)
Tony
Same here. 3 releases in less than a month = total chaos. Management always talks about change but it never happens. Good times.
tessa
There is nothing worse than a programmer who works long hours, is always "busy" but never wants to learn to do things better/faster/easier.
Jonathan Parker
+1 because people think that long hours = respect from management.
Jon
A friend of mine was just talking about his former company using "Agile Programming" as an excuse for stuff they really shouldn't be doing. I told him it wasn't the fault of AP; they could have used any buzzword the CIO wanted on his resume.
David Thornley
+1 because I'm in on a Saturday for exactly this reason.
Kaz Dragon
@Jon: The problem is that long hours == respect from management. If you finish everything on time (even if you haul ass during work hrs to get it done) then one of two things happens: 1) "programmers never meet deadlines, he must not have enough work" 2) "9-5 and just goes home; he's not dedicated"
SnOrfus
+41  A: 

Microsoft Access.

  • Bad non-standard SQL engine
  • Poor DDL support
  • Non-standard data types (e.g. Number, Yes/No)
  • Scales badly
  • Version-sensitive
  • Deployment problems
tomfanning
I would say Access users who do not know how to normalise data. The database grows too big, then gets handed over to IT.
Podge
'nuff said! <stupid 15 char limit>
BenAlabaster
Disagreed. Access is great for the things my company use it for. Imagine loading a million records into Excel for "playing around with"... oh, right, not possible.
Joe Philllips
i want to vote this 1000times up. Access is true evil
bastianneu
@d03boy - a million records in Access is surely tool abuse.
tomfanning
Why would a company use Access? In my humble opinion, Access is for home users or small organization (but even then, why not just use MySQL).
Richard Clayton
I voted you up, not that I ever experienced this, but because the thought is scary.
Dennis
Nothing wrong with access. It encourages innovation. What is wrong with yes/no? Nonstandard, surely. However it actually makes sense and is easy to use. Maybe standard sql should get booleans
jle
@d03Boy new versions of Excel let you paste in millions of records if you want to.
Chad Okere
-1: Don't knock Access. Love it or hate it. That platform is just easy enough to convince people who wouldn't spend money on custom software to automate, and just limited enough to force them to hire a consultant (us) when they get in over their head. Access has created more programming work that all other technologies combined. =)
JohnFx
This is the first answer that actually made me *shudder*
TWith2Sugars
@twith2sugars - apologies :-)
tomfanning
Access is a Nice gui based db you can build apps in and store single data files. How long has sqlite been around ?
whatnick
Since August 2000. Access' main problem is scalability and subsequent lock-in.
tomfanning
Pick your poison: would you rather Access or people trying to use Excel as a database? "It's got tables, just like a database, and I can reference tables from other tables, just like a database - it's practically the same thing!" At least there's good libraries for piping data over to a more formal RDBMS in Access.
SnOrfus
+22  A: 

Consultants

Dan Diplo
Now now, some consultants are programmers too. It's just that some of them are more dedicated to quality than others who seem to be more interested in telling the customer what they want to hear so they get their cheque. Some of us do have a moral code and do right by our clients.
BenAlabaster
I had the same perspective before, they criticize your work often but in the end (if they were good consultants) their advice actually helps you, but for ridiculously high rates.
Dennis
None taken. . .
tsilb
+118  A: 

Recruiters/HR who require 5 or more years experience in 10 different technologies and are unable to understand that programming/software development skilll is something that transcends language, OS, hardware, and environment.

Larry Watanabe
Those jobs all go to people who lie on their resumes
rotard
Also, recruiters/HR who require 5 or more years experience in a technology that hasn't been around for that long, eg:"Must have five or more years of Microsoft Silverlight development experience"
X-Cubed
@X-Cubed: I love that! I recently saw a posting on the web looking for developers with 2 years 'Silverlight 3' experience. I take it they're having a hard time filling that position.
Richard Clayton
How about the ones who think AJAX is a programming language?
JohnFx
I know, don't they know it's a very good bathroom cleaner?
Larry Watanabe
@Larry Watanabe - and a good Football (Soccer) team (maybe not so good anymore, I'm not sure) :)
Russ Cam
I eventually got hired by a company that had only 2 requirements in their ad: VB and .NET. I had a 6-page skills matrix, with VB and .NET missing. I almost skipped the interview, thinking "this guy is either a total idiot ... or brilliant".Turns out he was brilliant :) 22 years old and giving me advice on programming ... and I'm taking it because he's right.
Larry Watanabe
+28  A: 

When you finally deliver code that does exactly what is asked in the requirements document and it is still, somehow, not what business wanted.

Scott Fox
"That's what I *said* but that's not what I *meant*!"
Jason Creighton
It doesn't do what I want. What do I want it to do? I'm not sure.
Jonathan Parker
The classic problem, where users don't know what they want, they only know what they don't want...
Chris Latta
I've learned to live with this. No one knows what they want until they see it, so the best thing is to get them _something_ to look at as quickly as possible
Gabe Moothart
+1, this happens to me waaay too much.
Heather
it would help if they's talk to the users when gathering requirements instead of the managers. Mind you the problem wouldn't go away but it would reduce a lot of this. The first time the users see the system, or even hear anything about i,t is often the day it's deployed to prod, no wonder it isn't what they need.
HLGEM
A: 

A lot of the paperwork/management stuff has been mentioned, so here's a technical one that's been making my life hell for the past two days:

DLL hell... Such as the Oracle .NET Data Provider seemingly mismatched, yet no resolution in sight, and not much help to be found. Massive waste of time, during which no actual work is getting done.

MetalMikester
+1 for hating ODP.NET.
Aaron Daniels
Turns out the driver wasn't mismatched: Apparently it defers fetching LONG and LONG RAW data. Whaaat? I just queried it, that means I want it *now*. Deferred to when? Christmas? Hell... Ended up changing it to an integer (no reason why it was declared LONG in the first place...)
MetalMikester
A: 

ClearCase (worst revision control software)

Linux development on a 32 bit machine running Windows XP (I love linux, BTW). The VMWare clock always gets out of sync.

Juan
I used clearcase back in the 90's and absolutely loved it, though I was coming from sccs so the bar was pretty low. Still, clearcase was my favorite until I discovered BitKeeper.
Bryan Oakley
A: 

So some anecdotal evidence on noise levels in cube farms. I have a laptop I use as my ipod, and a pair of Bose QC2 noise cancelling headphones. I used them in the cube farm because it was the only way I could drown out the loud cretin on the phone in the next cube who had to have EVERY conversation on speaker-phone... (nevermind the 5 people who decided to have a conversation outside my cube while I was on a con-call with a customer, and took exception to me screaming at them to shut-the-fuck-up whilst on mute).

Anyway. I quit that job and moved into an office with another person. Using the same headset, and the same volume levels, where before the headset would cancel noise out so you could be RIGHT behind me in the cubicle talking to me and not hearing you, I was able to hear conversations from the office next door. The volume level was THAT different. It's not good for you long-term.

It's probably a good 10-15 decibels difference. Closer to 10. Here I only get one AC fan creating noise. In a cubicle farm I get EVERY AC fan within sight. Plus everyone coughing, talking, on the phone. Every door opening, even conversations halfway down the floor.

Chris Kaminski
Can't stand noisy workplace either.
Seventh Element
A: 
  • Backward compatibility
  • Dealing with code that sucks(written by others)
  • Doing things that are not part of his job description
Diaa Sami
+54  A: 

Weekly meetings of twenty people first thing in the morning, in which the same three or four morning people always start cracking jokes halfway through, to the complete exclusion of business. I just want to crawl back to my desk (or better still, a hammock) but the meeting can't end until we're through the agenda, and we can't do that until open-mike comedy hour is over, and there's not much hope of that while our resident rise-n-shine comic genuises are all jazzed up on caffeine and sugar and their own brilliant wit.

Policies which absolutely forbid the automation of tedious, repetitive, time-consuming chores.

Managers who believe that

  1. the whizz-bang IT methodology that was state of the art twenty years ago is the best thing in the universe,
  2. your estimates are your promises,
  3. their estimates are your promises,
  4. the longer they take to say something the more deeply it'll sink in,
  5. technical problems can be solved by adding stress, and above all
  6. the word "need" trumps everything ("We need this by Friday" "That's impossible for the following reasons..." "You don't understand, we need this by Friday."),
Beta
"the longer they take to say something the more deeply it'll sink in" - classic +1
Aaron Daniels
really well written, I could totally feel your pain :)
marcgg
#6 is classic. If they needed it so bad, why didn't they ask for it sooner?
Kelly French
+1, would be +INF for "* estimates are your promises"
Runeborg
+1 for #4. Sounds exactly like a BIll Lumbergh. xD
Sergio Tapia
very well said sir
+9  A: 

The biggest thing to bother me is clients that want a rush-job and don't see the value in a full software development process. Every time this has happened I've never seen the team finish the project, bugs were plentiful, and the code was a mess.

If you want something done right it pays to spend the extra time and go through the full process.

"Fast, good, cheap. Choose any two (you can't have all three.)"

Nick Gotch
I actually think it's more like "Fast, good, cheap", pick **one**.
Jason Creighton
+15  A: 

Clarity (worst piece of software I've been forced to use ever)

A project manager who was the CEOs girlfriend and who didn't even know what language we programmed in (of course she was promoted from CEO's secretary)

Expectation that I can read your mind and will design things exactly as you would want them even though you are too "important" to waste your time telling me what you want.

Punishing the developers for failing to interpret the bad requirements; it's somehow always our fault it doesn't work the way you want it to, not your fault for failing to tell us what it needed to do.

Unmoveable deadlines even when the requirements expand or the developers are temporarily moved to a higher priority project (how can I meet that deadline when no one is allowed to work on the project?) or when required information (like a file of their targeted customers)wasn't received from the client until the day of the deadline even though it was due to me a month earlier. Even worse when the deadlines can't change when we say we have an unanticipated problem that must be fixed before we go live and they make you push it live broken to meet the deadline rather than tell the client it will be late. Oh BTW it's your fault when the client them notices it's broken. Hey we told you it was broken and not to push it.

Sales guys who cut your time estimates in half (with no drop in requirements) and then complain when the project goes over projections and is only half done. NOt my fault you didn't believe me when I told you how long it would take.

Required training held at lunch time (or once even on a weekend). If it is important enough to be required it is important enough to do on company time not my time.

The client from hell who can't be pleased no matter what you do or how many extra hours your team works or how much you do for free to keep them happy.

(thanks for the question, it felt good to vent)

HLGEM
Last line made my day :D
Deepak Singh Rawat
+8  A: 
  1. Getting yelled at for putting in a simple bug fix like correcting a typo that my boss says, "We don't have time to test that!" which to my mind is ridiculous.

  2. Being told to, "Do it however you want to do it," and then later on being told to use something very specific that doesn't seem useful at all. Like being told to go build a new application and then later on being told to use this new software package the company bought without telling me it was considering that kind of solution.

  3. Poor communication skills. If you ask for something and I deliver exactly what is asked, why is this a bad thing? Is it that English is a language of such loose definitions for a term that other languages should be used for documentation or what.

  4. Having so much bureaucracy to do something that it is demotivating. If I want to change something and I have to talk to 8 people to get 6 signatures to do the change, am I really going to do that each time? I don't think so.

JB King
+8  A: 
  1. Coming into a project late to find masses of unmaintainable code which makes even the simplest task take forever... Code that makes you want to start the whole thing from scratch but you can't because the next deadline is in 5 days. So you just get on with chasing bugs through layers of endless insanity, knowing that the further the project goes, the worse it will get, until finally somebody realises that the whole thing does need to be done from scratch, but by that time you have lost all appreciation for life and your cold soul is forever tainted with a deep hate

  2. I'd be the happiest person in the world if somebody fixed #1

Sam
"but by that time you have lost all appreciation for life and your cold soul is forever tainted with a deep hate " ahaha, brilliant
marcgg
+1  A: 

Clueless customers that sit right next to you and "help".

David French
A: 

Anything to do with payroll.

Matthew Ruston
including getting paid?
arinte
that's where the checks come from, though.
corprew
+24  A: 

8 bosses, I have 8 different bosses! Yes I did get the memo.....

Poor sould. What sucks is that for some people that's 8 assess to kiss.
MarceloRamires
And they never agree either do they? I once had two bosses (who were trying to get the same female employee to date them which mde it worse) and if guy1 said to do something, automatically guy2 said not to do it, no matter what it was.
HLGEM
I'm shocked at the comments. I thought spotting an Office Space reference was a prerequisite of having an SO account
Kirschstein
Did you staple it to the TPS report?
bobobobo
+196  A: 

Constant interrup...

Dour High Arch
This sounds so famili...
Gamecat
I whish I could vote this twice...
Radu094
+1 what were you..
a b
aposiopesis! +1 for anyone who knows what that mea..
Jason
CANDLEJACKHe's not gonna find me on Stack Ov
Deniz Dogan
This is going to start a whole litan...
STW
+ ` ` ` ` ` ` ` `
Jon Seigel
This is THE bes
bobobobo
This is a stup...
Kaz Dragon
A: 

Here they are in the order I hate the most:

  • Security
  • Networking
  • Hardware
  • Working with software without the code.
  • Working with other people's code.
  • Lack of understanding that a new feature: A) adds more time to creating all the other features B) makes it harder to maintain other features C) increases the likelyhood of errors/bugs D) pisses me off that I am unable to make you understand this which if I did would make me a candidate for sales or law school.
Jeff O
+73  A: 
  • The CEO has a better computer than everybody, just because he's the CEO and wants the best for himself. Everybody else gets his hand-me-downs.
  • Spending six months building an app to the customer's specifications, only to be told that nothing works the way it is supposed to. Essentially you're forced to start over from scratch.
  • Spending the next two years maintaining said app, because they keep coming up with ideas for new features.
  • Having to drop everything because the CEO had an idea and stupidly promised it to a customer over the phone; it needs to be done within a few days.
  • Being expected to answer the phone, or sitting in the same room with someone else who is expected to answer the phone.
  • No free snacks or drinks.
  • Noisy chair with poor back support.
  • Wasting two hours in an all-staff meeting where everybody criticizes your app for not filling enough of their horizontal screen space. Nevermind that some users are running at small screen sizes or using mobile devices.
  • Having to put up with annoying coworkers who don't know how to treat other human beings with decency and respect. You don't have to be my friend, but I don't like being called an ass.
  • Working in an office where everybody shouts instead of picking up the phone or getting up off their chair.
  • Having to come up with time estimates when you know they won't be accurate anyway.
  • Taking over a project that was started by an employee who left long before you arrived, nobody has touched it since, there's no documentation, and the code is the most hideous thing you've ever seen.
Scott
About the last one: the VB2008 project I "inherited" had a lot of trash code, no documentation, nobody touched it before me, but the logic inside all those files was easy, clear and simple. The creepy part is that the employee didn't leave. He died. ¡!
yelinna
@Scott - really sounds like your organization has weak middle management. Someone should be running interference and preventing some of that crap from ever happening.
Richard Clayton
Probably should've shown the customer some progress somewhere during those 6 months...
TM
@ Richard - Fortunately I don't work there anymore. There was no middle management (company was too small), and what management they did have was causing the problems themselves. Now I work for a medium-sized business and it's much, much [email protected] - I was showing progress on a very frequent basis. I never did figure out why they never spoke up sooner, and used that to my advantage to either reject their request or extend the amount of time I was allowed to work on accomplishing it.
Scott
+1 for the last one. I took over a classic ASP project a while back that looked like each page was written by a different developer who had completely different specs
Stimul8d
I'm a bit surprised by how important some people think snacks and drinks are. We don't have them (except coffee), and i've never missed them. Is this just because i've never had them? Mind you, i'm fat enough without a never-ending supply of sweets at my desk ...
Tom Anderson
My company's got most of these.
Joshua
The last one: I once inherited a .Net application that we didn't have source code for, let alone docs or other luxuries. It has been written by an off-site contractor that, for some reason, never shared the sources and long since vanished. I had 2 days to figure out what makes this application malfunction and fix that. Of these, I spent 3 days trying to trace and contact the original developer to get the source code from and, failing that, another 3 days digging in the disassembed code.
vit
+1 for the chair issue and inheriting old code.
Danny Varod
+1 for almost everything.
Deepak Singh Rawat
+1  A: 

Having only worked in startups only so far, i can only comment on things akin to a small setup. The following are the things I felt difficult.

1) The customers aren't always aware of their needs and asks for features once we provide the product. 2) The management, esp the marketing people may have no know how of programming, thus they underestimate the work needed and quote very low price and estimated finishe time. Can become a burden to programmers. 3) The management may not agree to adopt a better tool or process. 4) The boss needs work done fast, talks a lot about educating yourself but seldom give space and time for learning. 5) Sometimes being forced to work on projects which will not help you as a programmer in no way. 6) Not being acknowledged for the long hours you spent at office and get scolded for being late after lunch. And many more.

But being said all this there are many good things which retain you back in this field.

Christy John
+2  A: 

Having to make changes to your software that you know are actually making it worse, just for political reasons or to add a few dollars to the bottom line in a really short-sighted manner.

andygeers
+5  A: 
  1. Anything that makes it clear management doesn't care about what I'm working on. This includes anything that unnecessarily makes me less productive. People have already mentioned lousy computers and overly rigid procedures.

  2. The management catch-22. Me: "This won't work, for these reasons." Manager: "Well, obviously it won't work if you don't want it to work." The immediate affect is anger, it only turns to misery when I realize I can't do anything about it.

  3. Being disrupted at bad times because of an arbitrary building maintenance schedule.

  4. Being imperfect.

David Thornley
I've seen #2 way too often.
Joshua
+3  A: 
  • Customers : Not understanding what they want. Poor specifications. Changing specifications. Last minute small requests/projects that are not small at all.
  • Supporting professional software that doesn't work well and makes your team look bad.
  • Noisy coworkers while working.
  • Feeling isolated while working.
  • Poor hardware, poor software, and permissions issues, oh my.
  • Excessive immaturity and drama in the workplace
rlb.usa
Do you work at my company?
Dan Diplo
+7  A: 

I think the worst thing that may have your life to go throught the miserable way is not having time to spend with your family.

Sebastian
I'd have upvoted +10 if I could!
slebetman
+26  A: 

"We don't allow STL" (C++ standard template library) The reason? "It is not standard."

Tim
Same with boost!
Paul Biggar
Yes, "let's implement our own collection classes that don't throw exceptions!"
Drew Hoskins
I grow increasingly wary of the x-commons package found in most development teams that includes their own date handling routines, weird collections and stuff that can be found in Apache Commons - doh !
Jon
What does that 'S' in STL stand for again?
JohnFx
@JohnFx - they were concerned that it wasn't ansi standard. The real issue was that the "CTO" (and I use that term loosely ) didn;t understand templates and read an old article about it from before 1999. Never mind that we only developed for Win32, he just didn't like it. I have heard the same argument against using c++ (over C) - not ansi standard.
Tim
We had a no inheritance rule (in C++) because you wouldn't know where the 'real' function was!
Martin Beckett
@mgb - that is awesome!
Tim
A: 

Maintaining a poorly written code base for a customer that doesn't understand software. The horror!

James Cadd
+4  A: 

PHP

Paul Biggar
I have to put at least fifteen characters... but = (
NateDSaint
I used spaces. Also, I don't understand what you're saying.
Paul Biggar
+7  A: 

Working with code commented in Chinese and and trying to talk to the guy that did it ;)

Andre
Is this for real?
Randell
I had a similar experience with a Romanian programmer.
Ferruccio
Woring with code commented in French and trying to talk to the guy that did it can also be difficult. But it gets worse. French programmers sometimes name their variables in French. Chinese programmers don't name their variables in Chinese, except when testing if their compiler conforms to some spec.
Windows programmer
Working with code commented in English by someone who couldn't speak English. Working with code commented in Japanese by someone who couldn't speak Japanese. Working with code commented in Russian by someone who couldn't speak Russian. Working with code commented in Esperanto by someone who couldn't speak Esperanto. Working with code that's perfectly commented but bug ridden because the programmer didn't understand the language they were programming in -- oops, how did a legitimate complaint get into here.
Windows programmer
Documentation in poor English is just as bad.
Richard Clayton
+11  A: 

Noisy open plan offices are offensive to programmers!

I think it's important to be with other co-programmers in an isolated room, but not in total indiviudual isolation as you are not able to bounce ideas and improve as a unit.

A small core of programmers can provide a rich combination of knowledge that can be shared and as a result improve and raise the standard of programming accross all those involved in the team.

Vidar
+116  A: 

Microsoft's IE6

Waseem
Any version of IE.
Richard Clayton
Microsoft (optimized your response, 9 characters)
Mike Robinson
Windows (8 characters. Their gaming platform is surprisingly nice. Not looking for a console argument.)
Sneakyness
2 Characters... M$
akway
@Richard Clayton: Sans 7, of course. At least that one is relatively solid, all things considered.
diadem
+18  A: 

IE6... is my biggest pain, followed closely by IE7.

Joseph Silvashy
I don't think IE7 can be compared to IE6. IE6 can barely render HTML tables I HATE IE6 SO MUCH BLEH
Deniz Dogan
+34  A: 

Brutally intrusive virus scanning software that slows every disk access to a crawl.

David Plumpton
I have that plus a over worked network
Podge
At my company they have Symantec running three times in the middle of the work day for updates and scans.
Lance Roberts
I *hate* this with a burning passion. Waiting ages for a build... meanwhile you can see "rtvscan" causing page fault after page fault...
TM
+7  A: 

The following sums it up for me:

Yes I can do that in 40 hours. No I can't do that in four, and no, five isn't good enough either.

2 weeks later. No it can't do that, you told me it was too expensive. No it can't do that either. No everyone does not want it like that. ...

lungic
I'm sure six hours would have been enough `:)`
Geo
+5  A: 
  1. Standard desktop or laptop configurations. Why must a developer have a the same spec for his or her development box as the manager who fires up Excel and Outlook.
  2. Misuse of resources. I have always been a fan of dual monitors for developers and more often than not this is not the case. It burns me to no end when I see office managers, and standard support personnel that have such a setup and I am told there is no money. Ouch!
  3. Poor requirements.
  4. Clients that do not know how to express their needs.
  5. Inheriting a software application that was poorly developed.
  6. Using VS.NET 2003 and maintaining 1.1 applications when the cool kids are using 2.0, 3.0, or even 3.5
  7. Lack of software tools to efficiently perform the job.

....and pretty much what everyone else has said!

+4  A: 

Having a test server with a 100 GB hard drive that serves as our test SQL Server, test App server, test FTP server, test network share emulator and in no way resembles our production environment. Yet they complain when we migrate code that fails in production.

BBlake
Here's 20$. Go buy a couple hundred GB's off of newegg.
Michael Hart
Heh, that's what we developers keep telling them. But no... we aren't allowed to touch the sacred hardware. Must not touch the hardware ever... not suggest in the slightest their hardware is insufficient... gotta love the IT guys
BBlake
Our staging server used to have a 30GB disk and was used for client UAT and it was *always* running out of space. Of course, the 'out of space' exceptions this raised were blamed on the programmers. The operations team solution? Compress the drive. *sigh*
Dan Diplo
+2  A: 
  • Bad management;
  • Sales department.
Augusto
+2  A: 

Illogical decisions. Often times these precede an AssholeFoundException.

Aaron Daniels
+7  A: 

Without a doubt, the number one worst thing for me is:

  • Long build times

If you can't iterate quickly, you're not as productive as you could be.


Also: inherited VB6 apps that interact with a specific version - no longer available - of MS Office.

kibibu
Story of my life!
Jahanzeb Farooq
+1  A: 

Motivators are the worst.

Jonathan Parker
+34  A: 

non-programmer managers

df
Ridiculous. Better yet, managers who at one time programmed, sucked at it, and then moved to management.
Richard Clayton
Although I agree that they *can* be a nuisance to deal with, if managers are doing their job correctly, they shouldn't *have* to know all the intricacies of programming. Yes, They should have a general idea of programming, but they should be more worried with how difficult it will be to do accomplish a certain task, how long it will *actually* take to complete that task, while simultaneously being able to mediate the pressure (and threats) of upper management from reaching you. Essentially, their job is to act like everything is fine up until the last second.
Michael Hart
Worse yet. Programmer managers who won't stop programming and start managing.
JohnFx
Richard: who then go on to enforce their braindead methods.
It's simply illogical to want managers to be programmers, in more than a trivial sense. Managing is a full-time job and even if you were a great coder when you started managing, 10 years later you can't hope to keep up... and nor should you. Programmers misunderstand management as much as the other way round.
John
Pete Kirkham
Its just their incompetencies (when they have them) always are chalked up to "he doesn't even know how to program." He should able to blackbox it away (the programming) and deal with the people.
bobobobo
+6  A: 

Title Proliferation! I am so sick of the 23 year old Senior Web Developer or Senior Developer who freaks out when their intellisense breaks.

At my last company we had more Senior Directors and Directors than regular employees. At another company I did not know I was a Vice President until it went bankrupt and I read it in the documents.

I am all for recognition of responsibility but some common sense please.

Gary
I hate the term Senior Developer - especially when it's given to people with two years experience - or no experience :) Senior really should mean senior, i.e ten years experience... junior and intermediate seem to have disappeared!
Jon
I suppose this happens because titles are cheaper than pay-raises.
JohnFx
I never pay attention to my job title. I'm interested in doing interesting things and getting paid for it, not what they call me.
David Thornley
actually, "senior" usually has something to do with the payscale.
wds
Gore and associates - the company behind Gore-Tex assigns everyone the job title 'associate'. This feels like a much better way of doing things. It removes the implied intellectual ability and respect that a job title carries. If everyone is rated the same then employees can only be judged by what they actually do.
MattyW
+8  A: 

Getting performance-reviewed based on what you did wrong, rather than what you did right.

Drew Hoskins
A: 

http://twitter.com/ky/status/2943698137

Kyle
+5  A: 
  1. When you don't have liberty to design the code in the proper way just because the people who are higher in the food chain are too scared to change things. And you have to support and write crap code to cater for that horrible design.

  2. Too much restrictions on internet usage which includes restrictions on Facebook, Messengers, Youtube, Flickr etc.

Aamir
+2  A: 

Other peoples code.
How did they get paid to do that?

Gerhard
I've wondered that on occasion myself. Worse sometimes I know they got paid more than I did.
HLGEM
+1  A: 

Having SO cluttered with lifestyle questions, cartoons, jokes, and other things at best tangentially related to programming. But I guess people have to have somewhere to share their programming cartoons. Sigh.

Norman Ramsey
+1  A: 

Shared Computer

Adinochestva
+1  A: 
  • The need of doing research, in a short time, about advanced features in technologies/products that you don't know. example: someone was asked to find out if an architectural software can be implemented using Google Sketch Up and he didn't knew what Sketch Up is.
  • Constantly changing requirements
  • Sudden deadlines (first: "there is no need to hurry"; after 2 days: "we need this tonight")
  • Coworkers that think that the first phase of a project is "write code (that might work)" and that "refactoring is bad because no new features arise"
  • Managers (who only use Skype, Outlook and Visio) that have computers with 4 GB of RAM and developers (who need to run WinXp virtual machines) with 1 GB of RAM
Victor Hurdugaci
+2  A: 

For me the answer boils down to one thing: meetings.

Bryan Oakley
+9  A: 
  • My OCD tendencies
  • Getting distracted
  • Procrastination
  • Working on too many projects at once

In a word: ME

Dinah
+1  A: 

Having to buy my own laptop, second screen, decent mouse and keyboard because my employer "procedures" do not expect new employees to be provided with these tools.

They expected me to code using a Sun thin client with a 14 inches screen.

Stefano Borini
A: 

being known as a screen maker, working on company's crappy UI framework built on crappy asp.net webforms built on closed-source .net.

ercu
+2  A: 

I'd say that arrogant developers/sysadmins/dba's etc... make life in work a little more miserable. There's a chapter in Practices of an Agile Developer that talks about this:

Point 3: Criticize Ideas Not People.

I'm not exactly sure why some senior developers believe it's ok to tell junior developers that they're stupid regarding their decisions/mistakes - maybe as a means to make themselves feel more superior and cover up their own weaknesses. Courtesy and politeness appear to be missing here : ) think before you make comments regarding a colleagues work, make it non-personal!!

Jon
+5  A: 

Did I miss the person who said Sharepoint? It can't not have been mentioned.

erikkallen
A: 

Working on a case-sensitive database with tools that have 2000 or 2005 in their name.

JBrooks
+2  A: 

Working with a bad team - All the technical and corporate issues put together pale in comparison to having a bad team around you.

Think about it, a crafty programmer finds artful ways of getting around all the technical and corporate bs, and gets stuff done somehow. But no programmer worth his salt believes he can exist in a vacuum, so there's really nothing you can do but be frustrated if you're forced to work with terribles.

Gus Melo
+1  A: 
  1. Microsoft Windows of course.. :)
  2. Inability to explain common people how much significant work you do.
  3. Security restrictions, i.e can't open this/that site.
  4. And last but not the least, lack of female colleagues.
Neeraj
A: 

There's only one correct answer to this:

the programmer himself

as Dinah already mentioned.

No one else has the power of making one's life miserable other than the person himself.

A circumstance in the world, such as having some problem in your profession, can of course contribute to you feeling miserable but in the end nothing has power over you unless you give it that.

Vesa Nieminen
A: 

Being asked to develop a software workaround for windows Vista and/or 7 and develop it on windows XP

Red Serpent
That's exactly what I do. Develop in XP, test in a virtual Vista or 7 PC.
Windows programmer
+3  A: 

Requirements that change like the wind.......

Gordon Carpenter-Thompson
+1  A: 

Inability to explain to other people what kind of work you do.

It doesn't make my programmer's life miserable but it sometimes makes me sad. My father loved me very deeply and it frustrated him that he couldn't understand what kind of job I have. He wanted to understand it but he couldn't.

tuinstoel
I have the same with my dad - who is an excellent engineer but just doesnt get software at all. Computers just missed him.
My dad was a history teacher and vice president of a high school. He knew Dutch, English, French, German, Spanish, Latin and (old) Greek but no C#, Javascript, SQL....
tuinstoel
+5  A: 

Did somebody say Lotus Notes?

Don't you mean Bloated Notes?
Mike C.
+2  A: 

Asinine management that value capital expenditures at 100x the cost of salary rate. For example:

  • Reject purchase of memory upgrades, that would increase build speed 200% or more.
  • Reject purchase of commercial software in favor of inferior "free" versions, or nothing at all.
  • Think that having Google is a replacement for purchasing any published material or paying to access subscription web sites.
  • Expectation to spend 3 or 4 man-hours for documenting and processing time to justify and reimburse a $20 purchase.
  • Killing team moral for week or longer by canceling team-building functions to save $200-$300.
Casey
+1  A: 

Management has "employee dress-up" days when any customer on any project is in the office. 9/10 times the customer does not stay long enough to see more than 3% of the work staff.

Casey
So just wearing different clothes makes your life miserable?
tuinstoel
The ironic thing is that the visitors don't want to see developers dressed like top developers, they want to see them dressed like junior managers. If I thought I was dealing with a software company where all the developers wore suits and ties because they wanted to, I'd find another company fast.
David Thornley
A: 

Moving code to a new project in SVN and having people come up to you every week asking why you did something because your names on every line of the "Blame"

burnt_hand
Hot tip -- do initial import as the administrator or nightly build account.
Joshua
Not likely I would get admin access, but I see the point.
burnt_hand
+4  A: 

Anyone who starts a conversation with "So how hard would it be to..."

Gerard
Being involved that early on is the part I love best about programming.
Peter J
Unfortunately, they are usually the people that sign your check.
Jeff O
+4  A: 
  1. Micromanagement
  2. Lack of a spec (a bulleted list isn't a spec)
  3. A manager that has never written a line of code (let alone even seen) in their life.
Tres
+1 for micromanagement
marcgg
+2  A: 

Godel's Incompleteness Theorem.

Hilbert's 10th Problem.

Chaitin's constant.

The Halting Problem.

Although one could also argue that they make a programmer's life fundamentally interesting as well.

MSN
A: 

Nazi DBAs who think the purpose of the application is to serve the database and not the other way around.

JohnFx
A: 

Working for Giant Services Companies in developing countries.

Jay
wth is the negative mark for?
Jay
+5  A: 

Idiotic Attitudes about Testing

Example 1: Development Schedules that assume testing should be put at the end, right after code complete, and go right up to the release date making no allowances for any bugs to be found.

Example 2: Assuming that testing is a rubber stamp instead of a QC process and then being upset about it when the testers find bugs.

Example 3: Assuming that hiring 2-3 testers will result in 100% bug free releases and then freaking out when a strange edge-case bug gets found in production.

JohnFx
A: 

The Database Administrator.

Max
A: 

Update your Tortoise to the last version because you read some interesting fix in the release notes. After that you spend days to undestand strange behaviour of your code. At the end you discover that the code commited with the updated Tortoise have some pieces of code commented on long line because the update introduce a new bug on carriage return characters.

ungarida
+4  A: 

The answer to any question being "Just get it done"!

Stimul8d
A boss that answers me that way will pay the price one way or another. I asked a question for a reason.
Joshua
A: 

Wordpad being the default text editor for half the code on a freshly installed windows machine.

Mike Trpcic
+7  A: 

An open plan layout in a warehouse-sized room with:
- a 40-foot ceiling
- 6 big screens displaying either boring static Word doc page or CNN/Fox News with no sound
- 4-foot high cube walls
- but the top 12 inches actually glass
- a call-support rep talking on the phone on the other side of the glass
- you can see the support-rep talking while facing your own monitor
- a 2nd-floor fish-bowl type meeting room extends into and overlooks the main floor
- fish-bowl has curtains which can be opened so the clients can be shown how hard the little ants (er, employees) are working
- nearest restaurant is 5 miles away (hello mr. microwave)

Kelly French
+9  A: 

Internet Explorer 6

Mathieu Pagé
+2 if it were possible!!
Moshe
+1  A: 

A manager / sponsor who thinks agile development simply means not writing documentation and then shows up once a fortnight to complain that things aren't going the way they want it and dumps a huge new set of 'verbal' requirements on you.

johnc
+3  A: 

Bug reports that don't give enough information (e.g. It doesn't work!)

Randell
A: 
  • Other programmers (and their code / ideas / conflicting interest).
  • Schedules (and managers warped ideas about what we can do with the time we are given).
  • Co-workers who think that diagramming in Visio is way more flexible that using a pan and paper.
Nippysaurus
+6  A: 

1) A boss/manager that runs the company with children's sports team manager attitude!

2) Being made redundant, again and in the midst of a recession in a small city where IT jobs are like hens teeth.

3) A manager who tries to tell you how to program when they have never written a line of code in their lives... or are talking from their experience of COBOL or basic.

4) A micro-manager

5) The "Seagull Manager" - a scavenger who takes all the credit for your hard earned work and hangs around you like a bad smell.

6) A manager who never smiles, is always negative and treats you like an slave.

Matt H
+4  A: 

Outsourcing... You work on a project...build it from scratch and then they outsource it

P.K
+2  A: 

No dual monitors....hands down my biggest productivity gain.

Josh
A: 

Programming in Windows.

Gandalf
Really, as opposed to what? I think you probably have a problem with a language or a framework (now if you said MFC on windows then I could understand).
arinte
A: 

Writing crystal reports against a third-party database with over 1000 tables. Actually, just reporting in general. CR amplifies the agony.

dotjoe
+2  A: 
  1. Closed source
  2. Lack of documentation
  3. Reverse engineering archaic legacy progs
  4. Emacs addiction
  5. Missing school days
  6. Loneliness!
ZeroCool
A: 

Indecisions..............

Alix Axel
+2  A: 

Other bad programmers that check in bad code or forget to check in new files that they reference in other files.

rideon88
A: 

Blocked ports. I hate having to ask the sysad to open ports that I need for testing my apps (e.g. smtp port)

Randell
What are things that make a sysads’s life miserable?Unblocked ports. I hate getting to ask from dev's to open ports that I need later to monitor and close when their testing is done (never get informed of that) ...
PeterMmm
@PeterMmm, it belongs to SF.
Randell
A: 

Sitting at work with other developers and not being utilized.

Having discussion with other developers and knowing that your opinion is not worth anything to them because their superior egos have already made a decision.

Knowing the answer to a problem but no one seems to listen. Its like the fed ex commercial where the staff is having a meeting and an employee give a great idea. The problem is the idea is not considered great unless the boss spits out the idea.

Chuckie
A: 

Crystal reports... Will say no more.

Paddy
You use .NET, correct?
Moshe
@Moshe - yes. I know there are other options, but this was foisted upon me.
Paddy
I'm Not anti-.NET, just asking.
Moshe
+2  A: 

Non-programming tasks and favors from non-programmers:

  1. Can you help me fix this?
  2. Why can't I get my <device, program, etc> at home to work?
  3. We need a quick little program to...
  4. etc
Steven
+2  A: 

1 - Working in a non-English environment.

You have to deal with code comments, documentation, reports, diagrams, emails, notices, discussions, presentation slides, etc in alien language which you have to translate to know what the hell is going on.

2 - Being idle. While waiting for your supervisor to approve something before you continue, or take a decision which only he is authorized to take.

Jahanzeb Farooq
+1  A: 

being at a job where you know more than most of your co-workers but technically still new to the field and desire to be mentored by someone who knows his sh*t

centr0
A: 

HR and product managers who buy Joel Spolsky books.

Azeem.Butt
+1  A: 
  • People who don't understand development trying to manage a development team.
  • External people who hold the dev team responsible for production deadlines whilst needlessly interfering in the dev team imposing massive constraints on how the work is to be done. ("We don't mind the pressure - but if you want it done let us decide how to do it...")
  • Non-technical recruitment people trying to recruit without understanding the first thing about what they're trying to hire.
cartoonfox
That's right, I agree with you.I mean, the manager of a development team SHOULD/MUST be a developer with several battles under his belt or at least have a mind brilliant enough to understand the whole process of making software.
pctroll
A: 

Offshore cubicles.

Azeem.Butt
+2  A: 

Not Invented Here NIH

Stuart
+1  A: 

having to get everything done by a certain date

Matt S.
+3  A: 

Like I'm sure others have said, loud working environment. I work in a cubicle and there are certain people right around me that are so disruptive that I have to wear headphones most of the time to drown them out.

I love it when the same people get angry because I do not hear them calling me over the cubicle walls or on the phone.

RTipton
+3  A: 

Not having active internet connection.

Ravi
I get depressed when I have no internet connection... +1 from me...yippee
tommieb75
+7  A: 

Surprised no one has mentioned these!

  1. Not getting paid fair compensation for my work.

  2. Getting a bid undercut by another developer who is less experienced, only to get that client later to fix all of their mistakes. Then to realize the whole project needs to be scrapped and rebuilt from scratch anyhow. (I feel for the client on this one.)

  3. Having to constantly switch from PHP to HTML to javascript to CSS to SQL to Actionscript syntax formats.

  4. Dealing with poorly organized files, code, images, CMS platforms, etc.. that contain over 5000 files, and are over 2GB+ that require zipping just to have a chance of FTPing in less than 24 hours. (which is why I hate many CMS platforms and 3rd party APIs)

  5. Trying to de-thread/re-index/fix-poorly-designed databases with monsterous slow nested UNION and JOIN statements. (normally without associative arrays either.)

  6. Having to upgrade my own code from an old language version to the newest just to get it to compile. (can we say missing or changed units without backward compatibility?)

  7. Constantly getting asked if I can develop on a proprietary developers platform that I don't have the $500+ dollars to purchase. (um.. Adobe Flash and iPhone XCode? plus im not a Mac guy.)

  8. Being forced to work on a Mac when I'm a windows guy. (no right click!!! ARRRRRGGGHHHH!!!)

  9. Trying to deal with antiquated .CGI units with closed source and poor documentation. (and worse the hosting company that promotes them.)

  10. Always having too many windows open and not being able to find the page I'm looking for without clicking on a few wrong ones. (there always seem to be 10 things I have going on.)

  11. Having to re-install all of my developer tools on a new clean machine. (seriously. this can take up to two weeks.)

Talvi Watia
8. - Mac now has right click. I wasn't a Mac guy either. I'm impressed with Apple's support. Numbers 1, 10 and 11 are right on target.
Moshe
+1  A: 

Stupid user communities, that have no inch of respect for other's opinions.

leppie
I disagree you stupid ****! (seriously, +1)
MPelletier
A: 

Which programmer?

"Life is a noun that requires a possessive epithet." V. Nabokov

Rob Kent
Maybe I don't understand SO or you downvoters don't understand my answer? Nabokov was pointing out that you cannot talk about life in general, only someone's life. Every programmer has a different experience, depending on their temperament, toolset, projects, life experiences. So to answer the original questionn would invite a million answers that have no specific use to anyone.
Rob Kent
+3  A: 
  1. Developers being at fault for incompetence of sales department

  2. I know you have to be ready for a change, but changing OS platform in the middle of a C++ project, is not change, it is a new software all together.

  3. People that think they can interrupt you every two seconds, because "all" you ever do is type on your computer

Vladimir Kocjancic
+1 for sales!!! That's why I tell them that they have to talk to me FIRST before they go tell the customer YES
0A0D
+1  A: 

Managers. The way they ...

  • think about ict and organisations;

  • try to influence you;

  • put pressure on someone;

  • prevent people from co-operation.

Gerard
A: 

Java

cartoonfox
+2  A: 

The boss thinking I don't have a personal life and that I should only leave when he thinks I should leave.

AntonioCS
A: 

Unfair assignment of blame...:

If you screw up meeting requirements, either because you're an imperfect human being, or the requirements weren't clear enough, you get your ass kicked.

When you meet the requirements, but management requested the wrong product, nothing happens.

Worked on too many hair brained products that some bigwig pulled the requirements out their ass for or there was no way of making money out of.

Phil
A: 

Having to deal with politics rather than reality. Cf. The Wire.

kronoz
A: 

A long streak of technological blocks, lots of useless meetings, bugs that can take a weeks or months to be fixed, having to waste time on things like eating, sleeping, showering...

Gubatron
+1  A: 

Organizations where non-technical have taken it upon themselves to make technical choices, e.g. you have to use closed-source product x. Why? Well because we spent money on it

And then you spend weeks in agony while you know things could have been so much better and easier, not only for yourself but also for every other stakeholder

Hans Westerbeek
A: 

Non-programming tasks that "default" to the programmer.

For example:

  • Technical service to customers
  • General technical service (my internet is down! No toner left!) for company and customers
  • Sales (filling out request for proposal requirement grids, answers to prospective inquisitive clients, etc)

It's a good thing to be involved in different areas of the business. It's quite another thing to have so many responsibilities that actual development work is blotted out.

MPelletier
Downvoters, care to explain?
MPelletier
A: 

Well written, exact, conflicting requirements from multiple sources because the managers didn't understand the ramifications of said requirements.

Joshua
Probably a dupe: http://stackoverflow.com/questions/1205191/what-are-things-that-make-a-programmers-life-miserable/1205208#1205208
Randell
A: 

Useless meetings.

fastcodejava
Probably a duplicate.
Randell
A: 

Having the server room move into your office.

mafutrct
A: 

Time-keeping/Time-tracking.

In particular, the applications that are meant to do the job. So non-user friendly. That's one scratch I'd like to itch... (once this current project is finished perhaps)

davewasthere
+2  A: 

A slow internet connection

jasonk
A: 

When working in embedded systems

  • Not having enough hardware built to test on so it becomes a shared resource
  • Not having the hardware tested enough to be reliable
Brian Carlton
Why the down vote?
Brian Carlton
+1  A: 

Any project where change requests come in faster than implementations go out - and this behavior is encouraged. For extra points, allow individuals to enter new CRs while the team is blocked waiting for clarification on the CRs they entered last week.

Backlogs kill.

The people generating backlogs should be retasked to help clear the backlog, instead of just making it worse.

Jason
A: 

Treating the decision-making process as a democracy.

Take a showing of hands. If the people who have to support the solution don't have their hands up, or the people who've done it before don't, you have a problem. If neither group has their hands up, run away. Very fast.

Jason
A: 

A hard deadline but with fluid requirements not yet defined.

ahplummer