What is a sprint (software development)?
In Agile product development and software project management, a sprint is a set period of time during which specific work has to be completed and made ready for review. Incorporating sprints into the software development lifecycle (SDLC) encourages iterative development and continuous improvement, ultimately helping organizations to produce quality software faster and often at lower cost.
How to plan and execute sprints in Agile
In Agile frameworks, like Scrum and Kanban, multiple sprints are the norm. The duration of a sprint is determined by the Scrum master, who is the team's facilitator and also the manager of the Scrum framework.
Before a sprint
Each sprint begins with a planning meeting, which is a collaborative event between the product owner (the person requesting the work), Scrum master and development team. During the meeting, these parties agree upon exactly what work will be accomplished during the sprint. They also determine and sign off on the criteria that will determine whether the work will be accepted or rejected by the product owner at the end of the sprint. Simply put, the meeting helps them to determine the following:
- What work will we do in this sprint?
- How will we do it?
The development team has the final say when it comes to determining how much work can realistically be accomplished during the sprint, and the product owner discusses the objective of the sprint and the product backlog items that must be completed to satisfy that objective. The product owner also has the final say on what criteria need to be met for the work to be approved and accepted.
The team and product owner must reach a consensus for building the sprint backlog, which is the set of specific work items chosen to complete during a sprint, plus a plan to complete the items. These parties also discuss how many days a sprint should last. Once this is done, the period of all future sprints should be the same. Traditionally, a sprint lasts 30 days.
During a sprint
After a sprint begins, the product owner steps back and allows the team to do their work. During the sprint, the team takes items from the sprint backlog and marks them as "in progress" or "done." They also hold daily stand-up meetings -- known as daily scrums -- to discuss progress and brainstorm solutions to challenges that may hinder the team from achieving the sprint goal.
The project owner may attend these meetings as an observer but is not allowed to participate or make change requests. They are only allowed to answer the team's questions. Only the Scrum master or project manager has the power to interrupt or stop the sprint.
After a sprint
At the end of the sprint, the team presents its completed work to the project owner and other stakeholders during the sprint review. This person then uses the criteria established at the sprint planning meeting to either accept or reject the work.
Sprint roles
A variety of roles are involved in a sprint, with each working on different parts of the process. These roles include the following:
- Product owner. This person represents the business or user community and is a liaison between the development team and customers. The product owner is in charge of working with the user group to define, prioritize and adjust what features the product release should include. They also accept or reject work results and keep customers informed on the project's status.
- Scrum master. This person is the main facilitator for the project's development team. They manage the process for how information is exchanged during the sprint, including leading stand-up meetings and helping the team stay on track by mediating problems and removing obstacles. Their main aim is to observe the sprints, maintain informational transparency during every sprint, provide coaching to the rest of the team and identify opportunities to improve workflows as a sprint progresses.
- Scrum team. This group of people is responsible for executing the work, specifically, i.e., the product backlog items that must be completed to achieve the sprint goal. The team may also include testers, architects, designers and personnel from IT operations who work together to complete a set of work items within the time-constrained period of a sprint. While the Scrum master is charged with protecting the team and ensuring that it stays on focus during every sprint, the team itself is self-managed and ultimately responsible for collectively determining how to reach their goals.
Sprint artifacts and ceremonies
In the Agile Scrum methodology, artifacts provide the key information that a Scrum team needs to understand the product under development, as well as completed and planned activities for the project.
Examples of artifacts are the following:
- Product backlogs.
- Sprint backlogs.
- Burndown charts.
- Planning meeting increments.
- Sprint reviews and retrospectives.
- User stories.
Together, these artifacts promote transparency in the sprint and provide useful insights into a sprint's performance. They may be created when the team, product owner and Scrum master are planning the work, setting sprint goals, creating or organizing tasks to achieve those goals, or analyzing results and comparing them to goals.
Ceremonies are the meetings that are held for every sprint. The main participants in these ceremonies are the development team, product owner and Scrum master.
A sprint may include many ceremonies, including the following:
- Sprint planning meeting.
- Daily scrum or daily stand-up meeting.
- Sprint review.
- Sprint or Agile retrospective.
That said, not all these ceremonies are mandatory. To execute a sprint, a team may not practice all these meetings. Also, teams don't have to be Scrum teams to participate in these ceremonies and garner the benefits.
Sprint workflow and process
The sprint workflow is intended to help team members evaluate their work and communicate with each other throughout the entire process. The workflow is followed for each sprint and usually includes these steps:
- Create the product backlog, and define the product goal. Create a list of tasks that must be completed before the product is released. The product goal, which describes the future state of the product under development, is included in the product backlog. The backlog is built by the product owner, who provides a list of prioritized items to the Scrum master and Scrum team. The backlog is based on user stories, which focus on features that consider the type of end user, what they want in the product and why. It is refined as needed during the sprint.
- Plan sprint. The team discusses top-priority user stories and decides what can be delivered in the sprint.
- Create a sprint backlog, and define the sprint goal. Agreed upon by the entire team, the sprint backlog is a list of items that finalizes and defines what the development team will complete during the sprint. This provides the focus necessary to successfully complete the sprint and its backlog items.
- Execute the sprint. The time frame in which the work defined in the sprint backlog must be completed. Ideally, the period should be long enough to give the team flexibility and freedom to do the work. It should also be short enough to minimize complexity and risk and to facilitate frequent feedback and fast changes.
- Hold a daily scrum. Led by the Scrum master, the team comes together for short daily meetings, in which they discuss what they have completed, what they are working on and any issues that are blocking the work.
- Determine the outcome. The outcome of a sprint is a hypothetically usable product. The product owner can decide if the product is ready for release or if additional features are needed.
- End sprint. At the end of a sprint, two meetings are held:
- Sprint review. The team shows their work to the product owner.
- Sprint retrospective. The team, along with the Scrum master and product manager, discuss what they can do to improve processes. An important goal is to facilitate continuous improvement.
Scrum vs. sprint
A popular misconception is that Scrum and sprints are the same thing. They are related concepts but not the same.
Sprints are time-constrained periods of one week to one month, during which a product owner, Scrum master and Scrum team work to complete a specific product addition. During a sprint, work is done to create new features based on the user stories and backlog. A new sprint starts immediately after the current sprint ends. By breaking down the development process into a series of iterations or sprints, development teams can be more nimble in responding to and adapting to change, delivering working software frequently and accelerating the delivery of the end product.
Scrum is the specific framework used under the Agile umbrella to develop complex products. In this framework, the development lifecycle is broken down into multiple sprints. The purpose of these sprints is to help a team build a software product in an iterative manner and make what may be otherwise a big, complex project simpler and more manageable. The term scrum is also used to describe the daily stand-up meetings that occur during a sprint.
Scrum productivity tools
Modern product development can choose from a multitude of Scrum productivity tools. While each tool has its own features and capabilities, most of them are designed to help teams make the most of the Scrum/sprint methodology and minimize challenges that may emerge during the SDLC. The best tools also support sprint ceremonies, facilitate data-driven continuous improvement, provide real-time sprint updates, enable collaboration, and enable teams to create task boards, document user stories, and efficiently plan and complete sprint tasks.
Popular Scrum tools include the following:
- Jira. Jira from Atlassian is a project management tool to help teams plan and organize tasks, track work, refine backlogs, plan sprints, and respond to changes and challenges.
- NTask. NTask is an end-to-end project management platform with Kanban boards to plan projects, manage work and maintain focus. It includes Gantt charts and features to share files, track issues, schedule meetings, evaluate risks, and track projects, issues and key performance indicators.
- QuickScrum. QuickScrum is a comprehensive framework for project management, resource management and time management. It includes numerous features to help teams easily create product backlogs, schedule resources, plan sprints and releases, create project time sheets, create reports and conduct ceremonies.
- ScrumDo. The ScrumDo platform supports all major Agile management frameworks, including Scrum and Kanban. It includes boards, tasks, multichannel in-context conversations, milestones, and sync features to organize activities, brainstorm ideas, simplify documentation and manage dependencies.
- Scrumwise. Scrumwise is a tool to manage Scrum projects, create backlogs and plan releases. Users can design their own Scrum boards and Kanban boards to visualize work and track progress with sprint burndown charts and release burnup charts.
In addition to these tools, teams can benefit by using tools to enhance communication, collaboration, knowledge management and planning. Examples include Zoom, Trello, Slack and Confluence.
Benefits of Scrum sprints over traditional development methodologies
There are many software development methodologies used today, including rapid application development and DevOps. Most development teams use the Agile or Waterfall models.
The Waterfall model originated in the 1950s and is often referred to as traditional software development. It tackles projects in a linear, sequential manner based on distinct phases:
- Requirements.
- Analysis.
- Design.
- Coding/implementation.
- Testing.
- Operation/deployment.
- Maintenance.
These phases are siloed, with each dependent on the completion of the phase before it, and include little or no user feedback until the final phase. The model leaves few opportunities for design adjustments during the middle phases of the SDLC, which can delay product delivery or prevent teams from delivering a product that end users want.
Agile Scrum sprints are collaborative and more adaptive than the phases in the Waterfall model because sprints break software features and requirements into iterations to be tackled during short time periods. Sprints also incorporate frequent testing, immediate feedback, daily meetings, continuous rectification of issues, and consideration of end-user stories and needs, which can result in the faster release of products with extremely relevant features.
Some other benefits of sprints are improved time to market, faster return on investment, greater customer satisfaction, improved team morale and better project control.
Compare Waterfall vs. Agile vs. DevOps methodologies and the differences between daily scrum vs. stand-up meetings. Learn how to get started with Agile development with these basics, and see what the maximum sprint length should be in Agile development. Explore if the continuous planning process in DevOps is worth it.