Parkinson’s Law tells us that “work expands so as to fill the time available for its completion”. Tim Ferriss explains this in his book The 4-Hour Workweek: when there’s too much time planned for a certain task or there’s no deadline at all, people focus on trivialities (and are thus wasting resources). To prevent this Tim suggests planning an unrealistically tight deadline, which forces you to focus on the bare essentials.

This applies to software development as well. I’m not saying that we engineers are a lazy bunch, but when we have lots of time on our hands we have a tendency to gold plate stuff and busy ourselves with trivial features. We often forget to consider whether it actually provides value to the business or not. So there needs to be a certain amount of pressure which forces us to focus on what’s essential and what isn’t.

However, you generally don’t build quality software by setting tight deadlines which are too tight. There’s a sweet spot or rather a sweet area (of allocated time), which helps you to focus on what’s needed but at the same time gives some leeway to produce quality.

I apply this to my personal life, too. When cleaning the garage without a deadline I end up sorting out nuts and bolts all day, but when setting a deadline (finish in one hour) the results differ: the nuts and bolts are still a mess but hey, I can move around again!