What is a Product Increment in Scrum?
Product Increment is one of the important deliverables or artefacts of Scrum. Product Increment is the integration of all the completed list of Product Backlog items during the sprint. As the name suggests, Product Increment goes on getting incremented in the subsequent sprints. So, in a particular sprint, the Product increment is the integration of all the completed list of Product Backlog Items where as in a Project, Product Increment is the integration of all the completed list of Sprint backlog items. With each sprint, the product increment increases in terms of delivered functionality.
What is potentially shippable product increment?
A Potentially Shippable Product is the accumulation of the Product Backlog Items shipped or transported at the end of each Sprint. Unlike Waterfall model where to deliver the Potential Shippable Product, it has to go through all the levels of SDLC for months together, whereas in Agile/ Scrum, Potential Shippable Product Increment is delivered in Sprints by breaking down the big chunk of functionalities of the Product backlog into small pieces and are taken in sprints based on the priority.
When should the product increment be released to market?
By the end of each sprint the product increment is ready for shipping. We must understand the difference between Potentially Shippable and Potentially Releasable. By the end of the Sprint, the Product is ready to be shipped that doesn’t mean we can release the Product in the market. The release of the Product increment depends upon many factors. When can we say that the Product increment can be released to market? From technical point of view or as a Scrum Team, we should ensure that the Product Increment is well tested, of high quality and is complete. Why are these criteria important? Imagine you are using a banking app and suddenly your account is debited with some big amount. How would be your experience as a User? To avoid such bad experience, it is very important that the Product is tested. Not just testing, we should also ensure that all the Critical and High severity bugs are resolved and the Product is of high quality and not many Known issues are present in the Product. Also, before releasing the Product Increment, we should also see the Product Increment is complete from the end user point of view. That means a particular piece of functionality which customer considers mandate is completely working. In short, the functionality has to pass through the Definition of Done (DoD). We will talk about DoD in the next sub heading.
Now when we that we have seen from technical point of view when the Product increment can be released to market. Let us see from Customer’s point of view. In spite of meeting all above technical criteria to release the Product Increment, We just can’t go ahead and release the Product. It involves lot of financial decisions. Depending upon the economics and the cost of release, the frequency of the release is decided. If it is not too costly to release it by the end of each sprint then after each sprint the released is planned and if its costly then it depends upon the Customer after how many sprints he wants the Product Increment to be released in the market.
Definition of Done
Definition of Done is a checklist or an acceptance criteria which is fixed or same across all the user stories which defines if the User story is complete or not. Every single user story must meet all the checkpoints of Definition of Done to pass or mark it as complete to be shipped. The DoD criteria remains consistent throughout the Sprint for all the User Stories. Some of the sample DOD for a User stories are: All code check in, Code Review, Unit Testing Passed, Functional Testing Done, Demo done to the client, UAT Testing passed and so on. We can say that the Product Increment is ready to be shipped (Technically) when all the above DOD checkpoints are checked. This Definition of Done varies from Team to Team. Below are the sample Definition of Done used.
|Definition of Done (DoD)||Criterion Responsible (Role)|
|Demo verified by Product Owner||Product Owner|
|Functional tests passed with zero Critical and High active defects||Test Lead|
|Continuous Integration builds must not have errors||Dev Lead|
|Unit tests passed with code coverage greater than 90%||Dev Lead|
|Peer Reviews/Code Reviews have taken place (technical + security)||Dev Lead|
|All code checked-in||Dev Lead|
|VSTS tasks has no remaining effort, all tasks closed||Scrum Master|
Development Teams works upon a user stories in a sprint and at the end of each sprint, they deliver Potentially Shippable product Increment which is complete, tested and of quality. With each sprint, the Product increment goes on increasing in terms of functionality. This Product Increment is ready to use and it depends upon a customer whether to release it in the market immediately or not depending upon the finances. If the definition of “Done” for a Product increment is part of the rule, principles or procedure of the development association, all Scrum Team Members must adhere to it as a protocol. Hence Product Increment is one of the important or pivotal artifacts of Scrum Framework.