{"id":26,"date":"2026-08-08T10:20:00","date_gmt":"2026-08-08T10:20:00","guid":{"rendered":"https:\/\/colorlibhub.com\/unapp-blog\/2026\/08\/08\/why-i-stopped-taking-photographs\/"},"modified":"2026-09-18T08:46:40","modified_gmt":"2026-09-18T08:46:40","slug":"why-i-stopped-estimating-in-days","status":"publish","type":"post","link":"https:\/\/colorlibhub.com\/unapp-blog\/2026\/08\/08\/why-i-stopped-estimating-in-days\/","title":{"rendered":"Why I stopped estimating in days"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">For about ten years, when someone asked me how long something would take, I gave them a number of days. Eight days. Fifteen days. Once, memorably, forty-one days, as though I had counted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I have stopped doing that, and the teams I work with have mostly stopped too. Not because estimates are useless, but because a number of days sounds like a measurement when it is really a guess, and people treat those two things very differently.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The trouble with a single number<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When you say eight days, three things happen. The person asking writes down eight. The person doing the work starts treating eight as a promise. And everybody forgets that the eight rested on assumptions nobody said out loud.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By day six, when one of those assumptions turns out to be wrong, the conversation is no longer about the work. It is about why you are late and whether you can still make eight, and that conversation is rarely useful to anyone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is a second problem, which is that a single number invites negotiation. Nobody argues with &#8220;I do not know yet&#8221;. Plenty of people will argue with eight, and the argument is never won by the person holding the keyboard.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The three questions I ask first<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before estimating anything I now ask three questions, and about a third of the time one of them makes the estimate unnecessary:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What happens if we do not do this at all? Sometimes the honest answer is &#8220;very little&#8221;, and we have just saved a fortnight.<\/li>\n\n\n<li>Who has done the nearest thing to this before, here? If nobody has, the estimate is fiction and the first task is a spike, not a plan.<\/li>\n\n\n<li>What is the earliest moment we would know we were wrong? This is the question that changes the shape of the work, because it pushes the risky part to the front.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What I do instead<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I give a range, and I say what the range depends on. In practice it sounds like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Somewhere between one and three weeks.&#8221;<\/li>\n\n\n<li>&#8220;The low end assumes the payment provider&#8217;s test environment behaves the way their documentation says.&#8221;<\/li>\n\n\n<li>&#8220;I will know which end we are at by Wednesday.&#8221;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The range is honest about how much we do not know. The dependency tells the other person what to worry about, which is more use to them than a number. And the day by which I will know more gives them a point to come back to, instead of a week of wondering.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Re-estimating is not failing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest change was cultural rather than mathematical. We agreed that updating an estimate is part of the job, not an admission of anything. When Wednesday comes and the test environment turns out to be a mess, the range becomes two to three weeks, and I say so the same day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This was uncomfortable at first, especially for the people above me who wanted a date for a slide. What won them over was not the ranges themselves. It was that the ranges stopped moving in surprising directions. When you name the risky part early, the surprises arrive early too, and early is when they are cheap.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where ranges still fail<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ranges do not solve everything, and I have watched three ways they fail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They fail when they are enormous. &#8220;Between a week and six months&#8221; is not an estimate, it is a shrug. If I cannot narrow a range to within a factor of three, that is a sign we do not understand the work, and the honest estimate is for a few days of finding out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They fail when the date is genuinely fixed: a conference, a regulatory deadline, a contract. In that case nobody wants a range, and they are right not to. What we give instead is a date with a scope that can shrink, plus a list, agreed in advance, of what comes out first if we are behind. Cutting scope on a Tuesday six weeks out is a decision. Cutting it the night before is a scramble.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They fail when the person asking has been burned enough times to hear any range as its optimistic end. The only cure I know for that is a few months of ranges that turn out to be true.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And they fail quietly when a team gives ranges to the outside world and single numbers to itself. If the board hears &#8220;two to three weeks&#8221; and the sprint board says fifteen days, you have not changed anything except who gets to be surprised. The range has to be the number the team plans with, which means planning for the top of it and treating the bottom as luck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What it looks like a year later<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The team I work with now estimates in three sizes, roughly a week, roughly a month, and &#8220;we need to look into it first&#8221;, and writes one sentence about the largest unknown next to each. Nobody has asked for days back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Planning meetings are shorter, because most of the argument used to be about the second decimal place of a guess. Stakeholders ask better questions, because we hand them a risk instead of a number. And the phrase &#8220;it is taking longer than we thought&#8221; has almost disappeared, not because we are better at predicting, but because we say what we do not know at the start rather than discovering it in week two.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The habit that took longest to build was writing the unknown down. Saying it out loud in a meeting is easy and evaporates by Thursday. Two lines in the ticket \u2014 the assumption, and the day we will know \u2014 survive the week, and they are what makes the re-estimate feel like a plan working rather than a plan failing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What I would tell my younger self<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nobody has ever been harmed by hearing &#8220;I do not know yet, but I will by Wednesday.&#8221; A great many people have been harmed, in small and tiring ways, by forty-one days.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A number of days sounds like a measurement and behaves like a promise. I now give a range, name the thing I am least sure about, and say when I will know more \u2014 and I re-estimate in public without apologising for it.<\/p>\n","protected":false},"author":117,"featured_media":49,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-26","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-estimation"],"_links":{"self":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/users\/117"}],"replies":[{"embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":2,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"predecessor-version":[{"id":63,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/posts\/26\/revisions\/63"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/media\/49"}],"wp:attachment":[{"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/colorlibhub.com\/unapp-blog\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}