Agile scrum methodology is a project management system that relies on incremental development. Each iteration consists of two- to four-week sprints, where the goal of each sprint is to build the most important features first and come out with a Potentially Shippable Product.
Scrum, short for “scrummage,” is a term that comes from rugby where it means to restart play after there’s been a minor rule infringement. When a scrum occurs, players are packed closely together to gain possession of the ball and work together to push it forward. While this might seem entirely unrelated to software, it was used to detail an analogy between rugby teams and product development teams in a 1986 Harvard Business Review paper by Hirotaka Takeuchi and Ikujiro Nonaka. They used the term to describe all members of a team working closely together to incrementally move a project forward. This was then built on by Jeff Sutherland, who further applied the concept and framework to software processes.
One of the most popular agile methodologies in use today, Scrum is a lightweight software development methodology that focuses on having small time-boxed sprints of new functionality that are incorporated into an integrated product baseline. Scrum places an emphasis on transparent customer interaction, feedback and adjustments rather than documentation and prediction.
Instead of phases, Scrum projects are broken down into releases and sprints. At the end of each sprint you have a fully functioning system that could be released:
With Scrum projects, the requirements for the project do not have to be codified up-front, instead they are prioritized and scheduled for each sprint. The requirements are composed of user stories that can be scheduled into a particular release and sprint:
Scrum is often deployed in conjunction with other agile methods such as Extreme Programming (XP), since such methods are mostly complimentary. In this example, XP focuses on the engineering (continuous exploration, continuous integration, test-driven development, etc.), and Scrum focuses on the project management side (burn-down, fixed scope for sprints/iterations) as part of the product management.
Because of this, project managers should choose elements of the Scrum project management methodology and other methods/tools together for the specific project. Since Scrum is a more defined project management methodology in terms of tools and processes, it is often easier to adopt from day one with less initial invention and customization.
Traditionally projects are delivered in a series of phases that are based on increasing levels of certainty around the system being built:
However, this approach has many drawbacks:
When using the agile Scrum methodology, the key benefits are:
Since the requirements (consisting of features, user stories and other backlog items) are deliberately kept high-level at the start, you have the flexibility to adapt the requirements from feedback from the customer and end users ‘on the fly’. This comes from the ability to redefine and replan after each release and sprint, giving the team plenty of room to respond to changes.
Scrum allows integrated teams of developers, designers, testers, and business/functional experts to all work together rather than working in individual ‘silos’. This cross-discipline collaboration fosters creativity and innovation, as well as more out-of-the-box solutions to problems that pop up.
A study found that the majority of features delivered in traditional waterfall projects were never used or needed by customers, due to scope creep and feature bloat. With Scrum, you are ruthlessly pruning the release backlog after each sprint so these unnecessary features (and their associated costs) are quickly weeded out. The short-time boxes reduce the likelihood of risks materializing during the sprint and thus address increment delivery.
With engineering approaches such as continuous exploration, continuous integration, continuous delivery, test-driven development, DevOps, and relentless test automation, Scrum yields much higher-quality code, products and process. All of these benefit the final product that you deliver to stakeholders, which is one of the major reasons why scrum is the most widely-used methodology when it comes to software development.
Scrum lets team members from a variety of disciplines harness their different skills in a cross-cutting product development ethos. This ensures that the finished product is optimized by and uses the best skills in the organization, not just what’s written on someone’s job title.
With the flexibility to adjust scope and still deliver results, the problem of delivering a fixed scope, fixed-schedule project with a team goes away. Instead of long nights frantically replanning and retesting functionality, the team has a sustainable operating pace that makes employees proud of their work and not fighting to deliver against impossible deadlines.
One of the challenges of software development for customers is that they cannot often appreciate the functionality of a system until they see it. By delivering working functionality in small increments, customers can see what they are getting earlier in the process and be confident that it is what they actually need or expect.
Scrum is useful for a wide variety (the majority, in fact) of software development businesses and projects where you need the ability to get real-time feedback from users and customers.
We have seen customers in diverse industries such as finance, banking, insurance, life sciences, transportation, logistics, manufacturing, education, and industrial systems adopt Scrum as their primary software development lifecycle. Even the industries most associated with waterfall approaches (aerospace, defense, and automotive) are now adopting Scrum. The ability to update software in satellites and cars in real-time means that iterative approaches are now more feasible.
However, Scrum approaches aren’t without challenges. For instance, with Scrum you can develop and release new production-ready code in two-weekly sprints — but you still need to produce reports, documentation, and paperwork to allow that functionality to be used. This has previously hampered Scrum adoption in some industries.
To account for and improve upon this, the new trend in agile Scrum projects is to simply define the required regulatory documentation and paperwork as part of the product. Developers then ensure that the automated lifecycle management systems in place can generate the documentation automatically from the project teams as part of each sprint. We call this “Agile Compliance.”
There can many different roles in a Scrum project, but there are three core roles. These three primary roles are product owner, scrum master, and scrum team:
This is the person that is responsible for managing the backlog of work and overseeing releases and sprints. They act as the project manager for the Scrum team, although the agile community generally doesn’t use that term. The product owner is responsible for representing the voice of the customer (and other external stakeholders), ensuring that all development work reflects the needs of the end user.
According to the official Scrum Guide, the primary responsibility of the product owner is to manage the product backlog. This means ordering and prioritizing work, optimizing the value of the work, and ensuring all team members understand what work needs to be tackled next.
This role is responsible for helping the team to follow the Scrum process, and focuses almost exclusively on the process itself. They are not involved in the decision-making, but act as a lodestar to guide the team through the project with their experience and expertise.
In contrast with traditional project managers, they are not necessarily involved in agile release planning. That’s done by the product owner and the Scrum team. A Scrum Master doesn’t act as a pseudo-project manager, because a Scrum team is meant to be self-organizing. The Scrum Master is the glue that holds the project together by facilitating, though not participating, in the daily Scrum meeting (one of the Scrum ceremonies we discuss in more detail here). Scrum Masters also help the team maintain their burndown chart and set up retrospectives, sprint reviews, and agile sprint planning sessions.
According to the Scrum Alliance, a typical Scrum team (called a development team in the Scrum 2020 revision) consists of five to nine people and generally includes the typical functional roles required to complete the project. In software development, that usually means architects, testers, developers, and designers — but could also include security, performance, hardware, and other experts.
The team acts collectively to determine how to achieve their goals, with the specific features they work on determined by the priority established by the product owner. The way they work is guided by the Scrum process, as monitored by the Scrum Master. Everything else is up to the team to manage, with the Scrum Master providing as much support as needed to allow that to happen. For example, each team member can take a user story from the prioritized product backlog, then decide individually how to execute that work.
This level of autonomy is a cornerstone of Scrum. It encourages strong bonds between team members and helps create a positive working environment. While the idea of a team exists in waterfall projects as well, in that environment the team is functionally managed by the project manager, rather than being self-managed.
All of these people are committed to the scrum project, and are augmented by various other specialist roles such as testers, test automation engineers, cybersecurity experts, user experience designers, business analysts, functional experts, and performance/load engineers.
In addition, there are some ancillary roles that are not core to the Scrum project team, but are heavily involved in the project outcome. These include customers, executive team members, and other stakeholders. All of these roles participate throughout the process, helping organize and guide artifacts, which we discuss more here.
When your company requires a system to manage your Scrum or XP projects, there are a lot of choices in the marketplace. However, if you want the most complete solution that can handle your user stories, backlog items, and acceptance tests there is only one solution: SpiraTeam.
The list of user stories, requirements, defects, and features is called the Product Backlog. SpiraTeam lets you organize the backlog by component, package, or priority. You can order and categorize them by intuitive drag-and-drop editing, called backlog grooming or refinement.
The requirements, user stories, tasks, test cases, and outstanding bugs or issues can be scheduled against the different iterations / sprints in the release. The system will calculate the available effort as items are added.
SpiraTeam is a complete Scrum project management system in one package that manages your project's requirements, releases, sprints, tasks, and bugs. Designed specifically to support agile methodologies such as Scrum, it allows teams to manage all their information in one environment.
|Requirement||Backlog Item||User Story|
|Test Case||Acceptance Test||Acceptance Test|
In addition to a powerful planning board for managing user stories, epics, and backlog items, SpiraTeam includes an easy-to-use set of boards for managing tasks within each sprint.
SpiraTeam lets you view the tasks associated with each of the user stories within the sprint and quickly see the completion status at a glance.
SpiraTeam also provides reporting dashboards of key project quality and progress indicators —requirements test coverage, task progress, project velocity, as well as top risk and issues. This is all kept in one consolidated view that is tailor-made for Scrum and Extreme Programming projects, as well as supporting any legacy/hybrid waterfall projects.
Not convinced? The top reasons that our customers say they choose SpiraTeam over other Scrum project management solutions are:
In addition, we provide superb technical support that ensures that any questions or concerns are dealt with in a timely and professional manner.
To learn more about SpiraTeam and how it can improve your Scrum project management methodology, please:
One of the key tenets of Scrum is that fully integrated, tested, and releasable code is available at all times. When you couple this requirement with the accelerated timeframes possible with Scrum, manual testing is not going to cut it. You need a test automation solution that can be integrated fully into your development process and can be adapted to your changing needs:
Rapise is the most powerful and flexible automated testing tool on the market. With support for testing desktop, web, and mobile applications, Rapise can be used by testers, developers, and business users to rapidly and easily create automated acceptance tests that integrate with your user stories and other backlog items in SpiraTeam.
One of the obstacles to implementing test automation on an agile Scrum or XP project is that the application’s user interface may be changing frequently, with new pushes to production daily. Therefore, it is critical that tests created one day, continue to work seamlessly the next.
Rapise comes with a built-in machine learning engine that records multiple different ways to locate each UI object, and measures that against user feedback to determine the probabilistic likelihood of a match. Put simply, this means that even when you change the UI, Rapise can still execute the test and determine if there is a failure or not.
To learn more about Rapise and how it can improve your Scrum and XP software testing please:
And if you have any questions, please email or call us at +1 (202) 558-6885