I was going to call this article “The Failure of Optimism” but then I though that would be a little depressing.
Although I’ve lived practically my entire life in the UK, sometimes I wonder if because I was born abroad (the Netherlands to be specific) it’s made me unable to fully master the subtle nuances of my ‘native’ language. See, when someone tells me that something is “done”, what I hear them say is that “everything is complete and there’s nothing left to do” when, in fact, that they actually mean is “the project is more complete than it was yesterday but we both should know that there’s still inevitably several days of work left to do”.
Indeed, this inferred use of the word ‘done’ is something I’ve even picked up and subconsciously used many a time myself in my days as both a developer and a manager. “It’s done”, I used to tell my bosses right before they pointed out all the things that weren’t finished yet (“Yeah, I know, but they’re easy to do!”, I would protest) or dump a big list of last minute client amends and designer tweaks on my desk.
Even now, as someone who deals directly with clients (my new bosses), I still frustratingly find myself falling victim to the same fate. “It will be done on Thursday”, I state confidently when in reality I’d be better of saying “It should be done on Thursday”. Or “It might be done on Thursday”. Or “Who the hell knows?!”.
“The first 80% of development takes 80% of the time. The last 20% of development takes the other 80% of the time.”
- Ancient Software Developer Proverb
So why the constant inability for us (read: every developer and project manager ever) to accurately gauge when something’s going to be complete? Are we just terrible at judging timescales and workloads? Or are we simply too optimistic for our own good?
Yes and yes but both answers are only individual pieces of a larger puzzle. It’s no lie that most developers couldn’t estimate their way out of a paper bag and that most managers want to give the most optimistic answer possible to please their beloved masters, the project owners. Those reasons aside though, I think the bulk of the problem lies in a much more mundane and straightforward issue: the final elements of any project are always the hardest and most time consuming to do.
It seems that no matter how much you prepare or how organised you are, the final stretch of work always takes a considerable amount of time. Last minute feedback, updates from clients, content changes and, not to mention, design tweaks all add up to a healthy chunk of work, usually destroying that ‘done’ statement choked out by the developer the day previous. Then on top of all that, there’s the polishing, the tweaking, the checking, the perfecting… I’m a true convert to the notion that the last 5% of any job is the most gruelling, laborious and painstaking part. It also happens to be the most important and worthwhile.
So how do we deal with this conundrum? Just be exceedingly vague in our timescales? No comment. Just start secretly doubling every time estimate we give or receive? Funnily enough, I knew a games project manager who did just that and was hailed by his team as having impeccable timing. Heck, maybe we should just cut down on the timescales we give team members to compensate for the ‘done’ overrun? I like this one but then I am a firm believer in Parkinson’s Law.
Of course, maybe we’re just trying to battle against the inevitable. We’re forgetting that we work in a fluid and constantly changing medium, an industry that has never, ever been ‘done’ since the day it started. Like an amazing creature, the Internet is evolving at a rapid pace, superseding everything previously released in a blink of an eye. Hell, Google will probably have already launched and then mercilessly killed off a new feature in the time it takes us to complete a whole site.
Still, a balance has to be struck and even though there are no print deadlines for web sites, we need to have days when things go live or work stops. Maybe our projects will never truly be finished but, in many ways, that’s part of both the beauty and burden of the web. As much as we can, we need to strive for timely completion and relentless perfection but perhaps we also need to accept that, due to the constant advancements and changes in our wonderful industry, nothing will ever actually be able to be 100% done.
I guess I’ll just need to settle for 99% instead.