{"id":690,"date":"2015-02-04T09:34:52","date_gmt":"2015-02-03T23:34:52","guid":{"rendered":"http:\/\/www.software-testing.com.au\/blog\/?p=690"},"modified":"2015-02-04T09:36:43","modified_gmt":"2015-02-03T23:36:43","slug":"some-thoughts-on-iteration-vs-incrementation","status":"publish","type":"post","link":"http:\/\/www.software-testing.com.au\/blog\/2015\/02\/04\/some-thoughts-on-iteration-vs-incrementation\/","title":{"rendered":"Some thoughts on iteration vs incrementation"},"content":{"rendered":"<div id=\"_mcePaste\"><a href=\"http:\/\/watirmelon.com\/\">Alister Scott<\/a>&#8216;s post on <a href=\"http:\/\/watirmelon.com\/2015\/02\/02\/iterative-vs-incremental-software-development\/\">Incrementation vs Iteration<\/a> was doing the rounds at work with some comments, and I felt the need to comment. \u00a0I had a couple of attempts at responding to this. \u00a0It&#8217;s a big topic, but to some degree I think iterative vs incremental is a bit of a distraction as a general philosophical discussion (and I *love* philosophical discussion, so I am not meaning to be dismissive).<\/div>\n<p><div id=\"_mcePaste\">I think it&#8217;s more important to ask &#8211;<\/div>\n<p><div>&#8211; What is our plan for validating the product definition?<\/div>\n<div id=\"_mcePaste\">&#8211; What is our plan for validating the architecture?<\/div>\n<div id=\"_mcePaste\">&#8211; How does the organisation want to &#8216;manage the work&#8217;.<\/div>\n<div id=\"_mcePaste\">&#8211; As a team, how will we know when our work is &#8216;good enough&#8217;?<\/div>\n<div id=\"_mcePaste\">&#8211; As a team, how do we plan to manage incomplete work (ie. future enhancements and defects).<\/div>\n<p><div>The first two are probably the biggest factors of uncertainty that will drive the degree of iteration vs incrementation.<\/div>\n<p><div>The third is a question relating to the organisations belief systems around predictability of software projects and how much power management wants in designing work methods to support their agendas.<\/div>\n<p><div>The fourth question will shape how actively the team works against &#8216;doneness&#8217; by finding bugs, soliciting feedback and exploring the solution space throughout the iteration.<\/div>\n<p><div>The last question is about how the team wants to manage defects and backlog. \u00a0If you don&#8217;t want to carry bugs and want to minimise backlog management, my experience is that the sprint needs to plan for internal iteration (or you need to get rid of sprints\/iterations and go with a pull\/dock assembly approach).<\/div>\n<p><div>The most important thing is understanding why we iterate. \u00a0Alister highlights a couple of examples when he talks about time to market vs user experience prioritisation, but it&#8217;s only sensible to talk about iteration in specific contexts of uncertainty and risk management. \u00a0Similarly, we discuss incrementation in the context of the cost\/benefit of a particular release approach and\/or schedule.<\/div>\n<p>I feel the biggest lesson in the Android\/iOS history is as an example of how expensive it is to fix architecture if you get it wrong. \u00a0Excuse me before I start on my old-guy &#8216;RUP got it right&#8217; rant.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alister Scott&#8216;s post on Incrementation vs Iteration was doing the rounds at work with some comments, and I felt the need to comment. \u00a0I had a couple of attempts at responding to this. \u00a0It&#8217;s a big topic, but to some degree I think iterative vs incremental is a bit of a distraction as a general [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-690","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/posts\/690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/comments?post=690"}],"version-history":[{"count":6,"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions"}],"predecessor-version":[{"id":695,"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions\/695"}],"wp:attachment":[{"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/media?parent=690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/categories?post=690"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.software-testing.com.au\/blog\/wp-json\/wp\/v2\/tags?post=690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}