{"id":481,"date":"2013-01-22T17:00:03","date_gmt":"2013-01-23T01:00:03","guid":{"rendered":"http:\/\/zuill.us\/WoodyZuill\/?p=481"},"modified":"2014-11-22T09:00:06","modified_gmt":"2014-11-22T17:00:06","slug":"a-thing-i-can-estimate","status":"publish","type":"post","link":"https:\/\/zuill.us\/WoodyZuill\/2013\/01\/22\/a-thing-i-can-estimate\/","title":{"rendered":"A Thing I Can Estimate"},"content":{"rendered":"<p>This is a post about a trivial thing that I can estimate,\u00a0and there is a non-trivial point I want to make at the end.\u00a0 So you can just skip-to-the-end if that is the sort of person you are.<\/p>\n<h4>I can estimate how long it will take me to drive to work.<\/h4>\n<p>I drive to work 5 days a week.\u00a0\u00a0 I need to get to my workplace, but I also want to pick up my daily oatmeal and drink for breakfast at a fast-food drive-thru.\u00a0 Simple stuff.<\/p>\n<h4>Why do<em>\u00a0<\/em>I need an estimate?<\/h4>\n<p>I need an estimate so I can be sure to leave home early enough to get to work on time.<\/p>\n<p>I like to get to work 15 minutes early, and I&#8217;d like to make sure that I am never late except in exceptional cases.\u00a0 So if I can estimate a time that will get me there about 15 minutes early, but never later than 5 minutes early that would work for me.\u00a0 I don&#8217;t mind if I am 20 minutes early, but I don&#8217;t really want to be 25 minutes early.\u00a0 So, I&#8217;m looking for a time range that gets me to work between 7:40 and 7:55, with the ideal spot being 7:45.<\/p>\n<p>I want to be on time to work, with sufficient time to not worry about being late, and still not waste too much time just sitting there tweeting about estimates.<\/p>\n<p>I drive pretty much the same route every day with about 10 minor alternatives available. I can take advantage of\u00a0these alternatives (turn right here, or turn right a block up, stop at this fast-food or at that fast-food, etc) to make allowances for\u00a0congestion\u00a0at traffic lights, schools (school days are busy, holidays are not), drive-thru lines, and stuff like that &#8211; so I make a lot of little decisions on the way. For example: I&#8217;ll turn right at a light\u00a0if there are a lot of cars backed up and\u00a0take a chance that the next street isn&#8217;t backed up.\u00a0 That allows me adjust to get a better chance at a good drive time.<\/p>\n<h4>I can estimate how long this will take, and use that estimate most of the time.<\/h4>\n<p>Yesterday it took 40 minutes, the day before 43 minutes, the day before that 36 minutes (school holiday).\u00a0 Over the last year, I&#8217;ve found that it takes about 40 minutes to drive to work on a typical day.<\/p>\n<p>If I leave at 7:05, I will almost always get to work in my target time-frame.<\/p>\n<p>All well and good.\u00a0 And that works great for me for typical days.<\/p>\n<h4>I can take advantage of daily changes<\/h4>\n<p>I &#8220;re-estimate&#8221; daily to\u00a0adjust for school holidays, weather, etc. and vary the time I leave for work to compensate.<\/p>\n<p>To clarify: I re-estimate every day to adjust for daily differences.\u00a0 I can &#8220;re-estimate&#8221; quickly.\u00a0 The cost is about 10 seconds of my time.<\/p>\n<p>On a school holiday, I can sleep in 5 minutes. If it is raining, I must leave 10 minutes early.\u00a0 If it is snowing, something is really wrong because it never snows here.<\/p>\n<h4>Why Does This Work?<\/h4>\n<p>You already know:<\/p>\n<ul>\n<li>I have a lot of data &#8211; way more than is needed.<\/li>\n<li>I know all the variables (weather\/holiday\/etc)<\/li>\n<li>I know\u00a0the work-arounds (alternative routes)<\/li>\n<li>It&#8217;s essentially the same thing every day<\/li>\n<li>There are almost no unknowns<\/li>\n<li>There is almost nothing new\u00a0to learn<\/li>\n<li>I can trust the guy who is providing the numbers.\u00a0 It&#8217;s me.<\/li>\n<\/ul>\n<p>That is, it is trivial.<\/p>\n<p>By the way &#8211;\u00a0 I can&#8217;t control the variables to\u00a0predict an exact time, so a range is sufficient.<\/p>\n<p>Having the estimate is useful as it helps me optimize my sleep time and still reach work on time.<\/p>\n<h4>This is the Non Trivial Part: How Similar Is This To Computer Programming?<\/h4>\n<p>So, if it is useful to have an estimate, and we can make a meaningful estimate &#8211; then we have a good application of estimates.\u00a0 That is the case with my &#8220;drive to work&#8221; example.<\/p>\n<p>In my humble opinion, this is not similar to computer programming. We have the first part: We feel estimates would be useful, but we don&#8217;t have the second part &#8211; the estimates are not meaningful unless you are doing very trivial work.<\/p>\n<p>With software development we don&#8217;t have much data, we don&#8217;t know the variables, we don&#8217;t know the work-arounds, each project is very different, there are lots of unknowns, there is much to learn, and I can&#8217;t trust anyone for &#8220;good numbers&#8221;, not even ME.\u00a0 By the time we know enough about what we are doing to make useful estimates they are\u00a0useless because we are DONE.<\/p>\n<p>When we find our software development work\u00a0is &#8220;easy to estimate&#8221; it is likely that it is trivial in nature.\u00a0 That is, if it\u00a0matches the\u00a0nature of my &#8220;drive to work&#8221; example then\u00a0I would question if that work is actually software development. In software development, when I find I\u00a0am doing the same thing over and over, know all the variables, have few unknowns, have little to learn &#8211; then that&#8217;s the time I\u00a0investigate\u00a0ways to\u00a0automate it and stop &#8220;programming&#8221; it.<\/p>\n<h4>Have fun.<\/h4>\n<p>And remember: This is ALL JUST MY OPINION.\u00a0 Don&#8217;t do anything I say.\u00a0 Don&#8217;t mention to anyone else that this makes sense to you, they will just say you are crazy.<\/p>\n<p>&nbsp;<\/p>\n<h4>Some other posts I&#8217;ve written on the topic of estimating:<\/h4>\n<ul>\n<li><a title=\"Estimation is Easy and Useful: Estimate a game of Chess\" href=\"http:\/\/zuill.us\/WoodyZuill\/2011\/11\/07\/estimation-is-easy-and-useful-estimate-a-game-of-chess\/\">Estimation is Easy and Useful: Estimate a game of Chess<\/a><\/li>\n<li><a title=\"Do Estimates Do What We Want Them To Do?\" href=\"http:\/\/zuill.us\/WoodyZuill\/2012\/12\/06\/do-estimates-do-what-we-want-them-to-do\/\">Do Estimates Do What We Want Them To Do?<\/a><\/li>\n<li><a title=\"No Estimate Programming Series \u2013 Intro Post\" href=\"http:\/\/zuill.us\/WoodyZuill\/2012\/12\/10\/no-estimate-programming-series-intro-post\/\">No Estimate Programming Series \u2013 Intro Post<\/a><\/li>\n<li><a title=\"No Estimate Approach For End-Of-Life Legacy Support\" href=\"http:\/\/zuill.us\/WoodyZuill\/2013\/01\/09\/no-estimate-approach-for-end-of-life-legacy-support\/\">No Estimate Approach For End-Of-Life Legacy Support<\/a><\/li>\n<li><a title=\"Notes From A Conference Session On No Estimates in Software Development\" href=\"http:\/\/zuill.us\/WoodyZuill\/2013\/01\/10\/notes-from-a-conference-session-on-no-estimates-in-software-development\/\">Notes From A Conference Session On No Estimates in Software Development<\/a><\/li>\n<li><a title=\"A Comment And Response from Estimate Chess Post\" href=\"http:\/\/zuill.us\/WoodyZuill\/2013\/01\/10\/a-comment-and-response-from-estimate-chess-post\/\">A Comment And Response from Estimate Chess Post<\/a><\/li>\n<li><a title=\"Can We Code Without Estimates?\" href=\"http:\/\/zuill.us\/WoodyZuill\/2013\/01\/20\/can-we-code-without-estimates\/\">Can We Code Without Estimates?<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This is a post about a trivial thing that I can estimate,\u00a0and there is a non-trivial point I want to make at the end.\u00a0 So you can just skip-to-the-end if that is the sort of person you are. I can estimate how long it will take me to drive to work. I drive to work [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,21,22],"tags":[],"class_list":["post-481","post","type-post","status-publish","format-standard","hentry","category-boring-story","category-estimating","category-no-estimating"],"_links":{"self":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/comments?post=481"}],"version-history":[{"count":32,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/481\/revisions"}],"predecessor-version":[{"id":496,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/481\/revisions\/496"}],"wp:attachment":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/media?parent=481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/categories?post=481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/tags?post=481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}