Sam Gentle.com

Aspirational plans

Realistic deadlines are notoriously difficult to produce, both in software and elsewhere. Some of this problem comes from optimism, from external pressure or just plain lack of understanding, but I think there's a particular source of unrealistic deadlines that's worth considering: aspiration, the idea that setting a deadline makes it more likely the thing will get done by that time.

Perhaps the most common example of this idea is Parkinson's Law: "work expands so as to fill the time available for its completion". But I think if we're going to find any truth in that statement it's important to separate out three components: the scope, the work, and the time. Scope is how big your goal is, work is how much you need to do to achieve the goal, and time is how long it takes to do the work.

I would agree that scope expands to fill the time available (if you let it), and can contract to nearly nothing (if you don't live in the real world). However, the amount of work required to fulfill your scope is much less flexible. On the low end, there is some essential amount of work that has to be done for the goal to happen. There's also a maximum; in theory you could overcomplicate the way you do something to the point of just digging holes and filling them back in again, but at that point it's not even clear that what you're doing qualifies as work for any reasonable definition of it.

Which brings us to the relationship between work and time. Assuming work means progress towards the goal (and that progress can't be infinitely small, Zeno fans), it can't expand forever. And, in a more realistic sense, unless people are being willfully inefficient there's some predictable range of conversion rates from time to work. To put it another way, I don't buy that work decreases in efficiency to fill the time available.

You'll notice, though, that there's no guarantee that the time actually contains work. You can spend an infinite amount of time staring at a tree and be no closer to building a house. I would describe that as essentially an allocation problem, as in if you want to get a thing done, but you're not working on it, then really the issue isn't to do with the work, it's to do with where you're putting your resources. Setting a deadline is just one (crude) way of doing resource allocation. If you have to have your novel done by the end of November, well, you've implicitly allocated your time up until then.

So these are the two exceptions I would make: more time allows for increased scope, and deadlines are a kind of time allocation. But neither of these works in reverse; if you decrease the time, that doesn't necessarily decrease your scope; and although you can allocate more time to meet a deadline, you can't allocate more time than you have. Assuming a fixed scope, efficiency, and resource allocation, you should expect absolutely no change in amount of work with a change in deadline.

Yet sometimes, and I call out my old nemesis two-way implication here, it's easy to believe that since less work takes less time, you can provide less time and the project will take less work. But there's no reason to think this, any more than there is to think that you can create gold from lead or propel yourself through the air with your mind. There's just no mechanism to generate more work from nothing.

Ultimately I feel the real mistake here is a lack of firewall between control structure and reporting structure. "How long will it take to do this?" is a purely data-driven question, calling for a scientific process with a scientific answer. "I want you to do this" is an executive statement, an instruction that lets you coordinate work on a large scale. "I want it to take this long to do this" is nonsense.