software development methodology

Software Development Methodology – Scrum

An agile way to manage a project usually software development, Scrum is a framework that allows member to focus on delivering business value in the shortest time. It has been used for a variety of work, but has initially been most popular for delivering software based products.

Here, instead of providing complete, detailed descriptions of how everything is to be done on a project, much is left up to the Scrum software development team. For the reason that, this team will know how to solve the problem they are presented.

scrum methodology

Source: APPDEC

Tl; dr;

Lightweight, simple to understand yet difficult to master, Scrum is a framework wherein people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.

Scrum provides simple structure of roles, events, artifacts, and rules designed for teams usually of 3 to 9 members, who break their work into actions that can be accomplished within time-boxed iterations, called sprints, then track progress and re-plan in 15-minute time-boxed stand-up meetings, also known as daily scrums.It involves planning, product demonstration, and a retrospective.

Getting to know Scrum

scrum workflow

Source: DZone

One of the implementations of agile methodology, Scrum is ideally used in the project where the requirement is rapidly changing. Here, incremental builds are delivered to the customer in every 2-3 weeks’ time.

Fostering a self-organizing, cross functional team, Scrum has no overall team leader who decides which person will do certain tasks or how a problem will be solved. Things are decides by the team as a whole.

In 2016, Scrum is said to be used by 58% of software development companies.

Scrum Roles

Scrum’s management practices are much similar to those of Extreme Programming (XP), but, unlike XP, Scrum does not prescribe particular engineering practices.

  • The Product Owner. Solely responsible for managing the Product Backlog, the product owner expresses product backlog items clearly, orders items in the product backlog, certainly ensures the work value of the Development Team, see to it that product backlog is visible, transparent, and clear to all, and shows what the Scrum Team will work on next.
  • The Development Team. Consisting of professionals who execute the work of delivering a potentially releasable Increment of “Done” product at the end of each Sprint, the development team are self-organizing, cross-functional, recognizes no titles, do not contain sub-teams dedicated to particular domains, and accountability belongs to them as a whole.
  • The Scrum Master. The Scrum Master is a servant-leader that ensures that Scrum is understood and enacted through guaranteeing that the Scrum Team adheres to Scrum theory, practices, and rules. This member serves both the Product Owner and the Development Team in several ways such as facilitating Scrum events as requested or needed, teaching the Scrum Team to understand product backlog items, coaching the Development Team in terms of self-organization and cross-functionality, and removing impediments to the Development Team’s progress.

Scrum Events

The Sprint, considered to be the heart of Scrum, is a time-box of 1 month or less during which a “Done”, useable, and potentially releasable product Increment is created. It usually consists Spring Planning Meeting, Daily Scrums, the development work, Sprint Review Meeting, and Sprint Retrospective.

*Each Sprint may be considered a project with no more than a 1 month horizon. Sprints are used to accomplish something, having the definition of what is to be built, a design and flexible plan resulting to a product.

  • Spring Planning Meeting. Work to be performed in the Sprint is planned at the Sprint Planning. It is time-boxed to a maximum of 8 hours for a 1 month Sprint. For shorter Sprints, the event is usually shorter. The Scrum Master see to it that the event takes place and that attendants understand its purpose.
  • Daily Scrum. A 15-minute time-boxed event for the Development Team, daily scrum is an event to synchronize activities and create a plan for the next 24 hours.
  • Sprint Review Meeting. Held at the end of the Sprint for inspecting Increments and adapt the Product Backlog if needed, sprint review meeting allows Scrum Team and stakeholders to collaborate about what was done in the Sprint.
  • Sprint Retrospective. Occurs after the Sprint Review and prior to the next Sprint Planning, is an opportunity for the Scrum Team to inspect itself and create a plan for improvements to be enacted during the next Sprint.

Scrum Artifacts

  • Product Backlog. An ordered list of everything that might be needed in the product and is the single source of requirements for any changes to be made to the product.
  • Sprint Backlog. A forecast by the Development Team that is the set of Product Backlog items selected for the Sprint, in support of the Sprint Goal.
  • Increment. It is the sum of all the Product Backlog items completed during a Sprint and the value of the Increments of all previous Sprints.
  • Definition of the word “Done.”, When a Product Backlog item or an Increment is described as “Done,” members must have a shared understanding of what it means for work to be complete, to ensure transparency.

Summary

Scrum is a subset of the Agile framework that is iterative and flexible. As a practice, it offers more specific rules and procedures to the project application development project management process.It has been used for a variety of work, but has initially been most popular for delivering software based products.Here, instead of providing complete, detailed descriptions of how everything is to be done on a project, much is left up to the Scrum software development team.

 

If you enjoy reading about software development methodologies, let’s take a look at other blog posts.

Software Development Methodology – Extreme Programming

Software Development Methodology – Kanban

Software Development Methodology – Lean

Software Development Methodology – Dynamic Systems Development Method (DSDM)

Software Development Methodology – Feature Driven Development (FDD)

Software Development Methodology – Crystal

By Tuan Nguyen