Both iteration and increment are terms bound with the Agile approach. But, as usual, the devil is in the detail. The closer you look, the more these two terms differ. Let’s dive right into this comparison and see what iteration and increment mean and what are the major differences between them. Show
Iterative and Incremental – definitionsThe brief and on-point definition comes from software engineer Raj Nagappan. He describes incrementation as a progressive process of growing something bigger in regular chunks. Meanwhile, iteration is about repeating an action several times over with the view to improve it or vary it somehow. In the Agile world, each framework puts a bigger emphasis on one of these elements, meaning it can be incremental or iterative. Which approach is incremental?ScrumThe increment is one of the three artifacts mentioned in the Scrum Guide, alongside Product Backlog and Sprint Backlog. The Guide describes it as a concrete stepping stone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. In order to provide value, the Increment must be usable. Importantly, one Sprint can contain more than one Increment presented at the Sprint Review. Work towards must be within the teams or company’s Definition of Done – a pre-agreed list of the activities necessary to get a product increment to a done state by the end of a sprint. KanbanThis framework, roughly translated to “sign”, comes from Japan when it was implemented in Toyota factories around the 1950s and developed by Taiichi Ohno, an industrial engineer. Investopedia defines Kanban as an inventory control system used in just-in-time manufacturing to track production and order new shipments of parts and materials. It uses visual cues to prompt the action needed to keep a process flowing. One of the main goals of Kanban is to limit the buildup of excess inventory at any point on the production line. How is this framework incremental? The IT world fell in love with Kanban due to its simplicity – to start using it, you just need boards and cards. One of these cards describes Continuous delivery. It’s the practice of releasing work to customers frequently. Another important element is Continuous integration – which automatically builds and tests code incrementally throughout the day. Together they form a pipeline that allows shipping software faster while ensuring high quality, describes Atlassian. Even more, Kanban and Continuous Delivery complement each other. As we read, both techniques focus on the just-in-time (and one-at-a-time) delivery of value. The faster a team can deliver innovation to the market, the more competitive their product will be in the marketplace. And kanban teams focus on precisely that – optimizing the flow of work out to customers. Example of increment |