Overview of Scrum and Software Agility

On the surface, Scrum is a very simple process: a software management technique that has a relatively small set of interrelated practices and rules, is not overly prescriptive, can be learned quickly and is able to produce productivity gains almost immediately.

Scrum naturally focuses an entire organization on building successful products. It delivers useful features at regular intervals as requirements, architecture, and design emerge, even when using unstable technologies. You can implement Scrum at the beginning of a project or in the middle of a project, and Scrum has saved many development efforts that were in trouble.
Scrum works because it optimizes the development environment, reduces organizational overhead, and closely synchronizes market requirements with early feature delivery. Based in modern process control theory, Scrum produces the best possible software given the available resources, acceptable quality levels, and required release dates.
At its core, Scrum is an iterative, incremental process for developing any product or managing any work that produces a potentially shippable set of functionality at the end of each iteration. Scrum’s attributes are: Scrum is a tool that can be used to achieve agility.

Scrum is an agile process to manage and control development work. Scrum is a wrapper for existing engineering practices. Scrum is a team-based approach to developing systems when requirements are changing rapidly. Scrum controls the chaos of conflicting interests and needs. Scrum improves communication and maximizes cooperation. Scrum detects and removes anything that gets in the way of developing and delivering products. Scrum is a way to maximize productivity.

Scrum scales from single projects to entire organizations, and has managed development for multiple interrelated products and projects with over a thousand team members. Scrum is a way for everyone to feel good about their job, their contributions, and know they have done the very best they possibly could.

While describing Scrum practices in detail is outside the scope of this, the method is characterized by the production of a Product Backlog where requested features are organized by their .
A Product Owner is responsible for approving changes to the product backlog. Implementation occurs in roughly 30-day iterations called Sprints, which focus on the top priorities in the Product Backlog. The goal of each Sprint is to deliver a potentially shippable product increment. During the Sprint, checkpoints are observed in a daily “Scrum” meeting, which communicates the progress and activities within the team and shares issues that may be “blocking” progress for an individual or the team. This allows the Scrum Master to determine progress against the Sprint commitments and advise on midcourse corrections to assure successful completion of the Sprint.