{"id":428,"date":"2013-01-10T20:54:41","date_gmt":"2013-01-11T04:54:41","guid":{"rendered":"http:\/\/zuill.us\/WoodyZuill\/?p=428"},"modified":"2014-08-14T09:11:17","modified_gmt":"2014-08-14T17:11:17","slug":"a-comment-and-response-from-estimate-chess-post","status":"publish","type":"post","link":"https:\/\/zuill.us\/WoodyZuill\/2013\/01\/10\/a-comment-and-response-from-estimate-chess-post\/","title":{"rendered":"A Comment And Response from Estimate Chess Post"},"content":{"rendered":"<p>Cory House ( <a title=\"Cory's blog\" href=\"http:\/\/www.bitnative.com\/\">blog <\/a>\u00a0, <a title=\"Cory at Twitter\" href=\"https:\/\/twitter.com\/housecor\">twitter<\/a>) wrote a comment on my <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\/\">Estimate Chess<\/a> post, and I&#8217;d like to double purpose it by turning it into a post.<\/p>\n<p>First &#8211; thanks for reading my post, Cory, and for making comments.\u00a0 I appreciate that very much!!!<\/p>\n<h4>Cory&#8217;s Comment<\/h4>\n<p>I can appreciate the feeling of fruitlessness in some estimates. It\u2019s hard to get right, particularly when requirements are weak. However, I believe a professional developer must be willing to take the risk and do the hard work of estimating when requested. Drawing a hard line of \u201cno estimating\u201d without considering context doesn\u2019t come across professional or accommodating.<\/p>\n<p>Your chess example is entertaining, but it\u2019s also a great example of a place where I feel it\u2019s unfair to expect an estimate. Given, it\u2019s gray exactly how your story would translate to the development world, but it seems to describe a request to estimate a project without even vaguely reasonable requirements. I think we all agree that\u2019s a waste of time.<\/p>\n<p>If given sufficient requirements, we, as professionals, should be able to estimate our work. The world expects no less from engineers in other fields. Multiple contractors recently estimated the cost to finish my basement despite the fact that I had no floor plan, no idea where lights would be, only a vague idea on what word work I\u2019d like, a bathroom of unknown size and quality, etc. If one of them refused to provide an estimate, I\u2019d have gone elsewhere.<\/p>\n<p>I land plenty of dev work on contract because I\u2019ve gotten good at asking the right questions and sniffing out complexity so that I can provide reasonable estimates. Being skilled in estimation sets you apart whether you\u2019re independent or full-time. Steve McConnell wrote an excellent book on the subject. <a href=\"http:\/\/www.amazon.com\/Software-Estimation-Demystifying-Practices-Microsoft\/dp\/0735605351\">http:\/\/www.amazon.com\/Software-Estimation-Demystifying-Practices-Microsoft\/dp\/0735605351<\/a> \u00a0 That said, while I disagree with your answer to \u201cWhat can we do?\u201d as \u201cNothing.\u201d, I enjoyed reading your blog. It\u2019s fun reading and certainly food for thought.<\/p>\n<h4>My Response:<\/h4>\n<p>Hello Cory! Thanks for commenting on my post!<\/p>\n<p>Well, as you can guess, I don\u2019t agree with your take on things \u2013 but that\u2019s why I have a blog, and you have a blog. We all get to write about things as we see them.<\/p>\n<p>Regarding professionalism: I believe it is professional to find a better way to do all the things we do, and eliminate things that are wasteful. I see estimates and the estimating process as mostly waste, and as a professional I see no need to \u201ctake on the hard work of estimating when requested\u201d. More directly: estimating is not hard to do, in my opinion. I\u2019m not clear on why you might think it is. However, I also believe that estimates as used in software development typically (and almost always) result in misinformation that is used to make bad decisions. Which is why I follow an Agile approach to development. The Agile approach, at least as I do it, provides a lot of value and eliminates a lot of waste. And that is very professional. We\u2019ll just have to agree to disagree on our thinking about professionalism and estimates.<\/p>\n<p>I don\u2019t think I made it clear in the post: The Chess analogy is to show that something as simple as Chess becomes complicated quickly. It is a VERY SIMPLE GAME, with very few variables, and yet it becomes too difficult to predict when we add a few simple constraints. And even without those constraints, there is little we can predict. Otherwise we wouldn\u2019t even play the game, right? Remember: Don\u2019t stretch an analogy too far \u2013 it will always break. With software projects, anything that is non-trivial is much more complicated than the simple chess example.<\/p>\n<p><strong>Cory<\/strong>: \u201cIf given sufficient requirements, we, as professionals, should be able to estimate our work\u201d.<\/p>\n<p><strong>My Response<\/strong>: This is where we really diverge. I see estimates as waste, in the Lean sense of the word, and most other ways. Estimates\u00a0are not part of what the customer buys. They don\u2019t add value to the product. In a value stream map estimates are on the \u201cnon-value\u201d track. They are merely ONE WAY people have attempted to be able to arrange working relationships and get software created. It makes sense, and it partly works \u2013 still, there is nothing about them that makes them necessary, or even beneficial to the actual creation of software. We can write software without them. We can do whole projects without them. And if we can find a way to make BETTER SOFTWARE at less cost, and to more quickly get the right software into use without estimates, wouldn\u2019t it be professional and worthwhile to at least consider doing it that way? Hopefully we can agree on that.<\/p>\n<p><strong>Cory<\/strong>: \u201cThe world expects no less from engineers in other fields. Multiple contractors recently estimated the cost to finish my basement despite the fact that I had no floor plan, no idea where lights would be, only a vague idea on what word work I\u2019d like, a bathroom of unknown size and quality, etc. If one of them refused to provide an estimate, I\u2019d have gone elsewhere.\u201d<\/p>\n<p><strong>My Response<\/strong>: Here we continue to think differently. There are countless examples in life where estimates work to some degree. We\u2019ll discuss that some other day \u2013 most, if not all of them are NOT useful as models for software development. Here is where I\u2019d like to leave it for the moment: If you could have had the work done on your basement for less money and get higher quality, and perhaps get it done even quicker \u2013 would you be willing to consider doing that? I know that there would be no way to know it was cheaper if you had no estimates \u2013 but conceptually: If you could get all the benefits I describe would you consider learning to do business that way? I hope we can agree that would be better all other things being equal.<\/p>\n<p>We have contracts, and estimates, and predictions, and all the trappings of doing business this way because most people haven\u2019t found a way to do things better \u2013 we fail each other, we don\u2019t deliver as expected, we don\u2019t trust each other, so we find ways to do business that gives us a chance to do business. So\u2026 we can try to get good at estimates, and it if serves you and your customers, more power to you.<\/p>\n<p>Lastly:<\/p>\n<p><strong>Cory<\/strong>: \u201cThat said, while I disagree with your answer to \u201cWhat can we do?\u201d as \u201cNothing.\u201d, I enjoyed reading your blog. It\u2019s fun reading and certainly food for thought.\u201d<\/p>\n<p><strong>My Response<\/strong>: I didn\u2019t ask \u201cWhat can we do?\u201d. I asked \u201cWhat can we do instead of doing estimates?\u201d, and the answer was simply put as \u201cNothing\u201d. My point being that we do not need to do anything \u201cinstead\u201d \u2013 estimates are\u00a0often simply\u00a0UNNEEDED. And then I posed the more meaningful question: \u201cHow can we develop software without doing estimates?\u201d. The nuances of this are important, and perhaps I was being too cryptic. At the time I wrote this post it seemed few were willing to explore these things. I hope I was wrong, and now I am certainly finding more people willing to entertain and even experiment with finding better ways. And some doing purely \u201cno estimate\u201d projects.<\/p>\n<p>Overall, I have found the Agile way works well. When you have customers who see the benefits and find it works better for them than the old phased, predictive approach \u2013 then it is truly sweet.<\/p>\n<p>Thanks for your kind words. I try to be fun, and I&#8217;m &#8220;all about&#8221; food for thought!!!<\/p>\n<p>Cheers!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cory House ( blog \u00a0, twitter) wrote a comment on my Estimate Chess post, and I&#8217;d like to double purpose it by turning it into a post. First &#8211; thanks for reading my post, Cory, and for making comments.\u00a0 I appreciate that very much!!! Cory&#8217;s Comment I can appreciate the feeling of fruitlessness in some [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,21,22,24,4],"tags":[],"class_list":["post-428","post","type-post","status-publish","format-standard","hentry","category-agile-stuff","category-estimating","category-no-estimating","category-noestimates","category-waterfall"],"_links":{"self":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/428","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=428"}],"version-history":[{"count":10,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/428\/revisions"}],"predecessor-version":[{"id":433,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/428\/revisions\/433"}],"wp:attachment":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/media?parent=428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/categories?post=428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/tags?post=428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}