You've booked a flight on dec 1 at 3pm. You check in, sit at the gate. At 2:40pm you are informed that, sorry, the plane isn't actually there yet. It's still on route. We'll fly at 7pm instead. You sit and wait. At 6:45pm you are informed that the plane is there, but the airport is out of fuel. More fuel will be there tomorrow. Rescheduled for next morning at 8am. You wait. At 7:40am next morning you are informed that the pilots are not awake yet. They had a long day yesterday, then went for some drinks, they just had to sleep in today. Rescheduled to 11am. At 10:30am somebody tells you that, well, things are in place but ATC went to a team building event, all flights grounded, but will be back at 4pm. You finally lift off, 25 hours late.
Entirely preventable had a deadline be set and all necessary components be scheduled correctly to meet that deadline.
Deadlines serve a purpose beyond coersion. There is misuse, but if you widen your horizon then you may realize that not all of it is.
If you had to reexplore and reinvent flight routes every single time, yes deadline in that scenario would also become meaningless as you'd have no idea what lies ahead each time. It would be the same as setting a deadline on how long Columbus should take to reach India.
Of course, the further you go out, the more your error margins (and the less others naturally rely on your estimate, and the more likely you say something generic like coming soon in 2025)
But this notion that it’s all creativity born of the ether, as if you’re sitting around waiting for eureka to suddenly strike is complete bullshit.
There is the issue that external resources will latch onto your vague estimates like it’s the word of god, and try to hold you accountable to unreasonable degree, but that has nothing to do with your planning. Usual solution there is to figure out what feels reasonable, and then double it again for your boss — and double it again for the client (which you’ll probably lose a bit to negotiation). There’s also the issue that a single heisenbug can take stupid amounts of time to resolve… but that’s why you doubled up — you keep buffer for that kind of thing.
The vast majority of any project is just plumbing — creative or not.
The point I’d still raise is that very few organization are OK with actually going the full length to reduce the error margin to what they want to tolerate (they still end up eating the costs associated with the actual execution time, of course)
For instance: you integrate a new API from a new vendor, and a request is made on a time estimate. It’s probably a very bland task with no crazy thinks to do, except you have no idea what surprises you might get actually running the API. What if the vendor din’t account for one of your use case for instance ? (let’s say they round money amounts to the nearest cent while your business requires round ups everywhere instead)
The safeguard against that risk is to either: fully run the API beforehand and cover all your use cases, or document every single requirement and run them through your vendor. If you’re not a bank nor the NASA, you probably won’t be allowed to do that before giving an estimate that will set a deadline.
It’s to me one of the reason why outside I put “creative” in quotes, as the problems we’re trying to solve don’t need to be complex, unexpected is sufficient. And ‘deadlines’ are more probably more ‘guidelines’ as most orgs don’t really care to secure them.
I'm working on something truly novel to me every day. The fact that it's novel to me is enough to make any wishful planning arbitrary.
The amount of brain waste caused by agile is immense. So many minds toiling away, trying to pick apart some long lost engineer's cleverisms and build something mundane on top of them.
That's true. But the article is not titled "Why deadlines are pointless for creative processes." It's arguing that deadlines are pointless. Always. That's oversimplifying at best, click-baiting at worst.
I'd argue that even in a creative process, if you add enough of a safety margin on top of a conservative estimate, then a deadline can be expected to be met with reasonable confidence. This is absolutely necessary for doing business. "We release when it's ready" is a workable strategy when there are no obligations, but claiming that this always works in all other contexts is just not honestly considering other contexts.
Yep! It sure is.
FWIW, I've spent most of my career producing custom software for paying customers. I've never missed a deadline because the the contacts I've worked on were negotiated appropriately. I've worked a whole total of 1 hour unpaid overtime in my entire career (and that hour was completely my choice).
If the people negotiating these contacts didn't know what they were doing, the companies I've worked for over the years wouldn't be in business anymore. I'm glad I've only worked at functional organizations.
So, yeah, the first few sentences of the article were completely foreign to me, yet the author claims, with confidence, to speak for everyone. Didn't bother reading the rest.
Deadline & No Fixed Scope. Fixed Scope & No Deadline. Deadline & Fixed scope and padding appropriate to uncertainty to hedge risks.
All 3 are admissions you can't estimate accurately.
“We release when it's ready" is focusing on quality only, and deadlines are just fictional dates, and “we release whatever is ready in time” is the real world process, where the product is bargained to whatever can meet the deadline (in the airplane example, that would be redefining your destination as wherever the plane is at the designated landing time, and see you in court if you ever make it back to civilization)
I think few people understand that setting deadlines equals to choosing the second strategy though. A mix of both just puts it in the first camp (“deadlines are flexible”)
The same way setting unreasonable deadline will only bring unusable results, which won’t help anyone interconnected to you.
It all comes down to proper management, there’s no magic way out of it.
Think about teaching your kids peogramming. Do you set deadlines on when they need to finish learning to read, when they'll touch their first computer, the date they need to have a working hello world ?
For any of these you'll probably be buying toys, books, discuss with your partner and arrange time etc. But none of those will be "deadlines", even if you intend to be very optimal in the progress
For instance infrastructure projects: a delivery date is set, but developpers blowing out that date is just a fact of life. What will you do anyway when your new dam or highway is 6 months late ?
Even at smaller scales, you'd schedule moving to a newly built house at a set date, but painfully know the developper can easily blow past that and you can't just take the date for granted, or you accept moving to an unfinished house.
Software projects are of course the same, at big and smaller scales. Just look at game delivery for the most piblic instances of setting "deadlines".
This is pretty much what regularly happens.
The pilot turns up drunk, she turns up on time, but drunk. Do we stick to the flight deadline?
A schedule is a set of events happening at certain time, right? They have to happen at that time since there is a contractual agreement on them happening at that time, and if they don't happen at that previously-agreed-upon time, then there will be negative consequences. That's exactly what a deadline is.
My schedule for today says that I am to meet a certain customer today at 3pm. We have a contract with them that stipulates this. In order to be there at 3pm I need to get the train at 2:10pm and for that I need to be done showering latest at 2pm. I can't make it otherwise. 2pm is a deadline for me. Bad things will happen if I don't make it. I can't justsay, oh well, quality just wasn't enough. I had enough time to plan ahead and be in the shower on time.
Plane was supposed to leave at 2:00 PM. We all got here at 10:00 AM for the long check-in. Got word the plane would be late, so 3:00 PM. Then 4, then 5, then 7, then 9:00 PM, finally took off at about 9:30 PM, over 7 hours late.
It turned out that this was because the incoming flight on this airplane was a 1st class-only flight, and the airline had failed to allocate time in the schedule to swap out the seats so there would be enough for the regular-class passengers. On arriving in Santiago, we had of course missed our connection. So, had to be put up overnight for a flight out the next day. Basically arriving a day late.
Had lots of other examples, but indeed, deadlines make no difference whatsoever when the plan fails to match the reality.
It is the plan that is important, not the deadline.
I can also say from developing software for several major events that occurred at specific times — there is no slipping of the date, ready or not — that the process is much more oriented towards managing the balance of development and scope than all-nighters. Sure, there's a few of those, but the overall key to the making the deadline is having a manager who can keep pruning the tree and keeping distractions at bay.
An airplane better arrive before running out of fuel. Somewhere, at least. That's a real deadline. You can't negotiate yourself out of that one. Empty tank == you will land NOW. One way or the other. So this is all full of safety margins, extra fuel, alternates, etc etc. But there is a time span which every flight will not exceed. Guaranteed. The pilots better be prepared for this, otherwise they die.
A flight is usually structured with many "lesser" deadlines. Latest time to abort takeoff. Latest time to turn to an alternate. Latest time for this-or-that to make for a safe landing. Glide slope. Localizer. The whole procedure to land a plane is full of deadlines. If you miss one, you execute a go around. Until you are out of fuel, then you better nail it.
So, no. Deadlines are not pointless. They can make the difference between living and not living.
Erm, except air travel DOES run like that.
Deadlines are at the very core of air travel.
The crew agree on a flight plan and file it.
If the aircraft goes AWOL and does not arrive at its plan waypoints by time + buffer, then all hell breaks loose.
There are also deadlines for landing slots, deadlines for flight closing, deadlines for this, that and everything else....
Aviation without adherence to deadlines would not work.
As for maintanance, airlines keep a ready stock of parts and have relationships with maintenance organisations at all major airports. There are also regular scheduled inspections. An aircraft on the ground is a loss making asset, it is in the airline's best interest to maintain the to flightworthy standards at all times.
Imagine more if the airline promised a flight would be ready using a brand new plane that was just now being designed out or at some stage in development someone unknowledgable felt comfortable to start making promises about timelines and even extrapolating out production. New plane designs and manufacturering take years and years sometimes. Have all sorts of delays, have safety issues that require them to redesign things later and so on. You don't see a lot of new plane designs you see the same known things used over and over.
It's one thing to make forecasts around fairly well known, established, and mature systems and processes, it's an entirely different beast doing so around less known systems and processes. The vast majority of software engineering and development is done around something new or different that has little contextual reference. If you do have reference then you're rebuilding the same things using the same pattern and it won't be long until libraries, frameworks, systems, processes, etc. emerges to automate that at which point your time shifts to the new things you need to automate which haven't been automated or done yet (again, otherwise you'd just leverage the prior work).
Planning to make a site using something like say Django vs building a new framework with different features like Django are very very different and a lot of development is trying to do something unique and new which means high uncertainty.
But needing a new working iOS by ship time for the next phone? That is a pretty hard deadline, and why apple doesn't use agile. They say agile doesn't support synchronous hardware/software releases.
The problem is when I bsupport multiple efforts, some with deadlines and aome without, the ones with deadlines always get "done in a minute" descoped so that I don't starve an ongoing que as is described here.
Even for the most objective deadlines (contractual obligations, holiday promotions), there are alternatives to releasing a low quality product, and the pros and cons must be measured. Does paying damages for failing to live up to the contract beat the reputational (or even legal) damage of releasing a low quality product that technically meets contractual obligations? Then a responsible company will pay those damages. Does releasing the product on time for Christmas, even with the level of bugs known and/or potential unknown ones, gain you more good will than delaying it by a few weeks? Then uphold the deadline and promise a patch soon after.
The author I think could phrase the argument better by saying a delivery date (something that is promised, based on quality) is more useful than a deadline (something demanded, regardless of quality).
Delivery dates do not preclude working hard and bring prudent, but they are not hard stops. Rather they are good estimations that can and often do shift.
Sales team needs that thing by December 1st? Don't ask for it on November 29th. Put leeway into the model by giving time for the delivery date to be missed. It's called contingency.
But, depends on your philosophy - move fast and break things,or deliver consistent quality code.
The alternative the article proposes is entirely different - it proposes a work queue system, where the team is always working on the most important current task(s), and where every task that is taking longer than some pre-determined number of days is re-evaluated to make sure it is still as important as believed.
> Sales team needs that thing by December 1st? Don't ask for it on November 29th. Put leeway into the model by giving time for the delivery date to be missed. It's called contingency.
That's not how the article thinks. Instead, it views it as "sales team needs some task done by some date? move it to the top of the work queue as soon as you know about it and the team will finish it as fast as possible anyway". Will that be before or after December 1st? No one knows, no one cares: it will be done as soon as possible.
For inherently fixed scoped tasks (say, "our product must ask users for consent before collecting data"), this can work fairly well. But I don't think it is realistic for the vast majority of work, which is far more vague in terms of scope.
But that is how it is done??
The delivery date is an estimate and the date can shift until the plane is safe to fly. The deadline for delivery is not a true deadline and the factory will only work to its safe production limit to deliver the plane.
A bad practice would be to just put the plane out on the tarmac, regardless of state.
It works to the safe productivity limit of the factory, not the arbitrary demand of the customer.
For example, if the customer’s plane isn’t delivered on the agreed upon date, you now have pilots, flight attendants, mechanics, etc. that need to be paid for no work, or let go and new hires made / trained at a later date, which is expensive. It’s also lost revenue and market opportunity.
There’s also the potential that the customer cancels their order and buys a different plane from a different manufacturer.
Agreed you can’t put out a plane that’s not safe, but you can pay overtime, or shift resources between projects, etc., to produce a safe plane and try to deliver on time and limit the above negative effects on the customer.
In general, if you ask someone when they want something done by, they usually say “as soon as possible”, not because it’s arbitrary but because there’s typically real world value in completing a task / gaining access to an asset sooner rather than later.
And what makes you think planes don't have to safe for flight, with controls and sign offs, before take of?
Both Boeing and Airbus have missed a bunch of delivery dates this year and will continue to do so. For some of them they're blaming regulatory approval. Guess what, it happens, life goes on, people in that industry can at least recognise that it's better than flying a plane that hasn't been approved.
> And what makes you think planes don't have to safe for flight, with controls and sign offs, before take of?
They do, and again the point is: what happens if the plane isn't ready? It doesn't fly until it is. They don't ignore the checks because they have a deadline.
You want to do creative work without deadlines and real world consequences for missing those? Become an artist, a rich one preferably because sponsors and exhibitions are a thing in the art world, too.
Boeing and Airbus tend to hit their deadlines for supplying planes all the time. Where is this hypothetical universe where they refuse to give a deadline, or refuse to meet it?
You build process around things to make them happen. Nobody is waiting for some artisanal process to magically produce a plane. There’s maintenance and cleaning schedules, crew schedules, etc. The preflight check is a final verification.
A good CEO measures the performance of the CIO by availability and quality of services. The CIO looks downstream to ensure that the operations teams have appropriate processes in place.
The problem is external artificial pressure almost never helps.
Proper safety checks wouldn't let the plane leave the ground. Delays in that critical state are inconvenient, but you accept them because the alternative is not acceptable.
We should treat software in exactly the same way, It's ready when it's ready.
The issue is the illusion of control. A bad CEO will measure the performance of his CTO by productivity alone. A good CEO will measure the CTO's output by consistently increasing quality.