Scrum Software Development Methodology

Scrum Software Development Methodology

Ruth Guthrie (California Polytechnic State University, Pomona, USA)
DOI: 10.4018/978-1-4666-5888-2.ch719
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Scrum is a software development methodology that is growing in popularity. It is an agile development technique that allows user requirements to change throughout the development of the project. Scrum is often described as appropriate for small development programs with high uncertainty of requirements. This article describes scrum methodology at a high level. The advantages and disadvantages of adopting scrum methodology are reviewed. Impediments to adopting scrum and remedies are also discussed.
Chapter Preview
Top

Background

In the history of software development, programmers have pursued approaches to development that improve quality, shorten time to market and reduce cost. Major methodologies in software development include waterfall, iterative design and agile development.

The earliest computer programs followed no methodology, resulting in ‘spaghetti code’ and unmaintainable systems. As development projects became larger and more complex, the waterfall methodology was introduced (Royce, 1970) to manage large-scale software development projects. Waterfall methodology has an approach to developing software that consists of several stages: requirements, design, implementation, test and maintenance. The process is known for being very rigid and not accommodating to changes that may evolve, or be requested during the project. This development process has many variations but is commonly known as the software development life cycle (SDLC). Requirements are developed and agreed upon at the beginning of the life cycle and at the end of development, teams test to see if they met the requirements. The requirements document represents a contract between the developer and client on what specifically will be delivered. When a change in the software is needed, a requirements change is made, triggering many more changes in code, test and documentation. Controlling the changes and adequately testing the entire system, helps to maintain quality as the software changes. The inflexibility with the waterfall methodology made the importance of correctly defining the requirements clear. It was much more expensive to fix a requirement or add a feature to a large scale program at the end of the life cycle.

Large software projects developed a reputation of poor user satisfaction, late delivery and cost overruns (Yourdon, 2003). The 1995 Chaos Report from the Standish Group reported that approximately 31% of software projects end in failure, and 50% of the projects that succeeded were 189% over their original cost estimates (The Standish Group, 1995). People began to look at alternative development methods to improve on cost, schedule and satisfaction.

Barry Boehm proposed a more iterative development methodology known as the spiral development process (Boehm, 1986). Phases of the spiral method are: determine objectives, risk mitigation, development and test, and planning. The spiral method breaks development down into several iterations, where issues of planning and risk are continually addressed. The Spiral method allows for requirements changes to occur more frequently, resulting in lower cost and higher user satisfaction. One disadvantage of the spiral methodology was that is complex and difficult for people to understand.

Agile methodologies arose from iterative strategies, like spiral development, in the early 2000s. The focus of agile methods is to allow for more fluid, rapid requirements changes, continuous user involvement and the use of smaller, self-organizing teams to develop software.

Key Terms in this Chapter

Sprint Backlog: A subset of the product backlog items that are being developed in a scrum project. Sprint: A scrum development cycle that ends with operational code.

Product Owner: The representative of the user perspective during a scrum project. They work with the scum master to build and prioritize the product backlog.

Product Backlog: Like a requirements document with more simple, user based descriptions of what they would like to do.

Agile Software Development (ASD): A software development methodology that allows for flexibility of requirements and small, short deliveries of functioning code.

Scrum Methodology: An agile methodology that uses small, focused development teams to produce functional deliveries known as sprints.

Scrum Master: The leader and facilitator of the product development team in a scrum software development project.

Complete Chapter List

Search this Book:
Reset