123

I seem to be repeatedly stuck in a situation where release dates are set not based on anything technical, but because someone in Sales has committed to a customer by then. Based on discussions with friends in development at other companies, the same thing seems to happen.

"Here is the committed feature set and here is the committed release date", and it's difficult to argue because at this point there is money riding on it, and that trumps everything.

In general, is there a way to push back on this? If not for this release, what about in future? The problem I have is that the only way I see one way of doing so, and that's by doing the best I can, but release the software 'as is', so to speak.

I don't want to release bug-ridden software since it's my name attached, but doing 80 hour weeks for months at a time just vindicates the arbitrarily set release date.

edit: for the record, I'm not doing 80 hour weeks now, just that comes to mind as what would be required to cover the expected feature set by the release date.

gnat
  • 21,213
  • 29
  • 113
  • 291
Shawn D.
  • 1,361
  • 1
  • 12
  • 14
  • 49
    Why is your name attached to the product when you are not the one making the commitments? If the company wants to put out shoddy unfinished software, that is their right, but there is no reason for you to take personal responsibility for a decision that you didn't even make. –  Nov 01 '11 at 15:00
  • 2
    Maybe the company should employ more developers? :-) – Giorgio Nov 01 '11 at 15:58
  • 4
    @Giorgio haha good one :) – ell Nov 01 '11 at 16:25
  • 1
    @Giorgio: more chefs in the kitchen doesn't necessarily make dinner come quicker. It depends on the product... but either way, definitely not at the end of a release cycle. – Roy Tinker Nov 01 '11 at 17:18
  • @OrbWeaver, point taken, but ultimately unless I'm gone shortly after, when customer issues come in with the half-finished software that was released, I'm on the hook to fix it. – Shawn D. Nov 01 '11 at 17:18
  • 3
    @ShawnD. For the Horde! – Kalamane Nov 01 '11 at 17:25
  • @Roy Tinker: Not necessarily, but if there is more work to be done you need more people, as simple as that. We are just experiencing this in my project at the moment: we went from 3 to 7 developers because the deadline is fixed and we realized we need more man power to deliver on time. The developers are hired from other teams that are less loaded at the moment. This is what I would call good planning and good management. – Giorgio Nov 01 '11 at 17:56
  • 3
    @ell: Thanks. Well, I think it is bad management to try to squeeze more work out of developers than they can actually deliver. There is an inherent complexity in each project and if you allocate too little resources you end up with bad software or you do not deliver on time. It is the task of a good management to recognize this and plan consequently. Best thing is if the manager is also a good developer. – Giorgio Nov 01 '11 at 17:58
  • Is the company Adobe? – Chris S Nov 01 '11 at 21:52
  • @Giorgio: More people on a project means exponentially more communication that needs to happen between people, especially if you have the same people working on the same area of the project. Like I said, it depends on the project. Some projects have very distinct portions that can be worked on in isolation. – Roy Tinker Nov 01 '11 at 22:02
  • @ChrisS, No it's not Adobe, but from talking with a few of my friends it sounds like it could be . – Shawn D. Nov 02 '11 at 16:49
  • 1
    Don't believe it. There are companies that treat developers well. – PeterAllenWebb Nov 02 '11 at 18:32
  • 3
    Buy The Clean Coder. Read it (i devoured it in a weekend), and apply the ideas vigorously to your career. Your job is to give an honest "No" if the job can't be done. If you don't do it, you'll have no one to blame but yourself. I know that the risk of losing employment might weigh in on being brave enough to be honest. But the flip side is being forced into 80 hour weeks to meet a totally baseless committment. – Michael Brown Nov 03 '11 at 02:59

21 Answers21

147

Stop doing the 80 hour weeks. This is positive reinforcement. Because they are getting the product on time with expected costs, they are going to continue doing it, regardless of what it does to you.

If they cannot budget time properly, then that's management's fault. Not yours.

Let them miss a few deadlines.

Malfist
  • 3,671
  • 60
    +1 for standing up for yourself. Developers allowing themselves to be walked all over is exactly what allows such sweatshop cultures to persist. –  Nov 01 '11 at 15:04
  • Where does Shawn say he is doing overtime? – sbi Nov 01 '11 at 15:04
  • @sbi, in the Q: "... but doing 80 hour weeks for months at a time just vindicates the arbitrarily set release date" – Dan McGrath Nov 01 '11 at 15:07
  • @DanMcGrath: Ouch. I missed that. +1 from me for this answer, then. – sbi Nov 01 '11 at 15:08
  • 31
    I will add that while this works, you want to minimize the damage this can cause the client relation. As soon as you get an unreasonable deadline, you need to be upfront and let the salesperson know that it just isn't going to happen, so they can deal with the client accordingly. – GSto Nov 01 '11 at 15:17
  • 40
    Unfortunately, in many places this will make the one dev who only works "reasonable" hours appear to not be a "team player" who does not help meet goals. They are likely to be the first against the wall when team sizes are cut. Might as well just quite and look for work for a more reasonable employer. This "work-to-rule" tactic will only work if all of the developers are on board. – FrustratedWithFormsDesigner Nov 01 '11 at 15:30
  • 20
    @FrustratedWithFormsDesigner Who cares if they view you as not a team player? If they don't like you they can free you of that awful place and you can look for something else while you collect unemployment for awhile. Besides it is not like sales and management at that point are concerned for the good of the "team" by expecting mandatory overtime of them. It amazes me that developers with marketable and wanted skills subject themselves to this kind of managerial bullying. If you can be terminated or quit and have another job lined up in less than 3 months then YOU carry all the power. – maple_shaft Nov 01 '11 at 16:01
  • 2
    @FrustratedWithFormsDesigner: that is true, and you certainly need to be aware of the fact that you might be viewed unfavourably for refusing to submit. However, in the long run it is probably better to lose your job than die from a heart attack or throw yourself under a train because you can't take it any more. –  Nov 01 '11 at 16:12
  • @FrustratedWithFormsDesigner - That's so true. And probably a good thing. Would you really WANT to be a player on a team that operates like that? – Dan Ray Nov 01 '11 at 16:53
  • 2
    @maple_shaft: Good points except that it's not always possible to have another job lined up in less than 3 months. Sometimes the local economy stinks and travel to distant places where things are better is unfeasable (moving can be necessary but can also be expensive). Sometimes there's debt that needs to be paid. Sometimes you need to work with an unfavourable situation until you have another employment contract inked elsewhere. – FrustratedWithFormsDesigner Nov 01 '11 at 17:59
  • @DanRay: Yes, I'd rather want to be a member of a team that mostly did the hours written in their contract, and viewed anything above that as an exception. In fact, I have quickly left every company that lured me in believing they would operate that way, but then revealed their true face. – sbi Nov 01 '11 at 21:32
  • 6
    @FrustratedWithFormsDesigner: Having personally dealt with the high risk of failure of overcommitment I can recommend looking for a new job as soon as you know things start to get shaky. Because if you're marked as a bad team player, feel almost burnt out with all the overtime, chances are high you will be backstabbed by your so-called "team" and eventually fired even if you tried your hardest. Looking for a job as you still have one is a lot better situation for you than looking for a job while you're out of one who won't give you any good references. – Spoike Nov 01 '11 at 23:11
  • 1
    @OrbWeaver: that's what unions are for, i.e. avoiding sweatshops, but unfortunately there's no Coders Union that I know of ;-) – dodgy_coder Nov 02 '11 at 08:45
  • 3
    No job is ever worth working yourself to death over. Repeat that to yourself. If your employer doesn't agree, it's time to leave because you can be sure they won't work themselves to death for you. (If you're self-employed then remember you've got to be alive to enjoy the fruits of success.) – Donal Fellows Nov 02 '11 at 10:49
  • 1
    I did this and eventually it got me fired. I agree with you 100% but most places that employ developers see them just as a screwdriver, a tool in their hand that they'll replace whenever they need to. It's a real problem. – stef Nov 02 '11 at 12:33
  • Or ask for double the salary. – RyanTM Nov 02 '11 at 14:15
  • I don't think you should beat around the bush. Being forced into 80 hour weeks is not reasonable. If your team is truly working such hours, it IS taking a visible toll on them and their personal relationships, and I don't have to be there to know it. Insist on a retrospective meeting after a big push. Confront management with the external costs they are imposing on their team, and ask them what they are doing to ensure it does not happen again. If they don't have any answer, be prepared with your own. If it is at all practical, quit if they do not listen or do any better next time. – PeterAllenWebb Nov 02 '11 at 18:30
  • While I like this answer, I have to protest its passive-aggressiveness. Find the salesperson responsible and have it out with him. Keep it responsible, but make your point clear and unavoidably direct. Make sure he knows that the next time this happens the conversation will have an audience. – kojiro Nov 03 '11 at 13:38
  • Sometimes bad shit needs to happen before change is considered. So in that sense organizational dynamics are like a feedback loop from control theory. I also would add that this problem is an indication of a missing role in the development team and a weak process. Backing into dates without having a technical grasp on the project never works. What does work is allowing a lead to estimate a date based on a specific feature set that is frozen in the sense that any change after agreement means a non negotiable schedule change. I would push for better development leadership if I were you. – sbrenton Nov 05 '11 at 17:44
96

In general, is there a way to push back on this? If not for this release, what about in future?

Of course, there is: Let them fail badly with this approach. Nothing teaches as well as failing.

Make an estimation yourself before you start and show it to them. Then do your best, write good code, stop compensating for their stupidity with your free time, and when they complain afterwards, remind them of the time estimation you had shown them, based on engineering principles.

And you better start doing this with the current project.

If they keep blaming you for the problem, you'd better start hunting for a new job, since nothing will convince them that they are the problem.

As an afterthought, I think this question actually warrants a link to the famous EA story as featured in one of Joel's books: EA: The Human Story.

sbi
  • 9,992
  • 1
    Make sure you learn the difference between an estimation and a commitment: http://blog.mountaingoatsoftware.com/separate-estimating-from-committing It sounds like they don't care about either, but once they do knowing the difference is useful. – StuperUser Nov 01 '11 at 16:50
  • 26
    +1 for showing the estimation to them. Also, a point I'd like to piggy-back on this post: even in death-march company environments, providing work for free to customers (ie. all that unpaid overtime) is highly discouraged, because the company could have been making so much more money off the same work if they had been charging the customer for it. Pointing out that sales' overcommitment is losing the company money could make all the difference. –  Nov 01 '11 at 17:58
  • 5
    A project failing teaches management nothing in a culture like the one described. Since salesmen bring in the cash and developers are just a necessary expense, the developers will always be blamed for not working hard enough if the salesmen oversell. – Mark Booth Nov 01 '11 at 19:29
  • @MarkBooth: I was talking of all projects. And, yes, it does teach. BTDT. – sbi Nov 01 '11 at 21:30
  • Then again it's almost impossible to estimate accurately if you don't have all the specs, which is a situation just as common as sales determining deadlines. – stef Nov 02 '11 at 12:35
  • 2
    Yeah. So when sales comes to you without a spec, insist on one before you agree to estimate, or give them an appropriate estimate range based on the level of detail they give. This will usually be something like "between one and thirty weeks". – PeterAllenWebb Nov 02 '11 at 18:33
  • 2
    @Mark Booth: That's why you need to monetize the develpment costs. Sure, development is a necessary expense, but it's not the only one. And in general, management does understand that the job of Sales is to sell above cost; any idiot can sell below cost. – MSalters Nov 03 '11 at 12:40
  • 1
    @MSalters - I love the phrase any idiot can sell below cost - it's so true. So many times I've seen customers promised the earth, based on threadbare profit margins and non-existent contingencies, only to find a series of small problems push the project late, over-budget and into being unprofitable. – Mark Booth Nov 03 '11 at 13:23
  • in my experience with companies that have this problem, the failure of such projects where the estimates are set way too low because of pressure from marketing or (non-project) management is never blamed on the responsible parties. The developers are blamed for any failure, the marketing/management people are credited with any success. – jwenting Nov 04 '11 at 08:00
  • 1
    @jwenting: But if someone knowledgeable in a field lets parties not knowledgeable in this field talk him into making wrong estimation, based on arguments that have nothing to do with said field, isn't that indeed the fault of that someone? – sbi Nov 04 '11 at 08:42
  • 1
    sure. The estimates however are made by either sales or management and handed down to developers as a fait accomplit, they have no influence over them, yet are blamed for not delivering according to them. – jwenting Nov 04 '11 at 10:31
  • @jwenting: I already addressed this right at the beginning of my answer: "Make an ___estimation___ yourself before you start and ___show it___ to them." – sbi Nov 04 '11 at 10:35
  • @sbi just clarifying who makes such estimates. See my other responses as to how your estimates are often ignored completely, and you're later judged by their estimates. – jwenting Nov 04 '11 at 10:47
  • Start looking for another job now as well. It doesn't sound like a great place to work, and if you get offers, you will be in a much stronger position to educate them. – B Seven Feb 20 '12 at 18:17
52

This generally occurs because of a perverse incentive - the salespeople are being paid on commission, while the production staff is paid on salary. The salespeople have several levers to work with: features, cost, and delivery date. They have a strong disincentive to lower the cost, because this generally lowers their commission, so they tend to ratchet UP features and delivery date (in terms of being earlier). They will push those as high as they can in order to close the deal.

Try and see it from their point of view, just for a moment. They've got a family to feed, too - and if the difference between closing a sale I've been working on for months is just trimming off a few weeks of the schedule, then it's an incredible temptation, especially if I don't really understand what that means.

The temptation is to say "twas always thus, and always thus will be." But one place I worked did at least have a solution PROPOSED, if not implemented...one manager finally threw up his hands and said, "if the programmers' overtime is being used to close a sale, then they should receive a portion of the commission." It wasn't implemented, but it would have aligned everybody's incentives more closely...the programmers would have been thrilled to hear about a new feature that had to come out in no time, because they'd be anticipating the commission, and the salespeople would be LESS apt to create those circumstances, because they would be less likely to work to their advantage.

  • 46
    +1 if the programmers' overtime is being used to close a sale, then they should receive a portion of the commission. – Gilbert Le Blanc Nov 01 '11 at 16:11
  • 12
    This would encourage the developers to release untested crap. – quant_dev Nov 01 '11 at 16:48
  • 5
    I got bought lunch one time by a sales manager who got a multi-thousand-dollar commission on a project I was deep in a five week deathmarch to deliver. I can't say it made me feel much better about the situation. – Dan Ray Nov 01 '11 at 16:55
  • 8
    @quant_dev - every situation encourages developers to release untested crap - except testing. That's a separate question. – Chris B. Behrens Nov 01 '11 at 17:07
  • 1
    @ChrisB.Behrens Yes, but sharing the commission increase the incentive considerably. – quant_dev Nov 01 '11 at 17:08
  • 18
    The easier way to adjust the incentives is to subtract the cost of the overtime from the amount of the deal before paying the percentage commission. – robertc Nov 01 '11 at 18:09
  • 3
    Maybe it's because I'm still young and naive but I wouldn't be quite so quick to blame it on salesperson greed. If management doesn't care about programmers how much less do you think they care about salespeople? Salespeople don't even really have the in-depth technical knowledge of the product that costs thousands of dollars to replace in a new programmer hire- they're replaceable. The boss could demand a sale a week or they're fired, and they can't close a deal by working extra hours. If a salesperson throws themselves under the bus for the sake of the developers, another will take his place – Rag Nov 02 '11 at 02:35
  • 2
    @robertc Unfortunately, the pecuniary cost of overtime from salaried employees (at least in the United States) is usually zero. The very real but non-pecuniary costs--ruined marriages, children whose parents are absent, burnout, turnover--are difficult to put on an accounting ledger, so they are often ignored. Vote with your feet. There ARE places that don't treat their developers like this. – PeterAllenWebb Nov 02 '11 at 18:20
  • @PeterAllenWebb - well said. I think the key is for people to learn that death marches are simply bad for business in the intermediate run. Months, not years. If a planner is not accounting for the cost of turnover in a development team, he's not planning. – Chris B. Behrens Nov 02 '11 at 21:19
  • @BrianGordon in organisations like this, sales are ALL that counts. They're counted as where the income is created, developers and helpdesk are only spending money... Worst case scenario I've encountered in such a company we got told that we were NOT a "product provider" but a "service provider", despite our main source of income being the sale of 2 commercial software products were created ourselves, and everything else being training and hardware (maintenance, servicing) related to those 2 products. – jwenting Nov 04 '11 at 08:04
26

The development team must be consulted on these decisions or you will never get out of that cycle. If you aren't managing the team, then one of your line managers needs to advocate for the development team. If they are part of the problem, then you may want to consider other employment options.

Generally speaking, Sales shouldn't be committing to anything without the Product Management's acceptance, who should obviously be consulting with the development team for timelines. There's really no good excuse for bypassing this in a big or small company because ultimately the Sales team will take some heat for under-delivering (whether in quality or scope).

RichardM
  • 584
  • 3
  • 9
  • 2
    +1 for an accurate and high level summation. Product management should be involved, but over committing and looking bad later may be necessary for the continued survival of the company. – maple_shaft Nov 01 '11 at 15:05
  • It's good to say things like this but it's not actual advice that could help resolve the OP's current problem. What steps could they take to get to this better position? – FrustratedWithFormsDesigner Nov 01 '11 at 18:41
  • @FrustratedWithFormsDesigner Aside from talking with management about the need for better Product Management input in the sales discussions, well ... nothing can be done as a developer. These kinds of companies are set in their ways and anything short of a management shake up will change nothing. – maple_shaft Nov 01 '11 at 19:36
  • 1
    Unfortunately in a lot of companies, the opinion of the sales "gurus/rockstars" often has more weight than that of product management, who sometimes are just not strong enough in putting forward their case to upper management. I've found that many sales people believe that whatever time estimate the developers put forward, it will be too pessimistic, and can at least be halved easily. – dodgy_coder Nov 02 '11 at 08:38
  • Sales people receive far more prestige than developers as they are far more closely tied to the incoming stream of cheques from the clients. This is true even at Software companies where developers are arguably very important, but not as important as the sales people who "bring home the bacon". This is, somewhat unfortunately, how virtually all CEO's/MD's etc. will view it. – CraigTP Nov 02 '11 at 12:10
  • So developers must seize the means of production to recapture the surplus value of their labor? :P – PeterAllenWebb Nov 02 '11 at 18:24
  • case in point: I've had a lead give off an estimate of 500 hours to sales, countersigned by the CEO as reasonable. Sales sold the project for 200 hours. We implemented it in 400 hours (so below our estimate). Sales got a commendation for closing the deal, we developers got blamed for not meeting the deadline (by the CEO, when we'd delivered below the estimate he'd originally approved in person). – jwenting Nov 04 '11 at 08:07
21

This is almost a universal thing in smaller companies as they have a greater need to close a deal. Until I was brought into sales meetings at my company I was bitter about this but I can at least understand how and why it happens a little more.

Clients want it fast and many will play hard to get. This encourages sales to bend on time commitments just to get something signed. A signed contract is gold because you can acquire capital or credit using one. Sometimes it is better to have a tight deadline than nothing to work on at all.

Other times if it is a hot market and there are a lot of competitors then the company has an impending need to get a product out the door FASTER than everybody else. A bigger company or one with more capital can always hire more resources, a smaller one can't.

Where it is scummy is when the deadlines are truly artificial and it is pushed by sales and management to secure large bonuses for themselves.

Don't make a habit of working more than 45 hours a week, it is bad for your health and that comes first.

maple_shaft
  • 26,511
  • 11
  • 57
  • 132
  • 2
    I agree that it is more of a struggle for smaller companies to put bread on the table. Still it is wrong (scummy) for sales to get commissions for the extra effort of developers. Management needs to recognize then rectify this situation or they will always have a high developer turnover. – semaj Nov 01 '11 at 15:36
  • 16
  • 1 "Don't make a habit of working more than 45 hours a week, it is bad for your health and that comes first"
  • – DevSolo Nov 01 '11 at 16:05
  • 2
    What's with 45hrs? Didn't you sing a 40hrs contract?? – sbi Nov 01 '11 at 17:30
  • @sbi I can't find the link to it anymore but it was a study that found a dramatic increase in stress related conditions and dramatic decrease in productivity rates after 45 hrs/wk. I was referring to the number in the study. – maple_shaft Nov 01 '11 at 17:48
  • @maple_shaft: Ah, I see. Well, I think the way you say this is misleading though. (And I'm sure you didn't sing your contract. What a wonderful Freudian slip!) – sbi Nov 01 '11 at 17:58
  • 14
    @sbi: You might be surprised. Where I work, we were indeed required to sing the contract. In fact, it took about 40hrs to sing the whole thing. (there was a lot of fine print.) The was peculiarly bad, because I have a poor singing voice. – Matthew Scouten Nov 01 '11 at 19:21
  • @Matthew: TBH, I'm at a loss as to what to reply to that. – sbi Nov 01 '11 at 21:29
  • 3
    @MatthewScouten how many languages do you speak? – jim Nov 01 '11 at 22:58
  • 1
    @Matthew: Provided the idiot who came up with that idea had to sit through the performance, your singing voice would have been more than adequate punishment. :-) – Donal Fellows Nov 02 '11 at 10:53
  • @jim: Just one. why? – Matthew Scouten Nov 02 '11 at 14:28
  • 2
    @MatthewScouten sbi speaks 3, I know you weren't trying to be insensitive, but you should try to take a little bit more care. – jim Nov 02 '11 at 15:47
  • 1
    It's true what you say about market forces, but it's not like any given company has the right to exist just on principle. If they cannot execute their business plan in a reasonable manner, then maybe it is just a bad plan. I tend to agree with the 45 hour limit. I have a great employer, and honestly do not mind working more than that on occasion, when I know it is a big help, but my understanding would wear thin after several weeks. And after several months, the problems would become theirs and not mine, because I would be gone. – PeterAllenWebb Nov 02 '11 at 19:04
  • @PeterAllenWebb If the only software companies were ones with a good idea and a good plan then there would certainly be far fewer of us employed. A business has a right to exist if people keep giving it money, they keep the creditors at bay, and they aren't breaking any laws. – maple_shaft Nov 02 '11 at 19:18
  • @sbl yes, your contract states 40 hours, but doing a bit more (say an hour a day) shows your willingness to go above and beyond your commitment, which is good for your review and career prospects. Doing much more than that (consistently) is bad for your health and just means they'll pile more and more work on you, making the problem even worse. – jwenting Nov 04 '11 at 08:09
  • 2
    @jim most mistypes are not funny, but the answer to this one was. I don't think there is anybody who thinks that "sing" was not a mistype. –  Feb 20 '12 at 17:55