Ask HN: How does your company handle late running projects?
Currently in a situation where our company is asking us to work weekends and extra hours because of a poorly managed project. There were too many meetings and processes during the early months of the project and now we are way behind, no longer have any of those time wasting meetings as we are now scrambling to deliver on time. It’s created a stressful environment where I am now at a point of looking for a new job.
I really believe that companies should use better strategies then putting more pressure on developers in these situations.
178 comments
[ 4.6 ms ] story [ 237 ms ] threadFind a new job and move on, take the good devs with you so you don't lose the synergy you built together. Tell them exactly why you're all leaving, perhaps next time they won't have so many damn meetings.
Most importantly - under no circumstances agree to work over 8 hours/day or weekends without them paying you double your usual rate. They must learn that shitty management has its price.
From many years in film and game development where crunch times were long and brutal, I totally understand (first hand, from experience) how bad this can get. I sympathize with the frustration.
However, be very very careful with these two bits of advice. The first one (taking people with you) is sometimes illegal, and even where it’s not, it will not be taken lightly, it could lead to legal and harsh retaliatory consequences that will not be pleasant.
The second one is also dangerous. Things you say when you leave can follow you out the door to your next job. You probably do not want your reference checks, or just people who know each other, to be spreading rumors that you’re combative and troubled regardless of the fact that poor management is at fault.
The better advice IMO is to find the better job and move on quietly. Trying to teach the company a lesson is very unlikely to work.
But sure, being quiet about it is an option too - choose based on the situation. And indeed, err on the side of safety.
In most of the world (and where I live) it isn't, on the contrary having anti-poaching policies is illegal and resulted in a huge anti-competitive/wage-supression lawsuit:
https://knowledge.wharton.upenn.edu/article/silicon-valleys-...
https://www.classaction.org/blog/silicon-valley-antipoaching...
What's even more egregious is that a group of people leaving to start something better together is part of how silicon valley got started:
https://www.wikiwand.com/en/Traitorous_eight
Do keep in mind that this case (companies agreeing they won’t hire from each other) is a bit different from an angry employee leaving and soliciting some friends to go with him to a new company. Like I said, it might be perfectly legal, and yet still cause you serious trouble if you do it. Some people have ended up a lot more frustrated after leaving because of things they did on the way out. It can work out well if you’re really in a position to start your own company and fight like the Traitorous Eight, but for most devs who just want a job, making huge waves on exit is pretty dangerous. Don’t take my word for it though.
> but for most devs who just want a job, making huge waves on exit is pretty dangerous
Yeah, it is easier (both in effort and in future prospects) to keep a low profile. Though I was focusing on legality/acceptability of poaching/leaving as a group.
At least in my experience people agree to that, and it's usually when exiting a company, not when joining. As in "you agree not to initiate poaching up until 12 months after leaving the company".
Where I live that can be legal with the following caveat (same for non-compete):
- They have to pay you (a consideration) when signing such agreement
- It must be for a definite period of time. (Unsure about how much time is legal though)
- The only penalty for breach would be to return the consideration.
Where I live most non-competes/non-poaching agreements would be unenforceable since they don't meet the previous criteria. (Unenforceable clauses are normally refereed to as illegal though)
But sure, be careful people.
As an East Texas proverb states, “Don't try to teach a pig to sing, it will irritate the pig and frustrate you.”
Does anyone even check references anymore in tech? My last two jobs haven't. The most current one didn't even ask for any. I figured that they realized that candidates won't list someone who will provide a bad reference, so it's a waste of time.
There are also informal “reference checks” though, where people who know each other talk about you, and even these are just one of many ways that your reputation can follow you. Leaving behind something very noteworthy like telling your bosses off and taking other employees with you is a good way to have people sharing stories about you.
Yes. Don't be me. I pushed myself too hard and got shingles* in my mid 30s, and activated my celiac disease (I've always had the celiac gene, but I find it quite the coincident that symptoms first showed up during this time) all within a 2 month timespan. A very stressful time, and it feels like those 2 months ruined my life, and it all happened so fast. Beware.
* Shingles was weird. Started with a weird feeling in deep deep tissue, then later a surface level rash with itchiness and numbness that comes and goes. There was one evening where the rash had flashes of extreme pain, just two or three times, and I came to realize why people with severe cases describe it as the most painful thing they've experienced. Fortunately, my case was mild and cleared on its own without much pain.
https://www.reddit.com/r/HellsItch/
Once the project is delivered, make sure you all sit down and do a retrospective on what went wrong, decide what you’ll change next time, and actually make those changes.
If none of this seems feasible in your organisation any time soon, leave. Don’t waste your time with people who aren’t taking your work seriously.
There are great managers out there, who will take your job seriously, and who can amplify the value you create together, and there are “managers” who know only the whip. If you only know the latter, keep looking because you deserve better.
I used to lean that way, but these days I disagree. Sometimes it's worth it to bolt as fast as you can and don't look back to meet a deadline. It's the difference between a $200m raise with a bunch of untested API endpoints and a $10m raise with them.
I'm speaking as the guy that ended up writing most of those missing tests. You don't have a lead for long in some of these spaces and sometimes "strike hard and fast" beats "death in the tarpit of tech debt" in the medium run.
BUT.
YOU NEED TO PAY THAT TECH DEBT OFF AND MOST PEOPLE DON'T THEN THE BUSINESS FAILS ANYWAY.
Sorry for yelling, but that last part is easy to forget.
I'm tired of companies with API endpoints that leak data like a sieve. This is why companies need some skin in the privacy game.
Purposefully neglecting the safety of user data for "speed" like this should have your company taken away from you. Why can't adults stop behaving like toddlers?
It certainly seems like a very successful strategy.
> I'm tired of companies with API endpoints that leak data like a sieve. This is why companies need some skin in the privacy game.
There is a world of difference between “untested” and “insecure” API endpoints. What seems to have been cut in the example isn’t a permissions model, but some form of automated integration testing.
I’ve seen horribly insecure APIs with 100% code coverage, and I’ve personally burned myself on untested API endpoints where the privacy implementation was _too_ restrictive for what my customers were trying to do.
Tell your clients that you apply best (/better) practice.
For this kind of kill point however, you better make sure not just your own endpoints have cleanly passed scrutiny, but your entire modeling and process around them doesn’t produce insecure endpoints. Otherwise it is best not to let your sales team use such a kill point.
Real devs look for a good balance, and real management understands how to strike that balance in terms of priorities.
Lots of teams build code bases with the idea they’ll rewrite and polish it later. This almost always, when it does happen which isn’t a lot over the short term, ends with having to work around the data model that our production data is dependent on and our customers.
Yes you can go in and translate old data models to new ones. You can add a transformer if that doesn’t work to set/get data. Yes you can redesign or you set of view components to account for a nicer frontend layout or data model. These are work around a to tech debt not a proper implementation.
But we could also be honest and admit that >75% of code we “write now and redo later” becomes business critical production code and never gets redone.
I've worked for too many managers where either everything, or too many things were urgent too frequently .. without any urgency gradient to differentiate.
Where I work, we affectionately refer to this as “the dumpster fire” of priorities. I’m lucky that we also work together to both recognize and rectify the dumpster fire blazing out of control.
The most offensive (to me) was a deadline that government regulations said was 3 years away (EFast2! Due 2009!). The mismanagers involved would not let us start working on meeting those requirements until less than 1 year remained. The product involved went from having 60% market share to under 25%. If they had not been purchased by a large conglomerate, they would have gone out of business from this. All the devs quit. The execs who created the crisis were fired. Some devs were rehired, about half would never go back no matter how much they were paid.
Which isn't really a problem in and of itself - but when that's used to justify crunch time, it can lead to taking shortcuts and making sacrifices with real costs that were wholly unnecessary, and it's a huge morale hit to be sacrificing your free time to work for essentially no reason.
IMO, this is the only correct answer. Unless you're in a "lose the company" situation, burning out the developers will only make things worse.
Second make sure that list of business requirements is actually a list of business requirements. Often I see clients coming with lists of missing functionalities (e.g. a list with the desired functional design = waterfall). It's nice that clients come up with their suggestions on how things could be implemented. But these should not be set in stone and always come accompanied with the actual business requirements. If the business requirements are unknown the team will be unable to know if certain things might be covered in other ways. Or come up with alternative/reduced solutions to get them covered more quickly.
If you want to deliver quality stuff, you have to iterate fast a ask for feedback.
They screwed up be ause they spent too much time on the initial phase. During that time they should have already prepared few PoCs that could transform into MVP by now.
I usually try to get the execs (sponsor, exec committee etc) to understand the difference between a hard and soft deadline. Hard being “it must be actioned” by a date such as a regulatory change, a construction project etc, and a soft deadline being “we want to do x by y” where the impact of delays is less.. perhaps worst case some revenue isn’t realised.
Perhaps trying to help solve the current project management approach issues would help you improve the workplace without having to leave (and would help all of your colleagues too it seems)
Was there some kind of thought-up end date? So what, it's running late.
Otherwise a common approach is to cut scope, deliver fewer features than initially planned.
If somebody asks you to work overtime, ask them how you'll be compensated. Factor 1.5 pay for overtime? An extra week of payed vacation? Get that in writing! If the expectation is to do it just to keep your job or "for the company", I'd say start looking for another job.
And no matter what, don't risk burnout. No amount of pay is worth that. If it's too much, either ignore the pressure, or if you cannot, quit immediately.
Those meetings and processes in the early months of the project? They should have informed both you (developers) and your management about the scope of the project, and how far along you are and how fast you are going.
Are you in a management position? If not, there’s probably not much you can do at this point, nor is it your responsibility.
What kind of pressure is being put on you? Are expected to work inhumane hours to meet the deadline or what?
If it's typical (i.e., they're comfortable doing business this way) then yes it's time to move on.
If it's more or less a one-off and you believe your efforts will be rewarded eventually - and you're satisfied with the company and culture otherwise - then maybe it's worth staying.
In either case, guard your physical and mental health. In this regard, trust no one but yourself.
If people close to you tell you they get a stressed or exhausted read on you, absolutely trust them. Sometimes we are slow to realize these signs ourselves.
I should have said, "Trust no one at work but yourself."
Thanks for the save.
This.
I have met people who did not protect/guard themselves. Some had gotten burned out after severe crunches and they needed very long breaks/vacations from writing software. Two that I knew of were still burned out 18 months after the crunch ended.
I don't mind putting out fires. It happens. I take offense when those fires are intentionally started by mismanagers.
The story of "EA Spouse" is not unique to the game industry. No place I have worked at has been quite that bad.
0 - https://web.archive.org/web/20061205035200/http://ea-spouse....
The rewards have been nearly fully allocated into upper management caste over the past generation or so, but with no carrot they can't use the stick as much as they used to.
Sometimes, to save a piece of wood, the rot needs cutting out. Similarly, to improve an organisation, bad projects must be allowed to fail.
But the delivery time and efforts will become the new baseline standard.... to be exceeded in later project of course.
Extending deadlines to remain inside the timeframe.
In the long run renaming late delivery to 'common practice'.
Once something shipped, if it worked, then no one remembered the pain until the next one.
If everyone is working long hours including execs and it's shared pain, something will eventually change for the better. My problem with it was when I worked long hours but the execs went on long vacations and weren't even available for approvals or questions. Then nothing will change and you should go elsewhere.
And you'll develop a Cassandra-like ability to see it coming when it is coming, and you'll also learn that the absolute worst thing you can possibly do is to try to get ahead of it in any way. Don't point out to them that they're on the road to ruin or they'll blaze down the road faster and then blame you for it.
Did I get anything extra for it? I don't know. I can't point to a specific check that was tied to that cot. I do know that the company appreciated it and my overall trajectory there was good. I was also proud for myself that I could dig deep and really "bring it" for several weeks to reach a goal that meant something to me.
If I had to do it every year, it would grate on me. If I had to do it because other people screwed the pooch, it would annoy me. But I still look back fondly on the overall experience there.
It was fine, really. Lots of people go through way worse and come out fine; it’s nothing like being deployed overseas in the armed forces, as just one common example.
Despite the naysayers, aint nuttin wrong wit dat.
my current company ( a very large consulting firm ) will pull in people from top to bottom of the project org chart who specialize in getting things back on track. A team is dedicated to relationship management with the client to help them feel more comfortable about the situation, a team is dedicated to delivery management, and very good problem solvers are scattered throughout the delivery team to help with dev and get other devs back on track and unblocked.
preserving a good relationship with your client is all that matters in consulting so we'll gladly take a loss if it means maintaining a good relationship.
I have worked at dysfunctional organizations like the one you describe. It's always a communication issue between different parties within the organization. Someone in sales works on a 6-month long quest to sign a new contract that will bring in the money to keep the lights on but it has delivery deadlines inked in that they lie to the team about and tell them the deadline is sooner in the hopes that even if they ship a little late it will still sail in under the contract deadlines. Nobody in the organization has explicitly worked out service objectives and written down the targets and goals so it's always implied that the system should be available 100% of the time resulting in the entire team being paged to handle every frustrated user request. There always several factors that contribute to dysfunction. It's never easy to fix.
If you don't have the political power, emotional energy, or see any possibility where your contributions could steer your organization away from repeating this scenario again, just move on. People are creatures of habit and changing habits takes time, energy, and discipline. But most of all it takes recognition: identifying and admitting that a particular set of behaviours is leading to this problem.
If you can do something about it and feel up to it, it's possible to turn that ship around if others are willing to join in. You have to be willing to step in front of the team, take responsibility, and be a leader. You may get less time for coding yourself and will be focusing on your communication skills and convincing others to join you. It's hard and it can turn an organization around.
At a prior company I worked at this is what I did, I became an engineering manager for a few years to do it, and it transformed the company and the engineers that worked for it. We went from a company that was constantly operating like the one you're describing: always fighting fires, hours of overtime, lost weekends, everyone frustrated. Within a year we hardly ever worked overtime. After another year we were responsibly sharing incidence response, had service objectives, and were shipping continuously. We even took on adapting the organization to take on compliance work in a regulated industry without adding undue stress. Some engineers that came to work with me had never worked on a healthy team before.
However I eventually came to the conclusion that management was too much stress for me and I went back to full-time engineering.
If that doesn't sound like something you want to work on: move on. Unless someone else steps in and does that work you will always be working overtime, being pinged at all hours of the day, wasting away weekends.
Update: clarifying the wizard statement: basically a healthy organization communicates openly and constantly. If we're close to a deadline we've set for ourselves and something isn't going right we talk about it. Often we will move the ship date because we prioritize quality higher than delivering at a particular time. Some times the ship date is important enough that we will scale back our scope and ship the missing parts after launch. But we always ship when we mean to.
Works pretty great.
PS Yeah, you should find a better job. They're out there!
I do work for government tho' so I guess private sector would be less forgiven.
I also want to point out that that other implementation I mentioned was developed, pentested and shut down before production.
I've worked on projects where deadlines were revised each month based on new info, and effort/improvement was focused in gathering better info to inform an (ideally) increasingly accurate deadline confidence.
For fixed deadlines; scope, scope, scope. Cut the scope and take an honest look at why it is late ... start fixing those things with a smaller scope.
I'd never as a team to work overtime, and I work hard to ensure that situation never risks my teams jobs. If it comes to a crunch, the business failed their staff terribly.
Is the deadline moveable in time or scope? Some deadlines are pretty firm and slipping will result in costing the company a lot of money.
If you stay, you should take notes on how management reacts, what steps they take to improve. Offering the right kind of constructive help to improve it is an opportunity to step into management if you want it. You know a lot more than I do about your situation, but I wouldn’t necessarily assume that meetings were the cause of overtime. Sometimes despite many meetings, lack of enough planning is still the problem. Or maybe the issue is that decisions were not being made in the meetings.
To answer the question, I’ve been in 5 companies that handled this 5 different ways:
- One company (film) that had paid overtime for 2-3 months at the end of every 18 month project. The overtime pay was 1.5x, but some accounting shenanigans made it so overtime pay didn’t kick in until 5 or 10 hours in, so it tended to work out more like 1.3x. Overtime was managed quite well IMO, but wasn’t seen as a problem. Post-project meetings would reflect on how to buffer production from changes in the story or examine accidents and discuss how to keep them from happening. The crunch times over several films slowly went down because management was improving. My base hours were 50/wk, crunch time hours were ~60-70. I did 80 once for a month when a project went off the rails. Management recognized it and this contributed to closing the division and moving everyone.
- Another company (games) had unpaid overtime for 4-6 months at the end of every 18 month project. Free dinner though! Discretionary bonuses tended to go toward people who put in more effort, though it was far from fair. Post-project meetings were slightly more about letting people vent than fixing the planning process, and would tend to reiterate the message that crunch time is inevitable. My base hours were 40-50/wk, crunch hours ramped from 50 to 80, peaking at 90 once or twice. BTW 80 for any real stretch is unlivable.
- When I ran my own startup, my overtime was unpaid and constant, never ending. ;) I probably worked 80-90 hours/wk, but it was way more flexible and much easier to do than when working for someone else’s company.
- When I worked for a web company that used continuous integration and delivery in 2 week sprints there was virtually no overtime, and we would punt features into the next sprint whenever they fell behind or grew in scope. There was a constant mild healthy pressure to deliver, but people clocked out at 5pm more consistently than anywhere else I’ve ever worked.
- At my current job, a hardware company, there is no official overtime or tracking of time at all, including “unlimited” vacation (which is kinda nice but I think tends to make me take less vacation than if I had a quota). Our software delivery is every 3-6 months, hardware projects every ~2 years. I tend to work more than 40 hours a week, and I put in extra hours above that when I want to do a little extra or do a good job on something, or I’m researching something I’m interested in. Compensation is good and my manager doesn’t think of jobs in terms of hours, he and I make sure I’m bringing value over the years.
If they don't get that, yeah, leave, will a smile on your face and a song in your heart. The only reward you'll get for staying, if they're not the sort who appreciate the above, is burn-out and more of the same crap in the future.
If not, and your company asks you to work your ass off for their screwup, leave and never look back. You might be pleasantly surprised at what developer compensation is like these days.
If you are in a position to influence things, it depends how badly off track you and your team are. You need to be able to push back on unrealistic expectations. If you work yourself and your team to the bone and you still won’t achieve what’s being asked, definitely don’t bother. You’ll still have unrealistic and unreachable targets and all you will have achieved is moving the needle on how much you’re expected to work. If you think you might be able to pull off some heroics and save the project with hard work, you need to ask yourself: “Will I personally see any benefit from doing this? Will my team?”. If the answer is no, don’t do any heroics. Your bosses wouldn’t do it for nothing either. They may have KPIs that depend on this that you don’t have. That sucks for them.
You don’t want to set a precedent that you will pull weekends and evenings if you won’t see any benefit from it (think hard even if it has some upside).
What should happen is that the scope should be reduced to something that can be delivered in the original timeframe if possible, and then some milestones should be moved further out (far enough out that it’s deliverable). You don’t want to buy yourself time and then find it’s not enough.
The viable plan: polish up your CV, get a better job. Your only responsibility is to yourself, your mental and physical health. If the managers want to burn down the company, that is their prerogative.