What is a Product Increment?
In the context of agile software product development, using a framework such as Scrum, a software product increment is what gets produced at the end of a development period or timebox.
In Scrum, for example, the regular development cycle is a Sprint, a period of between one and four weeks in which a planned set of product features is developed. At the end of the Sprint, the development team would have created new software that gets built into the product in such a way that it could be released into live operation if that is desired. This is the product increment.
In other more freeform agile frameworks, such as Kanban (see What is Kanban), product increments are also created but they are less commonly based upon what is completed in a fixed period, and more so on what is meaningful for the product to be released into production. This might mean that product increments could be released in cycles ranging from minutes to months.
The purpose of the product increment is to be able to invest in new features of the product in small amounts on a regular basis, which helps to shorten the time before feedback is received. This incremental approach is fundamental to agile product development as it supports the principles from the agile manifesto of adapting to change and measuring progress through working software.
In a Scrum environment, a Scrum team would have a ‘definition of done’, so that they know that the product increment is complete. A similar might be true in a Kanban environment, where exit and entry criteria are used to define when items are ready to move from one stage to the next, e.g. into release. In either environment, this approach maintains the integrity of the process and the quality of the product increment.