What is a sprint?

Scrum is the most popular agile framework in software development, is an iterative approach that has at its core the sprint-the scrum term for iteration. Scrum teams use inspection throughout an agile project to ensure that the team meets the goals of each part of the process.

What are the things must do before the first sprint starts?

Scrum has an initial planning phase that creates the product list of the initial requirements, decides on architecture for implementing the requirements, divides the user stories into prioritized groups for the sprints, and breaks the first set of user stories into tasks to be estimated and assigned. They stop when their estimates occupy all the time allowed for the sprint. Tasks in a sprint should not be longer than one day of effort. If a task is estimated to take more than one day of effort, it is successively divided into two or more tasks until each task’s effort is the appropriate length. This rule comes from the observation that humans are terrible at doing exact estimations of large tasks and that estimating task efforts in weeks or months is just a guess. So, breaking tasks down into smaller pieces gives the team a more reliable estimate for each.

Daily Scrum meeting

Sprints have a daily Scrum meeting, which is a stand-up meeting of 15–30 minutes duration (the shorter, the better) where the entire team discusses sprint progress. The daily Scrum meeting allows the team to share information and track sprint progress. By having daily Scrum meetings, any slip in the schedule or any problems in implementation are immediately obvious and can then be addressed by the team at once. “The Scrum Master ensures that everyone makes progress, records the decisions made at the meeting and tracks action items, and keeps the Scrum meetings short and focused.”

End of the sprint

At the end of the sprint, two things happen. First, the current version of the product is released to the product owner, who may perform acceptance testing on it. This usually takes the form of a demo of the product near the end of the last day of the sprint. This meeting and demo are called the sprint review. After the sprint review, the team will wrap up the sprint with a sprint retrospective meeting. In the sprint retrospective, the team looks back on the just-completed sprint, congratulates themselves on jobs well done, and looks for areas in which they can improve performance for the next sprint. These meetings typically do not last long (an hour or so) but are a valuable idea that brings closure to and marks the end of the current sprint.

Start of the next sprint

Another planning meeting is held where the Scrum master and the team re-prioritize the product backlog and create a backlog for the newsprint. With most Scrum teams, estimates of tasks become better as the project progresses, primarily because the team now has data on how they have done estimating on previous sprints. This effect in Scrum is called velocity; the productivity of the team can increase during the project as they gel as a team and get better at estimating tasks. This planning meeting is also where the organization can decide whether the project is finished-or whether to finish the project at all.

Final sprint

After the last scheduled development sprint, a final sprint may be done to bring further closure to the project. This sprint implements no new functionality but prepares the final deliverable for product release. It fixes any remaining bugs, finishes documentation, and generally productizes the code. Any requirements left in the product backlog are transferred to the next release. A Scrum retrospective is held before the next sprint begins to ponder the previous sprint and see whether any process improvements can be made. Scrum is a project management methodology and is typically silent on development processes. Despite this, Scrum teams typically use many of the practices described earlier in the XP practices section. Common code ownership, pair programming, small releases, simple design, test-driven development, continuous integration, and coding standards are all common practices in Scrum projects.

Summary

Scrum is characterized by a sprint, an iteration of between one and four weeks. Sprints are time-boxed in that they are of a fixed duration and the output of a sprint is what work the team can accomplish during the sprint. The delivery date for the sprint does not move out. This means that sometimes a sprint can finish early, and sometimes a sprint will finish with less functionality than was proposed. A sprint always delivers a usable product.

References

Studies at UCSC