Iterative Development is one of the most important Principles in Scrum and is one of the main concepts to better Return on Investment (RoI). The Scrum framework is driven by the goal of delivering maximum business value in a minimum time span. To achieve this practically, Scrum believes in Iterative Development of Deliverables.
In most complex projects, the customer may not be able to define very concrete requirements or is not confident of what the end product may look like. For example if a customer wants an Online Grocery Sales Website then he/she may not be able to define the exhaustive list of requirements initially. After a few modules are ready the customer may get a better idea of what additional features are required.
The iterative model is more flexible in ensuring that any change requested by the customer can be included as part of the project. User Stories may have to be written constantly throughout the duration of the project. In the initial stages of writing, most User Stories are high-level functionalities. These User Stories are known as Epic(s). Epic(s) are usually too large for teams to complete in a single Sprint. Therefore, they are broken down into smaller User Stories.
Each complex aspect of the project is broken down through progressive elaboration during the Groom Prioritized Product Backlog process. The Create User Stories and the Estimate, Approve, and Commit User Stories processes are used to add new requirements to the Prioritized Product Backlog. The Product Owner’s task is to ensure increased ROI by focusing on value and its continuous delivery with each Sprint. The Product Owner should have a very good understanding of the project’s business justification and the value the project is supposed to deliver as he drafts the Prioritized Product Backlog and thereby decides what deliverables and hence values are delivered in each Sprint. Then the Create Tasks, Estimate Tasks, and Create Sprint Backlog processes produce the Sprint Backlog which the team uses to create the deliverables.
In each Sprint, the Create Deliverables process is used to develop the Sprint’s outputs. The Scrum Master has to ensure that the Scrum processes are followed and facilitates the team to work in the most productive manner possible. The Scrum Team self-organizes and aims to create the Sprint Deliverables from the User Stories in the Sprint Backlog. In large projects, various cross-functional teams work in parallel across Sprints, delivering potentially shippable solutions at the end of each Sprint. After the Sprint is complete, The Product Owner accepts or rejects the deliverables based on the Acceptance Criteria in the Demonstrate and Validate Sprint process.