Scrum Methodology in Agile Software Development

From apppm
Revision as of 12:32, 21 September 2015 by S150821 (Talk | contribs)

Jump to: navigation, search

Today market is affected by uncertainly and sudden changes, in these conditions most of the models used in the 20th century to develop software are not still appropriate. Waterfall model , probably the most famous between them, is characterized by a stiff structure which can’t cope with the turbulent needs of actual market. In recent years many innovations are been enhanced in software engineering with a particular focus on the flexibility of these methods in order to cope with the customer’s and market’s needs; surely Agile Software Development is between them; ASD embraces the principles of lean production by applying them in software development to avoid waste and increase responsiveness to change. It represents the solution to the unpredictability of the market where the capacity to welcome change even late in development to satisfy customers is required. This article deals with Agile Software Development with a particular focus on one of its most used technique : Scrum Methodology.

Contents

The big Idea

Scrum is an iterative method used to develop software, it can be placed inside the group of methods which are used in Agile Software Development. This word is taken from rugby and represents that phase of the match where an ordered formation of players, with arms interlocked and heads down, push forward against a similar group to gain possession of the ball. This method provides that work is divided into small chunks to manage complexity and to get early feedback from customers and end users; software development is carried out by small working team that allow rapid adjustment during the process and a quick delivery of the final product.

History: from Waterfall model to Agile Software Development

Waterfall model

In recent years customers are more and more unable to define their needs and at the same time their expectations from software are increased; they also require quick delivery and product already tested: with this assumptions traditional models are not able to face market demand.

Waterfall model, appreciated for its easy and clear way to manage a project, was the most used model in the last fifty years : its approach consists in the identification of five consequential steps (Requirements, Design, Implementation, Verification and Maintenance) through which it is possible to reach the end of the project; for every step they are defined requirements, objectives and timing to achieved them. This way of managing a project turned out unable to welcome customers’ changes because of stiffness of its structure which did not provide the flexibility that market needed.

Iterative model

A more flexible way of managing projects is provided by Iterative model from which ASD is derived. This method breaks the project into iterations of variable length, each producing a complete deliverable and building on the code and documentation produced before it. The activities of which every cycle is composed are based on the Waterfall model but thanks to the shorter length of each iteration this model is able to quickly react to any changes imposed by the customers.

Agile Software Development

Scrum methodology

There are two concepts that are at the basement of Scrum methodology: iterative development and team working. Developing in iterations allow Scrum team to adapt quickly to changing requirements, while working in close location and focusing on communication allow team to make decisions and act on them immediately rather than wait on correspondence.

Basically Scrum consists in a sequence of fixed-length iterations called Sprints managed by one or more cross-functional and self-organizing teams each composed by seven people that aim at a common goal and that usually work only on the software development. There are instead other two figures that manage all things that are in support of the development process: one is Product Owner who mainly handles customers contacts and the other is Scrum Master whose main task is to ensure that development team can work without obstacles.

Each sprint usually lasts from 2 to 4 weeks, in this period there are at least one meeting between the Product Owner and Development Team to define the main objectives; then there are short daily meetings held every morning to enhance communication and inform customers, developers, and managers on the status of the project, identify any problems encountered, and keep the entire team focused on a common goal.

Main figures in Scrum

Product Owner

Development Team

Team self-organization

Scrum Master

Application

Sprint

Sprint Planning meeting

Daily Scrum and Sprint execution

Sprint review meeting

Sprint retrospective meeting

Backlog Refinement meeting

Artefacts

Product Backlog

Product Backlog Item (PBI)

Sprint backlog

Sprint task

Sprint Burndown Chart

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox