Agile Methodology - Scrum

Scrum is an agile process that can be used to manage and control complex software and product development using iterative, incremental practices. Scrum works well in today's software development environment where business goals and requirements are rapidly defined and refined. It is essential that solution development be flexible to meet changing business needs by operating within a constant feedback loop with the business.

Scrum provides a way to improve communications and maximize cooperation between development and business teams during development and testing of an application. Scrum's iterative practices replace the traditional, waterfall method wherein a development team takes a lengthy requirements document, disappears for months, and risks delivering a product that no longer fits the business' model or goals.

Agile and Scrum improve the feedback loop between the business and the development team. Scrum empowers developers on the team, giving them the responsibility and ability to own their deliverables. This replaces the practice of a Project Manager assigning developers tasks with pre-defined time estimates in favor of a process that allows developers to choose and estimate development tasks on their own and report their progress, obstacles, and effort remaining to the team.

Product Backlog

The Scrum process begins prior to development with the creation of a Product Backlog. The Product Backlog is a prioritized list of requested features and is maintained by the Product Owner, a client resource. The key to the product backlog is that it is not a static list of requirements but is updated throughout the life of the product to continually reflect current business priorities.

The ScrumMaster, a role typicallyprovides guidance and helps ensure that the Team adheres to Scrum values, practices and rules. In addition, the ScrumMaster helps the Product Owner on how to best utilize the capabilities of the development team to deliver value to the business.

Sprint Planning Meeting

In Scrum, iterations are known as Sprints. The goal of every sprint is to deliver new, demonstrable functionality. Sprints typically last two to four weeks and should be consistent from Sprint to Sprint.

A Sprint Planning Meeting is held before a sprint begins and is attended by the ScrumMaster, the Product Owner, and the development team. At the meeting, the Team reviews the current Product Backlog, selects the items to be delivered during the sprint, begins to break down the Product Backlog Items into well-defined tasks, creates the Sprint Plan, and commits to delivery at the end of the sprint.

Sprint Plan

The Sprint Plan is a key Scrum artifact. The plan breaks down each item from the product backlog into individual tasks. Decomposing tasks into small pieces makes it easier for the developers on the team to accurately estimate the amount of work.

The burndown chart uses the task progress provided by the developers during the daily scrum meeting and allows the Team to identify any delays or accelerations during the sprint, discuss the sprint's progress with the product owner, and, if necessary, make adjustments to the sprint.

Daily Scrum

Each day, the Team holds a brief, 15 minute meeting, also known as the Daily Scrum. In the meeting, each developer answers three key questions:

  • What did you complete since the last scrum?
  • What will you get done by the next scrum?
  • What problems are you encountering?

Developers are given the opportunity to adjust the estimated hours remaining per assigned task up or down depending on what they believe it will take to complete each task. The last question asked during the daily scrum is essential to identifying issues that could slow the development process.

Part of the ScrumMaster's job is to clear any impediments quickly so the developer can return to full productivity. The daily meetings continue throughout the sprint.

Sprint Review and Retrospective

At the conclusion of the sprint a review and retrospective is held. The review provides a demonstration of new functionality and a forum for feedback from project stakeholders. The sprint retrospective is a short meeting during which team members discuss progress and ways to improve the process.

After the sprint is complete, a new sprint planning meeting is held and the cycle continues until the Product Owner is satisfied with the current state of the product and decides to end the project.

For more information about Scrum and engaging one of our CSM's contact UML today.

Hard To Find
on Demand