Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I work for a web development firm and currently have 9 projects in the programming phase waiting for me to do them, and deadlines are flying past quickly without the projects getting done in time.

We have two designers who are underworked and just me as a developer. My boss keeps piling on the work and I don't know what to do, and they aren't happy I'm missing deadlines.

Any ideas that don't involve me working a lot of unpaid overtime?

share|improve this question
3  
Does your boss ask you for time estimates before planning and assigning deadlines. If not, they are arbitrary, and you should let your boss know. Btw, I need a fully functional GMail clone by tomorrow. –  dbkk Nov 3 '10 at 15:24
3  
@dbkk I give reasonable hour estimates but then I am assigned that work right away even though I already have work and am expected to get it done in the time I supplied. @NimChimpsky I only go on SE at home and it's quite educational –  Brandon Wamboldt Nov 4 '10 at 0:56
2  
@Rogue - you go home! For more than just showering and changing?!? You EVIL slacker. Don't you understand? - you're STEALING from the shareholders by sleeping etc. –  Steve314 Oct 15 '11 at 4:01
add comment

15 Answers

up vote 24 down vote accepted

Replace one designer by a developer.

Since you can't do it, you must adopt a strategy where your boss will figure it out himself.

Since I don't know him/her here is a simple strategy you must adapt to your case.

  1. I would suggest to do only 1 overtime hour for the next two weeks. Do your best, show you really want that company to succeed.

  2. After that period, tell you can't do it anymore (it must be true), you are exhausted. If he/she insists, tell him/her you will think about it (continue overtime).

  3. Come back in three days, announce you quit. You can't kill your health for work.

You will create a tsunami there, since apparantly YOU are the key employee in the company. This will lead to discussion. Just mention the fact he must provide more work to the designers.

He/she will figure it out him/herself: replace one designer by a developer or hire 2 more developers.

share|improve this answer
6  
Risky. I like it. –  Neil Nov 3 '10 at 11:33
add comment

I'd encourage you to take a step back and take an impartial look at the situation. You seem very frustrated and that'll hinder your ability to see the best way forwards until you can manage to put it aside.

It's very common for bosses to push more work than can be done in a work week onto 1 person. I recommend you establish a clear boundary along the lines of "Hey boss, my weekly workload is currently much higher than can be achieved in a work week. If we continue as we are now, a good chunk of this isn't going to get done. Which work items would you like me to prioriritize, and which ones are being shelved?'.

You have the time estimates you've provided to back your case up. Just list out all of your projects, put the total time estimate next to each one, then put the deadline next to that. Block it out into work-weeks, and see which projects you could meet by their deadlines, and which ones are beyond saving.

EMAIL this to your boss. Remain impartial. Don't threaten. Draw everything to the 'what's best for the business and clients' perspective.

As others have said, a few hours of overtime in a work week is reasonable if you're after a promotion or the company is in a crunch period. This goes hand-in-hand with being allowed to head home a bit early if you're in a quiet period. Tit-for-tat.

Determine how much overtime you would actually be willing to work if you were being paid for it (maybe 5 hours a week? Maybe 10?). If the subject of overtime is discussed, you can give this as a concession to your boss, while still retaining a limit that you're comfortable with. You should absolutely be paid for this, but in return it's something you absolutely have to agree ahead of time with your manager. In writing.

If all of this genuinely does fall on deaf ears and everything stays screwed after a few weeks, then you have your correspondance in email with a clear trail showing that you tried to resolve the situation and that your boss didn't respond. If you reach this point you can leave your position without looking immature or unprofessional. If you leave before going through the steps above, it would look like an inability on your part to properly handle the situation, than a reflection on your boss.

tl;dr take a step back and deal with the whole thing impartially.

share|improve this answer
    
+1 Very difficult but important to get ahold of one's emotions. –  brian_d Nov 4 '10 at 16:04
add comment

take your list of 9 projects, break down the work into task-sized bites, estimate how long each bite will take, and add them up. Then present this to your boss as a question of priorities and request for help [no whining]. For example,

Hey boss, I was trying to figure out how to get all of my assignments done on time and the math just isn't working out. Can you help me? Which of these projects is the top priority? How much flexibility is there in these deadlines? If I focus only on project X I might can get it done by the deadline, but not the other 8. I'm already working N hours of overtime, what can we do here?

It's not just your problem, it's his/her problem, too. Which makes it a company problem.

Caveat: the boss's response will tell you everything you need to know about how serious the deadlines are, and how much they value/respect you. Be prepared.

share|improve this answer
    
+1 for 'no whining'. –  JBRWilkinson Nov 4 '10 at 11:25
add comment

deadlines are flying past quickly without the projects getting done in time.

I think a big issue is who exactly is setting these unrealistic deadlines? Is it your boss, is it an analyst, project managers, yourself? If it is you, give yourself much looser time restraints. If it is not, ask the offender what exactly they are pulling these dates from - how are they calculating tasks getting done? Do they realize that you are one and not nine people?

I strongly discourage unpaid overtime of more than one or two hours a week. It just encourages your boss to mistreat you, poor planning, and can lead to burnout (not that paid overtime doesn't). If there is too much work for one person, they should hire a second developer.

In a tactful manner, you need to flex your muscle back toward your boss some. You are the only developer, which should carry some weight. If you get sick because of stress or other reasons, then all of the deadlines will be missed.

Finally, if you don't see the situation improving, start looking for a new job - the sooner the better.

share|improve this answer
    
Analyst and Project Managers? Right, we don't have any of those. I am managing my own projects in the way that I deal with clients. My boss sets timelines by taking the hour quote I give them (Say 30 hours), dividing by 8 (4 days) and then saying the work will be done 4 days after contract is signed, regardless of other projects. –  Brandon Wamboldt Nov 4 '10 at 1:03
    
My boss sets timelines by taking the hour quote I give them (Say 30 hours)...(4 days)...regardless of other projects It sounds to me like your boss is at fault in two ways here. First, every company I have ever worked for has taken a programmers estimate and multiplied it by some sort of padding factor. This takes into account over optimism, unforseeable problems, etc. ex) 30hr quote times a padding factor of 2x to 3x = 60 to 90 hours. Second, your boss's calculation only works for the first project. After that he needs to learn basic addition, namely that 4+4=8 days not 4. Best of luck. –  brian_d Nov 4 '10 at 3:56
    
Mention these things to him. If he does not pad the estimates, do so yourself. If you think something will take 30hrs but have other projects on the go, say "it will take atleast 60hrs if I had no other work, but it will probably take a month with my current workload". –  brian_d Nov 4 '10 at 4:02
2  
Your boss is a fucking idiot. –  Ozz Feb 22 '11 at 9:25
add comment

Perhaps a more subtle way to remind people how important you are is to wear a suit and go on a hush-hush two hour lunch one day. Bonus points for coming back with a beaming grin looking like you got the job at the fake interview.

Anyhow, I've been stuck in these sorts of roles from time to time. It can suck, but it can make you a very, very good developer if you look at it as a positive challenge. Some things to do:

  • Be very good at managing expectations and working with the bosses on triagiging/staging things so everything gets out on time enough.
  • Develop a good stack of tools. Bug trackers are key here -- they really are the only way to keep your head on straight.
  • Think in terms of triage -- what do I need to get this stood up that isn't going to mess me up 2 weeks from now when I have to revisit it?

On the code level

  • Get very good at presaging and precluding bugs -- stuff like checking for null up front on a tactical level. Find invalid states and fail hard, fast and loud.
  • Look at the projects -- how much of the codebase is common and can be built to cut both ways?
share|improve this answer
add comment

Read the other answers, there is a lot of good advice there.

Next, decide what you are going to do.

Then invite your boss to lunch and talk about it over lunch. You'd be surprised how much easier it is to discuss anything over a meal.

share|improve this answer
add comment

Since it's web development, are the designers also creating the html and css? If not, you could ask them to do it.

share|improve this answer
    
They are creating the HTML and CSS luckily enough, saves me a lot of time. A lot of time is spend creating custom modules however. I save myself a lot of time my wrapping commonly used components up into general modules but I can only do so much. –  Brandon Wamboldt Nov 4 '10 at 1:00
add comment

Change the job.

Why should some undereducated m0ron with some BS (that's not B.Sc.) degree in business pick up fruits of your work and look good to the upper mgmt., all while you're busting your chops and hurting private life?

It ain't worth it!

share|improve this answer
    
Didn't know not taking a science major made me a moron. –  Wyatt Barnett Nov 3 '10 at 14:18
2  
What the hell are you talking about ? Make sure you read and comprehend the question and the answer first. –  Jas Nov 3 '10 at 14:43
2  
@Wyatt: The grammar here is correct. The that in "... BS (that's not B.Sc)..." refers to just BS and not BS degree so the text in the parentheses clarifies that BS does not mean bachelor of science. Had the clarification been after degree you would have every right to take offense. –  Austin Salonen Nov 3 '10 at 18:41
    
@Austin - thanks. It's good to know there's still a few people left who can read more than one line sentences. –  Jas Nov 3 '10 at 19:42
1  
@JBR - no, I'm saying, if the employer is treating you like sh.., then yes, it's time to quit. After all, employers are all too happy to downsize to maximize profits, so why should the employees treat them any differently? –  Jas Nov 4 '10 at 11:33
show 1 more comment

STOP working unpaid overtime immediately!!!

Unless the company requires you to work overtime and is willing to invest in the project you are only hurting yourself. I guarentee if you continue to let yourself be used like this you will end up burning out. You will not be useful to anyone.

In the meantime I bet you are developing a strong resentment for the programming industry. I suggest you confront your boss and state your concerns. If your boss brushes you off it is time to start looking for another job. You sound like a hard worker with a lot of talent. I am sure another company would be glad to have you. If your boss does not care. I would continue to work the minimum hours (no overtime) and look for another job. Find a company that recognizes its employees as people not just drones.

Some strong warning signs can be found on many Mental Health or Self Help Sites.

If you notice any of these symptoms its important that you start seeking another job ASAP.

share|improve this answer
6  
Good advice, I've decided to leave. I REALLY do not mind working over time, and I've been working over time (45-50 hours a week instead of 37.5) since I've started because I enjoy my work. Now my boss is disrespectful enough to DEMAND I work unpaid overtime! No more I say, no more! I'm handing in my notice tomorrow. –  Brandon Wamboldt Nov 4 '10 at 0:59
    
@Rogue Coder: I had a similar experience. After I quit that job I felt like I never wanted to program again. It was ironic because I use to spend a lot of my personal time researching and writing code for fun. It has taken me a while to adjust to my new job. Everyone at my new job is great but I had built up so much anger and resentment that it has taken me a while to build up trust again. Quiting now will save you a lot anguish later. –  snmcdonald Nov 4 '10 at 20:22
    
I'd also like to add. Your boss will likely find another replacement in short time. That being said, he will likely burn out the next employee or have a seasoned programmer that knows his limits and will soon regret that he gave up such a good programmer. You are doing the right thing, just remember to be positive while searching for your next job. You know your limits now and you will be more willing to bring up these issues during your interview. –  snmcdonald Nov 4 '10 at 20:31
add comment

There's not that many options I'm afraid - in these situations I've always found that the best thing to do is be frank with them. The cheapest short-term solution may be to see if the designers can be retrained and take on some of the more menial development tasks.

Long term, think about hiring two more developers.

The only other option I can think of (that doesn't involve you basically living there or leaving the company) is to give the boss the choice - repeated missed deadlines or start dropping / turning down projects.

He may ignore you the first time or even the second, but when your predictions of missed deadlines turn into fact, they should start to listen.

share|improve this answer
add comment

Unfortunately you see this time and time again. The effort of programmers is measured in man-months, which is to say, if it takes one man one month to perform one task, then logically it'll take two men a half a month to perform that same task. It has been proven extensively that this model is extremely inaccurate when you apply it to software development.

The project managers are only encouraged by their efforts to decrease the deadlines since you work harder to achieve the goal, however they're shooting themselves in the foot. A) Their exhausting their only resource and B) their only increasing the possibility for error.

Just work hard and make it perfectly clear to everyone involved that this estimate is impossible to meet. Don't sabotage the project but don't work at night either. Let the results show themselves. Rather than the blame being placed on you, it will be on the one who you clearly announced had made an error in estimates. Be aware that it might create some tension, but if your project manager isn't stupid, he'll eventually get the idea that deadlines are unrealistic. If in addition to saying that the current estimate is wrong, you also provide your own estimate, people will learn to listen to your estimate, even if your project manager doesn't catch on.

share|improve this answer
add comment

There is nothing wrong with having more work on than you can do as long as you are taking enough money for the work that you can hire in some freelancers to cover most of the projects. There are good people around pretty much wherever you are ( and with the web it doesn't really matter where they are anyway ) who will happily work well on a project by project basis, saving your time for the projects that really matter to you. I used to do freelance work myself and I know a few people who do. If you can find some reliable freelancers ( and most people who have been doing that work for a few years will be fairly reliable if they are still in work ) and keep them in your phone book you can have a really useful flexible resource for the times when the weight of projects is too great.

If you can't afford to do that, you're undercharging. If charging the right amount brings in less work, it shouldn't matter as each job brings in more cash.

share|improve this answer
    
Freelancer was going to be my answer as well. I think this will also convince his manager that there is enough work for more developers anyway and so he'll think of hiring another full-time. –  Jeremy Nov 3 '10 at 14:27
add comment

Communicate these issues with your manager. Unfortunately, just saying "I'm overworked and I need a coworker" is unlikely to cut it, you will have to make them believe that hiring or training another developer was their idea.

Maintain a to-do list in a spreadsheet, complete with time estimates and deadlines. Whenever the limited number of days in a week makes it physically impossible to meet a set of deadlines, ask your manager to prioritize your to-do entries. As another poster said, better to put a couple of second-tier customers on the back burner than to seemingly achieve nothing but burning yourself out.

If your manager still doesn't get the message after a couple of weeks, bring out the clue stick ("Boss, we need to talk. There's simply too much work for just one man here."). If that fails too, I'm afraid the next escalation step is to look for another job. Don't let them burn you out, it's simply not worth the money.

share|improve this answer
add comment

Learn to say "No".

share|improve this answer
1  
Easily the most succinctly correct answer posted. +1 –  EricBoersma Nov 3 '10 at 12:48
6  
And yet, not a useful answer. How does one learn to say "no"? How does one do it in a way that is meaningful and respected? If (when?) it is ignored, how does one make it clear they mean it? And most importantly when is it wrong to say "no", but to instead say something more constructive. (I've read an article about that before, but can't remember where.) –  Peter Boughton Nov 4 '10 at 0:37
5  
Me: "No", Boss: "You're fired". Peter was right, need more info than "Learn to say No" –  Brandon Wamboldt Nov 4 '10 at 0:57
    
@PeterBoughton and @RogueCoder - can you honestly not think this through for yourselves? If the answer was like "Learn Python", would you also ask "how" ? –  JBRWilkinson Nov 4 '10 at 11:21
1  
JBR, if the answer was literally "Learn Python", I'd downvote too - that's not a helpful answer (to any question) on a site like this. The whole point of a Q&A website (particularly Prog.SE) is for questions to be answered in full, not just (potentially damaging) blunt answers that don't even attempt to go into details. –  Peter Boughton Nov 4 '10 at 11:29
show 2 more comments

Rather than try and meet all the deadlines and fail I'd concentrate on trying to finish a single project, the alternative is nothing gets finished.

Talk to your boss and tell him you can't do it all alone but make a point of saying what you can do, hopefully they will see the light and get some help in.

share|improve this answer
1  
Of course he may have one of those "prioritize everything" bosses. –  Steve314 Oct 15 '11 at 4:55
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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