Hacker News new | ask | show | jobs
by makeitdouble 1373 days ago
You're not describing a "creative" situation where you are building something new.

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.

2 comments

It is very rare that we actually work on something truly novel, and it’s even rarer that the majority of the task/project is novel. It’s really not that hard to identify something “reasonable” for most tasks, once you’ve broken it down. The pieces that are actually novel — you make an estimate to produce an estimate (how much work do you need to do before you get a handle over it?)

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.

You are of course right, and that’s the basis of SCRUM like thinking.

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.

> It is very rare that we actually work on something truly novel

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.

Unless you are really bleading edge, say mRNA vaccines, there should be someone with experience in what you are doing. Even for the bleading edge stuff, people have relevant experience to build upon.
Sure, there are people who are experienced in the areas that are novel to me. But, engaging them to the project may not turn out to be a better alternative (in terms of all kinds of variables: time, money, communication and coordination overhead, etc.) than my learning the subject.
Teams that subscribe to the agile methodology have a tendency to churn out ad hoc systems because there is not time for due diligence. The end result is ad hoc things built on ad hoc things. There is no limit to the learning curve. The knowledge doesn't transfer in the smoothest way because (a) there is no time for an engineer to perform due diligence, and (b) engineers are interchangeable cogs that flip high tech burgers based on orders from the Jira board.

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.

> You're not describing a "creative" situation where you are building something new.

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.

>This is absolutely necessary for doing business.

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.

How were the contracts "appropriately negotiated"? Did you have a fixed number of paid hours upfront where you created detailed requirements together with the customer that you all agreed to? And then you estimated every requirement based on solid experience doing similar work, multiplied by 3.14, got a "let's go" from the customer, sat down and implemented according to requirements and then delivered to customer within budget/in time? And when the customer found out that they wanted a certain feature to work another way. Then you put in a couple of hours to work out the new requirement and set up a new contract, properly estimated and delivered in time/within budget?
The mind set of working without planning and deadlines, caused by an inability of organisations to do so, is really troublesome. Using Agile as excuse is even worth.
There's 3 approaches.

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.

In my experience you choose between schedule and quality, which is in line with your point I think.

“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”)

Nothing happens in a vaccum, other parties tend to depend on your deliveries whatever they are. And those things are interconnected, if now everybody "focuses on quality" and delays things nothing gets done at all and not just late.
The focus on quality is limited by what you call “ready”. If it’s a reasonable definition, it will delivered in a reasonable time (you just don’t know exactly when)

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.

Only in a team of slackers. Some people are intrinsically motivated to do great work and be productive. They don't need fake dates to get things done.
But they need direction and alognment if they want to function as a team let alone an organisation. And that includes deadlines.
coordination =/= deadlines

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