
I suspect many task deadlines are designed to force engineers to work for free - sT370ma2
http://misc-stuff.terraaeon.com/articles/engineering-deadlines.html
======
TuringNYC
>>The engineer's boss, an engineering manager, asks him how long a new task
will take to complete. Sometimes the engineer has not done this particular
thing before, so he responds honestly that he has no idea how long it will
take. His boss will not accept that answer. He asks again. So, the engineer
makes a wild guess and his boss responds with, "That's too long." Even if the
engineer knows how long a task will take to complete and gives a realistic
estimate, his boss often responds with, "That's too long. You have until
Friday." When the engineer asks how long his boss has known about the task,
the boss says he has known for a month. When the engineer asks why he didn't
tell him a month ago, the boss just looks at the engineer like he doesn't
understand the question.

If this describes your workplace, please find a better managed workplace if
you can. They are out there

The correct way to do things here would be to:

1\. Do a probe project to evaluate complexity and/or look at similar projects

2\. Trade time (deadlines) for scope and resources. Yes, we can deliver in a
month, but only if we cut scope and get 2 more QA folks, etc.

EDIT 2a: You can also negotiate to trade time for quality and/or take on
technical debt knowing it reduces future velocity.

3\. If neither of the above happen, you should trade absurdity for more
salary/growth. I've seen this at places such as hedge funds and consultancies
and they compensate and "pay" for it with better comp and growth.

~~~
matheusmoreira
Why can't engineers simply tell managers that it can't be done by the
specified deadline? Why do managers even ask this question if they're gonna
ignore the answer and impose an impossible deadline anyway?

It looks like they're assuming we're all lazy. They think the job isn't that
hard. A fundamental lack of respect.

~~~
drdeadringer
Perhaps some managers think they are a clever Cpt Kirk who's gotten wise to
their Scotty's miracle-worker tactics, even though they're a manager with an
honest Geordi La Forge.

No offence to Geordi La Forge.

~~~
blibble
mandatory clip:
[https://youtu.be/8xRqXYsksFg?t=9](https://youtu.be/8xRqXYsksFg?t=9)

~~~
TeMPOraL
Related, from the newest member of Star Trek family:

[https://youtu.be/latWmQtm8fw?t=22](https://youtu.be/latWmQtm8fw?t=22)

In your estimating, remember to always add _buffer time_.

------
crazygringo
As a former product manager with lots of experience with both engineering and
management: no, that's not what deadlines are designed for.

Deadlines exist because software doesn't exist in a vacuum, but other people
depend on it being delivered. Whether so it can be sold to make money before
someone goes out of business or a partnership fails, or its features arrive on
time as promised for the start of the school year which can't be moved, or as
the foundation for another project that has its own equally valid deadline
later on.

Deadlines exist because people need to make plans and be able to rely on them,
which is how our entire society and economy function.

People work overtime in _every_ industry to meet deadlines, it's not just
engineers. The only question is whether or it's good for you financially.

Whenever you take a job, it's up to you to do your due diligence in talking to
other employees to find out what the working hours and flexibility are like in
practice, and judge that against the salary, and decide if it makes sense for
you.

Fortunately, there is _huge_ variation in both salaries and expectations of
hours per week, and the best thing you can do about places that pay little and
work you long is to not take their job offer, or leave. Then supply and demand
can do its thing and they'll be forced to adjust or go out of business.

~~~
thomas
Well put and fully agreed. I don’t think engineers are in any way a special
case here. In fact it can be much worse for people whose skillset is easier to
replace.

~~~
tanseydavid
If you ask around I think you will discover that non-engineers DO NOT relate
to this topic at all the same way engineers do.

That's all the evidence that I need to take the view that this phenomenon is
wide-spread and pervasive in engineering and does not usually reach the same
level of pathology in other professions -- a level where people are forced
into 'playing a game' with regard to estimates and deadlines.

In short this is really UNHEALTHY behavior and whether it occurs in all
industries or just engineering seems beside the point.

~~~
crazygringo
Ask around who?

Talk to consultants, investment bankers, doctors, lawyers -- you know, other
high-intellect jobs like engineers.

Lawyers are playing the game of billable hours. Consultants are playing the
game of working day and night to produce the report by the promised deadline,
to move on to their next scheduled client the following Monday. Doctors
complete grueling residencies with "artificially" insane requirements, then
follow insane schedules juggling hospitals and private practice. And the
investment bankers I know haven't had a full weekend off in years.

I fail to see what's different about engineering, or what makes it inherently
any more of a "game" than what billable hours or hospital residences or
consulting deadlines are.

------
Animats
This is why film scheduling is a real discipline, while software scheduling is
not. Film production is unionized, and overtime costs real money, at least
time and a half, often more.

As I've mentioned before, there's something called a "completion bond" in the
film industry.[1] A completion bond guarantees third party investors that a
completed, releasable film results, or your money back. Completion bond
companies will take a shooting script and cost it out, then quote on what the
bond will cost. It's usually 3-5% of production cost.

Completion bond companies are thus very good at cost estimation. They keep
records on what and who has overrun budgets in the past, and by how much, and
adjust their estimates accordingly.

The completion bond company has several options when a film is in trouble.
They can put people on set to watch where the money is going. They can put in
more money, which is the first thing to be paid back when the film releases.
As a last resort, they can _fire the director and producer_ and put their own
people in, to get something finished. That's seldom done. "Bad Girls" (1994)
is a film where that happened. It's a terrible movie, but they got half the
production cost back, which beats zero.

The threat of that happening keeps management in line. Big career setback for
a director and producer when that happens.

[1]
[https://www.eqgroup.com/completion_bond/](https://www.eqgroup.com/completion_bond/)

~~~
kthejoker2
Film scheduling is a "real" discipline because the range of effort for (major
motion picture) filmmaking projects is extremely narrow, the dependencies are
all known, and all the projects are bottom up in nature i.e. this number of
shots, sets, cameras, explosions, etc. equals X more dollars and Y more hours
to produce it.

If every software project ever made was just a CRUD app, with the only
variations being the number of fields and the amount of data validation, and
we'd been doing it for 100 years, I'm sure our ability to finish on time and
on budget would be much less maligned.

~~~
Animats
Someone directly involved with movie production should comment on this.

------
duxup
I've no doubt some folks do that thing with the intent described in the
article "force engineers to work for free".

But I also think people are really quick to imagine managers / bosses to be
Snidely Whiplash or something when really it's more ignorance and bad choices
and etc.

I wonder if the introverted engineering culture has something to do with it
too?

I used to work in other fields until I started coding later in life. I've
found a huge % of engineers asking about what to do about situations and my
first question is:

"Wait ... have you talked to your manager about this yet?"

And the answer very often is "no" and they're talking about really strong
feelings of pressure and rage quitting is pretty shocking to me. This was very
rare in other fields that I was in, but in engineering it seems surprisingly
common.... Let alone the stories where it seems like the manager and the
employee only talk during quarterly meetings and that's it.

I think without any kind of relationship with your manager, team or employer
can make a given situation seem like it is menacing, manipulative.... but you
really don't know.

Granted, there are bad managers who do such things intentionally, but if you
talk to them you'll probably figure that out too. If you don't, you don't
know.

I've worked with plenty of folks who were very sure / felt strongly about some
management manipulation and yet I saw no reason to think it was occurring at
all.

------
fishtoaster
There's a lot to unpack here.

"So, the engineer makes a wild guess and his boss responds with, "That's too
long."" -> You have a dysfunctional relationship with your boss. They don't
trust your estimates - whether based on their hubris, or your past results, or
something else. You need to either find a way to reset that trust or leave the
company and start anew with a new manager. Otherwise you'd going to have this
same problem forever and neither of you will be happy.

"Very often, if he chooses to do a lousy job, everyone seems happy that
something was produced, even though what was produced may have been total
garbage that was good for absolutely nothing." Reading between the lines here,
this sounds like an engineer who wants to satisfy requirements that the
project doesn't actually have. In my experience, this often looks like an
engineer who wants to add more adjectives (modifiability, robustness,
scalability, etc) than is actually needed. If you delivered a result that the
stakeholders are happy with, that's a good outcome as an engineer. If you want
to overengineer something, consider either doing it on your own time or
switching to a job where, for example, more scalability, is actually a
requirement.

"In other words, if a boss is not totally clueless (which some seem to be), he
knows an engineer can't complete a job in three days that will take a month"
-> the author clearly assumes their boss has a ton more insight into the
engineering work than most do. Actual engineers working on a given project are
usually pretty bad at estimating how long tasks will take - a manager (even a
non-"clueless", technical one) generally has very little idea how long
something will actually take. Assuming that their manager knows and is
intentionally screwing you over is just another sign that the author has a
completely broken relationship with their boss and is incredibly bitter about
it. They would probably benefit from a reset (eg at a new job).

~~~
pdonis
_> Reading between the lines here, this sounds like an engineer who wants to
satisfy requirements that the project doesn't actually have._

In my experience, this is one of the least understood aspects of the
engineer's job, often by engineers themselves. An engineer's job is not to
create the absolute highest quality solution every time. The engineer's job is
to match solutions with requirements. Often that means _not_ implementing
something that, from a purely technical perspective, would be an improvement,
because it's not needed to meet the actual requirement, and would take time
and effort from something that _is_ needed.

~~~
gnusty_gnurc
I get frustrated when it seems like _no one_ is maintaining requirements (or
aware of them) and I'm just expected to make something work, as though I can
read minds about what's expected.

I have no problem with developing solutions on my own with the right
accommodations and compensation - but stop handing me sprints based on things
where the greatest extent of planning is a single sentence fragment of a Jira
issue title.

~~~
pdonis
_> I get frustrated when it seems like no one is maintaining requirements (or
aware of them) and I'm just expected to make something work, as though I can
read minds about what's expected._

Yes, another (often frustrating) part of the engineer's job is to try to get
the client (or a manager or someone else who is supposed to be communicating
the client's requirements to you) to understand what "requirements" actually
means and what does and doesn't count as actually specifying a requirement so
it can be met, or at least so that a reasonable estimate of the time and
resources required can be given.

As others in this thread have said, sometimes the only real cure for this
problem is to find a new job where you have different, and more reasonable,
clients and/or managers.

------
irrational
I don't know if I agree with the word "design". In my experience most managers
aren't trying to design a way to force people to work for free (though that
may be the unintended result). Most managers seem to fly by the seat of their
pants and make up deadlines based on what will make the client/stakeholders
happy and not as some sort of malicious design.

~~~
matheusmoreira
> Most managers seem to fly by the seat of their pants and make up deadlines
> based on what will make the client/stakeholders happy and not as some sort
> of malicious design.

So developers must suffer because managers routinely make promises they can't
keep?

~~~
iamkroot
More like the managers make promises they don't understand.

~~~
matheusmoreira
Isn't understanding the capabilities of the people they manage the job of the
manager? I always thought that was the whole point. If they don't know this,
then maybe they shouldn't be making any promises at all.

~~~
watwut
Making correct estimate on how much time feature will take is something
different then just understanding the capabilities of the people.

Even developers themselves are often unable to produce good estimates. In
fact, most developers tend to systematically underestimate how much time they
will need for this or that task.

I have seen management to even add padding to estimate and it is still not
enough in the end.

------
m0zg
IMO the whole "we don't pay for overtime" thing with salaried employees is a
scam that needs to be made illegal. There were times in my career (in the past
now) where I had to put in 10-12 hours a day, and often without weekends just
to meet the schedule, because some manager somewhere wanted the product for
the trade show. I don't see how this is reasonable, or why it should be legal,
yet under the current US labor laws it is legal.

When I managed my own teams, the most I would ask folks to do is to very
rarely work a bit more for a day or two (there are sometimes legitimate
reasons why things need to be done by a certain date, or crises to resolve
ASAP), giving them days off later to compensate. This was entirely voluntary,
with NO repercussions, career or otherwise, if they don't want to do it. There
always were 3-4 folks who were happy to oblige. I'm also proud to say, that
not once have I made anyone work over a weekend.

------
maxharris
At a well-managed company that's growing properly, such as Apple was from
1998-2012, this effect is employed in a way that compensates engineers very
well via the gains in stock price.

If you're a great engineer, it behooves you to see yourself as an investor in
the company you end up choosing to work for.

This means learning about things like the disruptive growth era we're in, how
monetary policy affects growth, etc. You should know what an inverted yield
curve is, and where to look to keep up with those charts
([https://fred.stlouisfed.org/series/T10Y2Y](https://fred.stlouisfed.org/series/T10Y2Y)).

It's important to read Clayton Christensen "The Innovator's Dilemma". I also
highly recommend reading ARK Invest's research reports. They cost nothing but
an email address, and I have found these all to be enormously valuable in my
own research on this. If you just want to sit and watch some stuff on YouTube
that can help, give "Chicken Genius Singapore", "Dave Lee on Investing", and
"Solving the Money Problem" a whirl.

Great management is incredibly rare. But it's on _you_ to learn how to
identify it. If you want to be paid the most, you have to know more than just
the field you specialize in! There is little value in putting your head in the
sand.

~~~
x87678r
> If you're a great engineer, it behooves you to see yourself as an investor
> in the company you end up choosing to work for.

That's great for Apple engineers but what if you work for HP/Intel/IBM and
just see a steady declining stock?

~~~
someguydave
they should realize their company business model sucks and bail

~~~
rabidrat
It's easy to say that for one person, but these are some of the largest tech
companies around, and you're talking about 10s of thousands of engineers.
Where are they all supposed to go? FAANG won't hire most of them, and it's not
because they're incompetent.

~~~
maxharris
I'm 39, and I didn't major in CS. FAANG wouldn't touch me with a 10-foot pole.

What to do? Take your skills and put them into your own startup. I rolled with
the times, hedged my bets and invested my life savings, as documented here:

[https://news.ycombinator.com/item?id=22958528](https://news.ycombinator.com/item?id=22958528)
[https://news.ycombinator.com/item?id=22970810](https://news.ycombinator.com/item?id=22970810)

(The only thing I'd amend my 4-month old comments with, is, chill out! The
daily ups and downs are not important compared to the Fed Put. And, long-term,
watch out for the ultimate decline of the dollar, the shift from fiat to
bitcoin. Palihapitiya has sage advice in keeping at least 1% of your net worth
in bitcoin.)

Investing well is a mindset, and the essential thing to do is focus on your
methodology, and your connection to the world around you. There is no
substitute for critical, rational, non-cynical thinking.

------
ThePadawan
Usual disclaimer: does not apply to most civilized countries with mandatory
overtime pay (including nighttime and weekend multipliers), maximum hours
worked per week etc..

I'm still amazed that there is so much migration _into_ the US at this point.
(But I also do get it.)

~~~
metacritic12
Right -- in those "civilized" countries (you probably mean the higher income
European countries?) the total pay is just 20 Euros an hour net of taxes, so
software engineers' salaries even with overtime don't match the US. But at
least your boss can't play these games.

~~~
fxtentacle
For skilled programmers, pay in Germany tends to be $5k to $6k per month after
all taxes and the highest level of health insurance and a generous retirement
insurance and disability and private unemployment insurance (additional to the
government one).

That is enough for an entire family to rent a house and live a very
comfortable life pretty much everywhere in Germany, except maybe Munich city
center.

There are strong overtime protections, I've heard from people who were paid 4x
their regular salary because they were called in on a Sunday.

I'm sure the FAANG pay better, but maybe house + family + free time is nicer
than high numbers in your online banking?

~~~
lotsofpulp
The US is pretty awesome if you're in the top 10%. Of course, more than 10% of
the US population likes to believe they are in the top 10% or have a chance at
being in the top 10% in the future.

------
skwirl
The picture this paints of a career in software engineering is utterly
unrecognizable to me, someone who has worked in this industry for well over a
decade at this point. I can't tell how much of this is pertains to whatever
specific situation the author finds himself in vs. how much of it relates to
the author's worldview. If I treated team members like this author describes
being treated, they would leave in an instant for any of the myriad of
companies hungry for engineers that will not treat them like crap.

------
kache_
Leverage is your tool. If you don't have enough, create more. You won't get
fired if they need you. You can always find a place that compensates you
enough for your work. Forget about what the engineering managers want. What's
in your power? If you're a professional, give your stakeholders a meaningful
time quote. If they don't like it, they can try finding someone who can
satisfy their requirements. Or they can make sacrifices so that you can
satisfy their requirements, given the amount of workers they have.

If you were selling someone watermelons, yet your client wants to pay you 50%,
should you give it away for free? There are other people that like
watermelons. And if he's the only guy out there that likes watermelons, it's
time to start selling oranges.

Start cooperating. If your stakeholders won't, find ones that do.

~~~
ipnon
We as laborers have cognitive bias towards the commodity we sell: our time.

------
gorzynsk
Hanlon's razor is an aphorism, "Never attribute to malice that which is
adequately explained by stupidity"

~~~
bravura
“Any sufficiently advanced incompetence is indistinguishable from malice.” -
Grey's law

~~~
TeMPOraL
"Never attribute to stupidity that which can be adequately explained by
systemic incentives promoting malice."

\-- Yours Truly's Razor ;) (though I still prefer "Hanlon's Handgun")

[https://news.ycombinator.com/item?id=21691718](https://news.ycombinator.com/item?id=21691718)

------
ChrisMarshallNY
Marketing and Sales don't seem to have much respect for the laws of physics.
They aren't deliberately assuming that engineers will work for free; they just
don't care.

I removed an anecdote, here, to protect the guilty.

Let's say that you talk to a marketing/sales person, and they give an absurdly
optimistic estimate for a significant project.

So either they would deliver a steaming heap of garbage, at their estimate, or
(more likely), the project would take a lot longer than the estimate. Since it
is often a "cost plus" contract, we are unlikely to be happy with the outcome.

It would probably still be a steaming heap of garbage, but at a much higher
price and months late.

The thing about late projects, is that there's this huge rush to deliver all
the features by the ridiculous date, and, when it gets there, you have this
horrendous Rube Goldberg device that is a creaking, barely-usable bug farm.

All the rest of the time is spent trying to get it working properly[0]. It
would consist of slapping kludge on top of kludge, until the result is 90%
cruft.

Good estimation is a black art that no one I know has ever gotten right. That
includes Yours Truly.

I have a friend that wants to do a fairly ambitious NPO project. I was
unsatisfied with the interactions he's been having with potential contractors,
and just started to do the project myself, which includes adapting the backend
(which I already wrote, taking seven months), and writing one of the frontends
(which looks to be on track for a couple of months, at least).

As usual, it's going about 50% slower than I had planned, but it's definitely
coming along. It will be really, really good, but quality takes time. One of
the things that I do, is have a very loose project plan that solidifies as the
project progresses. It really requires me working alone. Doesn't scale well to
teams.

Since I'm working on it for free, I guess that I'm a chump, eh?

[0]
[https://www.youtube.com/watch?v=NkQ58I53mjk](https://www.youtube.com/watch?v=NkQ58I53mjk)

------
kinkrtyavimoodh
Is it unreasonable to expect someone being paid 300K a year to work more than
an average of eight hours a day every once in a while?

It's hilarious how when there is a general article about developer
productivity, the comments section is full of people claiming how programming
is not like manual labor that you can do for eight hours straight, and that
most work in bursts of a few hours of intense intellectual activity surrounded
by taking time off.

How many software engineers can, hand to heart, claim honestly that they put
in 8 full productive working hours day after day the way a cashier or
warehouse worker does?

~~~
jaaames
Very few, and I don't think it's a reasonable parallel.

I don't think 8 hours of cognitively demanding, yet physically sedentary work,
is part of our human nature.

If you frame it in the sense that we are just monkeys in shoes, it wouldn't be
at all reasonable to expect someone to crouch in the grass and be highly alert
for hours at a time.

The corollary would be a job that's physically engaging (read, not demanding)
but cognitively basic, e.g. moving boxes in a warehouse, gardening.

The difference is one form of labor has leveraged output (writing code), vs
linear output (moving boxes).

~~~
kinkrtyavimoodh
You are completely right but that is precisely my point.

Counting hours for a job like programming is pointless. If you also agree that
it's not reasonable to expect 8 continuous hours of intellectual labor, it
should also not be reasonable on part of employees to be wedded to their
8-hour-workday. No one seems to have a problem chit-chatting at work, or
engaging in other forms of recreation, but everyone seems to love counting
hours when it comes to reasonable work expected from them.

I notice this in my job working with a team in Europe that my company has
acqui-hired (this is relevant because until then they were a purely European
company in terms of composition and culture). We are a pretty standard SV
startup in terms of culture, we are in the office for ~9 hours a day (that
includes lunch etc.) but we trust our employees to manage their work, which
includes the self-awareness of knowing when you have not done enough during
the day and compensating by working a bit more whenever you see fit.

In contrast, the European team does strict 8 hours a day (including lunch),
does NOT have better average productivity than ours, but gets very upset at
the occasional expectation that they meet deadlines with similar 'vigor' as
their SV counterparts. I'm sure the same people would complain about pay
disparity between the bay area and Europe and find it unfair.

------
forgotmypw17
I've seen this many places I worked. Probably most.

It's especially prevalent in agencies, because the are two or more layers of
this crap happening simultaneously.

First, the client does it to the agency, then the big boss does it to the
managers, then the managers do it to the programmers.

I think it is also [connected with|the primary reason for] ageism in the
industry:

As you gain experience, you learn to not fall for this kind of crap anymore.

When I was new and insecure, clinging to my job thinking no one else will hire
me, I put up with all sorts of crap I wouldn't put up with later in my career.

------
dorkwood
"My suspicion is that this interplay between engineering manager and engineer
is nothing but a game. Either to the manager, or to the company. Either it is
a show of power by the manager, or it is a strategy for increasing the
company's profits. In other words, if a boss is not totally clueless (which
some seem to be), he knows an engineer can't complete a job in three days that
will take a month. But, he must appear to be playing the company's game. The
company wants the engineer working unpaid overtime, as much unpaid over time
as the engineer can possibly endure."

At my last job, this was definitely the case.

I'd come in with a realistic estimate, and everyone would be shocked. This is
too much time, they'd say. How can we cut this down? There would be a
discussion. We'd play a little game where we'd pretend we could cut corners
over here and find efficiencies over there, and hey presto, we'd get it done
in half the time. Now everyone is happy. Except nothing has changed. The job
ends up taking as long, or longer, than the original estimate, but everyone
has to work overtime to reach the deadline.

I suspect the same thing as the author; everyone knew we weren't actually
cutting the time down. We were just promising to get it done faster for free.

------
jopsen
Wow, I suspect milage may vary depending on where you work.

I've only been at well run tech companies, and have a very different
experience.

I would never refer to my manager as "boss". Lol, I've rarely been told what
to do next..

My current manager describes his job as "herding cats" :)

~~~
godot
This is how I feel as well, and I can't tell if the author has only ever
worked in really bad companies, or doesn't have the maturity to understand his
work relationships or how a business runs. The anecdotes in the article also
feel cliche, they feel like something pulled out of generic articles about
"bad bosses". Are there actually many engineering managers like this in tech
companies in the modern day? Have I just been lucky in the past 15 years in my
career?

------
fizixer
IMO, and this is what the engineers never get to find out, at the managerial
level, a big concern is to keep the 'labor' "fed" (fed here means fed with
list of tasks). Meaning, an ideal for a manager in this aspect is to have
tasks ready one after the other, so that there is no time during the work week
where the engineer is under the impression that (s)he doesn't have anything to
do.

This is actually not easy. Real work, and real productivity is nonlinear. You
have times of serious crunch, and times where there really is not much to do.

Entrepreneurs do this better, but in startups there is almost never a time
where there is not much to do (there is always something to do). Or flat
hierarchies, especially one where the boss is also an ex-engineer, also do
relatively better.

This really gets worse in the case of org-chart hierarchies in
established/blue-chippy companies, where middle management, especially one
that has no clue of tech work, solves this problem by creating pipelines of
tasks that can safely be described as "bullshit jobs".

Some middle managers decide to use up the pipeline in a way so as to keep the
engineers occupied 60-70 hours a week, others 40-50 hours a week, something
that varies from team to team.

------
OldHand2018
This author is writing about a situation in which the employee is earning a
fixed salary but his time is billed out on an hourly basis. That is very much
a recipe for abuse, and may well have been designed to be exploited from the
very beginning.

I'm curious to know how common this employment situation is in engineering.
Perhaps only in the large consulting firms? But... aren't annual bonuses
supposed to compensate for the "extra" time?

~~~
moron4hire
It's every consulting firm. Given that consulting doesn't scale, I would not
be surprised if consulting firms represented the majority of software
engineering employment.

~~~
OldHand2018
That's a good point. And except in fixed-price contracts, there is no
incentive to become more productive - they would rather you work more hours.

~~~
moron4hire
I've also never worked at any consulting firm that gave an annual bonus,
except for one, and it was a joke. I think I got $1.5k one year, after having
worked 65hr weeks for the entire year (and some part time while I was supposed
to be on family leave).

------
dexterlagan
IT director for a multinational here: I apologize if this has been said, but
here are a few reasons why these deadlines are set to be broken from the
start:

1) estimating dev time is a hard (as in NP-hard) problem. Nobody in the world
can do it well. Ultimately, deadlines are meaningless in terms of actual dev
time.

2) being an engineer myself, I know full well that if I'm given a fair or
comfortable deadline, I'll code the thing quickly and enjoy some free time
until the deadline. When the deadline comes, we'll find out there was lots of
bugs. We're lazy/efficient animals.

3) if I'm given a short deadline, I'll complain but will work much harder
under pressure. I'll still deliver something with bugs, but they will be fixed
quickly, still under pressure.

    
    
      And so we give deadlines that are far off the mark, sometimes knowingly, in order to make sure the actual finished, *debugged* product is ready by the time we make the announcement/presentation/sale.

------
lisper
I think there is a better explanation here, one that does not require such
nefarious motives. If you're producing a physical product, then there is
usually a more or less linear relationship between the amount of product you
produce and the time and effort you put into producing it. If you can make a
widget in an hour, then it probably will take you more or less two hours to
make two widgets. The constant of proportionality can change with practice and
according to skill, but there probably isn't an order of magnitude of
difference between an extraordinarily skilled factory worker and a moderately
skilled one.

With engineering things are radically different. In engineering, and
particularly in software engineering, everything is easy once you know how,
otherwise it is borderline impossible. Most of the effort involved in
engineering work is not in the actual work, but in the figuring-out-how. As a
result, there can be multi-order-of-magnitude differences between the effort
required by someone who already knows how to do something and someone who
still needs to figure it out for the first time. This difference is most
pronounced at the bleeding edge of theoretical research, where it can
literally take decades to figure out something for the first time, after which
the same problem (or variations on the theme) can be solved in minutes or
seconds.

So the problem becomes: do you pay someone for their _efforts_ or do you pay
them for the _results_? Historically we've paid people for their effort
because that was correlated with results, but that is no longer the case. But
people tend to bristle at paying for results, particularly if they see that
very little (apparent) effort was involved in producing it. There's the old
chestnut about the plumber who charged $100 for banging on a pipe. When
challenged, the plumber produced an itemized invoice: $5 for banging on the
pipe and $95 for knowing where to bang.

Engineering problems are often solved by taking a shower. But Harvard MBAs
don't like to pay people to take showers. We really need a radical re-thinking
of the whole compensation model for this kind of work.

------
Justsignedup
This write-up indicates a serious problem in the org:

\- the tasks are not scoped and thus arbitrary dates are given

\- the tasks are not scoped and thus no trade-off discussions are had

Every time I had to work crazy hrs it was for a good reason in decent
companies. Examples being: We literally don't have the money to operate if xyz
doesn't get delivered by a specific date. Cut what you can, but not what is
critical.

With good managers / execs you always debate between what they want build, and
what can be built given current realities.

If your company just throws arbitrary dates and wants the perfect product
expecting you to work like mad... there is a problem in that company.

------
stephenboyd
I hope the author and the 200 upvoters find better employment soon. The tone
of the article suggests that this is assumed to be the universal way of
software development, but it's basically the opposite of how things are done
at my workplace. OP's company sounds like it's run by some Charles Dickens
villains.

My manager only gives me a few tasks per year, mostly administrative things
like peer reviews that everyone at the company needs to do. All my real work
comes from my team's product owner (not in my reporting chain, aka a product
manager), who defines objectives and sets priorities for my team. My fellow
developer teammates and I collaborate to give an estimate for the objective,
architect a plan for it, break it down into smaller 'stories' that ideally
take less than a week each to complete, and then actually implement those
stories with programming. If we don't know enough to estimate something, we'll
make a task devoting some time to researching just enough for an estimate.
It's always collegial, often fun, and very efficient at producing high quality
software on a predictable timeline.

But my employer's product is basically a SaaS and the author works at a
consulting company that rents our engineers by the hour. Is this kind of
dysfunction the norm at consulting companies?

------
riazrizvi
Perhaps. But in my experience as an engineer, there is a widespread human
tendency to take requests into a cave and not come out until something too
'opinionated' is built. When creating for/with others, often what is preferred
is a 'dialogue' approach, because everyone has an opinion on what to build. If
a product manager asks you to build a Twitter clone, which you reply would
take a year, and they counter with 'you've got two days', then make a 2-day
Twitter clone. You might build just a couple of key interactions, and it might
only operate at toy-scale, or you might just write a bunch of stubs that print
out what the system would do, but in general, if someone counters in response
to your estimate with a request to do it in 1/x of the time, they are usually
communicating "I don't need something built to that level, I want a 1/x pass
of what you imagine".

So really these aggressive deadlines are more about project stakeholder's
desire to have more control over the design process. Of course a creator might
not want to share control, but that is a different issue to 'being forced to
work for free'.

------
ineedasername
If this is true, it's too focused on engineering. This is project management
in general, not just for technical jobs.

But I also think the author gives too much credit to management. There's no
conspiracy to tighten deadlines to get free work, at least not in a vast
majority of places. Hanlon's Razor comes in to play here: don't attribute it
to malice if it can also be attributed to stupidity.

------
cryptica
>> Unfortunately, many of our companies appear to have become Orwellian
machines that put these people in power, and once there, they create utter
chaos for the rest of us.

I keep saying this because it's relevant to so many topics and so many
problems that people talk about these days...

The way all newly 'printed' money enters into our economy is through big
financial institutions - This means that the financial institutions are in the
position of choosing who will get a share of that new money (which the Fed
printed out of thin air). Once you understand that the global monetary system
is a scam, you'll understand why psychopaths rise to the top; because the
psychopaths who run the world can't rely on altruists to keep their mouths
shut.

If you don't believe me, just watch Hidden Secrets of Money:
[https://www.youtube.com/watch?v=DyV0OfU3-FU&t=2s](https://www.youtube.com/watch?v=DyV0OfU3-FU&t=2s)

The good news is that this is likely a sign that the system is on the brink of
failure.

------
umvi
In my experience many (though not all) deadlines are simple mitigation of
Parkinson's Law[0], not exploitation of workers. I don't work in the
commercial game industry though, so YMMV.

[0]
[https://en.wikipedia.org/wiki/Parkinson%27s_law](https://en.wikipedia.org/wiki/Parkinson%27s_law)

~~~
ghaff
There are a number of (good) reasons for deadlines--even deadlines that are a
bit of a stretch goal.

\- One is as you say. Absent a deadline, a lot of projects will meander along
forever iterating endlessly to refine and improve or even just dither around.
A deadline serves as a forcing function to decide what's actually important
and ship it.

\- Another is that projects often don't exist in isolation. Even if they are
somewhat standalone, like a game, they certainly don't exist outside of
revenue targets, big retail selling seasons, advertising plans, etc. It often
isn't practical to say "It will be done when it's done and you'll be the first
to know."

------
flubert
I'm sure none of this applies to any of us here, but I've heard rumors that
some people _need_ deadlines to complete tasks. As in you set a deadline, and
it doesn't really matter when, and check up with the employee on a regular
basis. The interim feedback is always that things are coming along, but there
is an awful lot of office chit-chat, browsing Facebook when I walk by, etc..
And then one week before the deadline all of a sudden there is griping and
moaning about crunch time, but now there is sudden focus, and things get done.
I'm a new manager, so I wish I had a better way to work with this dynamic.
Smaller milestones? How small before it becomes micromanaging? But to the main
point, if you are routinely working 70 hours a week that is a toxic work
environment and you should leave.

------
awillen
This is one of those times when you shouldn't attribute malice (or greed, I
guess) to something that ought to be attributed to incompetence.

I've been a PM for long enough to have dealt with lots of situations like
this, and never once have I had the slightest inkling that there was any plan
to overwork engineers in order to get them to work for free.

The good companies I've dealt with understood that engineers are vital to
their success and try to make them happy. The short term benefits of getting
free work by bullying them with deadlines doesn't outweigh the downside of
them leaving.

The bad companies just don't think like this - they want cheap labor so they
outsource engineering to the cheapest possible places.

Based on this post, I would strongly recommend the author get a new job.

------
encoderer
Having a job is an abstraction. It allows you to trade predictable effort for
predictable pay. Deadlines are an abstraction leak: Ultimately, market
dynamics and business P&L exists, it can't be totally ignored in a healthy
organization.

------
snarkypixel
The irony though is that the code that is written is shit and will cost the
company so much to maintain, which eventually leads to that shitty manager
being fired. The poor souls are the ones who need to maintain that crap
software after

------
curiousllama
This is interesting because one of the first project scoping lessons I learned
was that engineers rarely give accurate time estimates. I would always go back
to my boss having tacked on 20-30% of the time and make sure it’s clear that
it’s an estimate and could take longer.

Who wants a product that was rushed? If there’s not enough time, cut scope.

As a Project/product/eng manager, it’s my job to buy time, hit the dates I
set, and make my boss more $$$. If I’m saying stuff like “a month is too long;
you have until Friday,” I screwed something up or got screwed by someone else.
Regardless, the engineers should leave because it’ll keep happening.

------
dastx
I'm only about 8 years into my career and if there is one thing I've come to
realise, it's that a good chunk of deadlines are arbitrary dates plucked out
of thin air.

We as engineers are horrible at guessing how long something things. I've yet
to meet anyone who has been able to accurately guess how long a certain task
takes. Rightly so, because engineering wouldn't be engineering if all the
problems were already solved.

If you're in a workplace that imposes arbitrary dates on you, you should
probably look elsewhere. There are better companies out there.

------
JJMcJ
Also has the effect of having most engineers with a track record of "missed
deadlines" and "failures". So they are continually in fear of their managers
and review time.

------
diogenescynic
It isn’t just engineers—it’s all employees. Deadlines are often unrealistic or
arbitrary. It’s just something to use as a cudgel to beat your employees over
the head with.

------
darekkay
> The company wants the engineer working unpaid overtime, as much unpaid over
> time as the engineer can possibly endure. This is why so many engineers at
> some companies routinely work 70 hour weeks.

I am fine doing (justified) overtime, but there's no way I will do this from
the goodness of my heart. Some additional work is required for the upcoming
release? No problem, but make sure to plan some overtime reduction for me next
month.

------
jchook
Hm this article describes a bureaucratic management nightmare BUT, the
opposite is also bad.

Parkinson’s Principle is real.

If you give yourself a long time to complete a project, it will take that
long. Also many projects are a total waste of time. It’s often a good strategy
to get the smallest possible experiment (to test your hypothesis) in front of
customers ASAP and get the feedback loop rolling before you sink months into
something untested.

------
wdb
My pet peeve was managers that didn’t ask for an estimation and said to be
done in Feb 2021 and then forced you to work late/do overtime while they went
home at 5pm every day. Long ago I decided if the (project) manager can’t be
arsed to be around, to answer questions, arrange dinner, why should I work
late? If it’s not that important for the manager stay late too, even to give
moral support.

------
cortesoft
This seems to be describing a particular problem of working at an engineering
consulting company. I have never had this experience in my career.

------
tanseydavid
Thank you so much for this. I think you have managed to strike a perfect
balance in tone -- no small task.

You are quite direct in your message and do not sugar-coat any of your points
but still avoid sounding 'bitter'.

It has been my direct experience that the phenomenon you describe seems to be
widely in practice at this point, across many organization of different size
and disciplines.

------
zwieback
It's not like that where I work. Scheduling and tracking tasks is hard but it
sounds like the author needs to find a new job.

------
orf
If this is you, then quit. You’re not cattle, and there are better
environments to spend your time in.

------
hevelvarik
Don’t need to read the comments to know mine is redundant but whatever drives
one to leave comments on websites compels me.

I have never worked in such an environment and don’t see how one could.

You can demand someone jump off the building but not onto it.

If there isn’t enough time, then there isn’t enough time.

------
stefs
>It probably has something to do with the fact that large engineering
companies can afford to hire lobbyists and engineers cannot.

i'd lobbyists for employees are called unions. you can afford to hire
lobbyists by paying union dues.

------
kerblang
A lot of the comments on here seem to have missed the fact that this is about
_engineering firms_, not tech companies that employee "software engineers" and
what have you. It's not the same world at all.

------
mostlyghostly
It started well and devolved into a bitter rant about the universe. So...
here's some perspective from a career on both sides of the table.... (manager
and engineer)

\- For many teams and personalities, it is very hard to ship anything without
a deadline. (as a solo founder, I actually use this psychology on myself to
stay on track.)

\- Short chunks and deadlines work better than longer ones.

\- Peer pressure is a powerful stimulant.

\- Your time is not of equal value. You don't really have seventy hours of
quality work in a week. You've got maybe 15 "truly inspired" hours, 25 "grind
it out" hours, and a lot of filler, face time, and paper shuffling after that.
If you're smart, you slip in some employer funded personal growth & education
time into that mix.

The classic mistake is to screw up the mix. I actually run into this as a
freelancer. My rate for "truly inspired" time (real thinking about theory,
architecture, influencing others, lecturing, or consulting on high level
topics - eg. I must be fully present and prepared) is between $150 - $500 per
hour (depending on the degree to which I'm inspired by the topic in question;
$500 if I couldn't give a crap, $150 if I'm truly interested), "grind time" is
$75 - $90 (you're paying for work without face time or deep insights, done at
my convenience), and I'm unsure how to sell people filler, face-time, and
paper shuffling. My typical solution is to go take a nap.

By the way... once you deduct pitching and running the business (10 hours, mix
of inspired & grind), that means a freelancer REALLY has only 20 - 25 hours of
useful time to sell in the course of a week. Past that, you're either working
much harder than an employee or trying sub in filler and hoping your client
doesn't notice it...

The typical employee is selling 15 - 25 hours of grind, perhaps 5 of inspired
time (if you're lucky) and as much filler and self-directed time as you can
get away with. From an employee satisfaction perspective, inspired is a win,
filler / self-directed time is neutral to a win (depending on how well you
entertain yourself), grind is a negative. Grind time is less onerous if you
feel like you are accomplishing something in the process.

My goal as a boss is to get as much grind / inspired time for my buck as
possible, since that's what generates output. (employee development matters
but is a complex payback balancing future productivity / retention /
motivation; filler doesn't really help me at all) The essential management
challenge is spotting people slipping filler into a day and telling them to
get back to grind. Good bosses protect your inspired time. Someday I'll
hopefully get to work for one again.... (LOL)

There's nothing REALLY wrong with doing an 80 hour sprint one week if you can
engineer some paid downtime later. I have weeks where I'm exploited and - to
be fair - others where I'm massively overcharging my employer. It evens out.

------
blnqr
I had a co-founder who really thrived on challenges. Not impossible deadlines,
but almost "I dare you to do this by Monday" kind of thing.

------
mbrodersen
If you don't stand up for yourself, and accept whatever shit people throw at
you, then you will get crushed.

------
GoToRO
Here is the thing: most developers have very weak personalities. So yes, the
sociopaths figured out that by stressing the engineers, they can get more work
done, until they burnout at least.

You owe it to society to let a deadline slide by a large margin.

------
pkalinowski
In Europe, giving employee less time than it's needed to complete a task is
called mobbing.

------
gwbas1c
I figured this out shortly before I started my career and screen out these
kinds of employers.

------
reillyse
Is this article set in the late 90's. Times have changed, get a new job.

------
BMSmnqXAE4yfe1
I have an impression that the article is about programmers, not engineers.

------
dboreham
Penny dropping..

Now to figure out how to set boundaries in the abusive relationship.

------
zalkota
Engineer here, i can’t relate to this. Find a new job.

------
WrtCdEvrydy
From a good manager of mine, "deadlines are cost control methods, unless we
sent an email to a client or there's some pending legal requirement, those
deadlines are to keep the costs of a project from skyrocketing".

2 years later, only two deadlines have ever been set in stone: the GDPR one
and one we sent an email from Marketing about. I think he was right.

------
supernova87a
I'm going to provide a contrarian opinion here:

Managers do this because engineers can rarely be trusted to estimate timelines
properly, or at least communicate them. Or it's a rare engineer who does this
well.

Either they don't even think about timelines, or they grossly underestimate
the amount of time that something will take, find dependencies that add a week
of unexplained time to fix, or handwave off the parts with least clarity,
assuming it will be straightforward. And then you find out it actually takes
double the time to do it properly, or the original timeline produced an output
that was fully of bugs in the edge cases.

So, what happens, managers start to not trust when engineers give estimates,
make up their own more "believable" estimates, and also start to expect that
if they compress the timeline, it won't be a major issue because the
engineering team is putzing around with non-essential work anyway.

So, if you want managers to respect and work with realistic timelines, you'd
better give them a solid track record of delivering what you said you would in
the past.

There's blame to go around.

------
jimbob45
It goes both ways. Many weak deadlines allow engineers to slack off when they
otherwise might not have.

