Exactly. The author cites a Christmas promotion as an example. Yes, those types of projects exist, but in my experience, they're a tiny minority. Almost every deadline I've ever faced was set artificially. The developers estimate how long the project will take, they negotiate with management, and one or more deadlines are established. Often these deadlines are missed (not due to the programmers, BTW), and there's no actual harm to the company or the project.
In my view, the reasons for such artificial deadlines are a) so all involved parties can plan their schedules, and b) because an undefined timeline has a tendency to become an infinite timeline. Rarely do these two needs imply dire consequences for a missed deadline (provided it's not missed by an excessive duration).
You are lucky if deadlines with actual penalties have been a "tiny minority" of your experiences. The problem I experienced too much at some companies is "management" making artificial deadlines become real deadlines. VP of X sees feature set for delivery on Friday, sets up demo for potential client on Friday. Now everyone is in crunch mode or the company suffers when client can't see the feature. Or CxO drops in and says "I got invited to Conf Z in two weeks, I told them I'm going to demo Feature C and they just tweeted it, that's still on track, right?" Now, those were not the best managed companies, but I'd imagine there's a lot of people who end up in similar situations. As well, the author works at a consulting company, where I imagine many of the deadlines are baked into the contracts as deliverables with financial penalties for not meeting them. Consulting is a different world than a startup where you get to build something you hope to personally use for years.
Ouch! Yes, that can happen, and I'd argue it's pathological. Let me rephrase that series of events as follows:
1. Artificial deadline is set.
2. Artificial deadline is unnecessarily converted into crucial deadline.
3. Code quality suffers, saddling the company with technical debt that costs real money and real opportunities later.
> many of the deadlines are baked into the contracts as deliverables
Oh absolutely. I'm a consultant too, and I do that all the time. I set my contractual deadlines such that I don't have to sacrifice the codebase. Granted, there are exceptions to every rule, and I'm not going to claim I've never, ever accrued technical debt due to a deadline. But I wouldn't make it a philosophy, which the article seems to be doing.
In my view, the reasons for such artificial deadlines are a) so all involved parties can plan their schedules, and b) because an undefined timeline has a tendency to become an infinite timeline. Rarely do these two needs imply dire consequences for a missed deadline (provided it's not missed by an excessive duration).