Scrum - Agile project delivery approach
Developed by Mateusz Onyszkiewicz
The article provides useful guidelines and information helpful to better understand the implementation of Scrum methodology – one of the most popular Agile product development and project delivery approach. Scrum is a framework that may be applicable to projects, programs, or portfolios of different complexity and size. It is worth noting that it can be used to create a service, product, or other purposes in any industry. These can be small projects on which several people work or large, complex projects requiring the involvement of up to several hundred people. [1]
Introduction
A Scrum project requires joint involvement in creating a new service, product, or different result. Projects are affected by several major constraints such as time, cost, quality, resources, scope, and organizational capabilities. In addition, there are also other limitations that interfere with proper execution, planning, and management which has an impact on the final success of the project. Agile has several methods, however, Scrum is one of the most popular. The main features of this framework are iteration, adaptation, flexibility, and efficiency with the main focus being the rapid delivery of value throughout the project. Scrum provides clear communication and makes an environment of collective responsibility and continuous improvement. [1] In order for Scrum projects to be successful, its principles must be strictly followed. The six Scrum principles are as follows:
- Empirical Process Control - Inspection, transparency, and adaptation are the three main ideas on which Scrum is based.
- Self-organization - Today's employees deliver much better value when they are self-organized, which in turn results in better team involvement and co-ownership.
- Collaboration - Articulation, awareness, and assimilation are the three fundamental dimensions of collaborative work and this principle focuses on them. The idea is to see project management as a collaborative process of creating value. Teams should work together and interact to deliver the best value.
- Value-based Prioritization - This principle focuses on delivering the highest possible business value from the very beginning of the project and throughout its entire cycle
- Time-boxing - Time is the crucial constraint in Scrum. Properly managed, it will help to plan and execute projects successfully. Sprints, Sprint Planning Meetings, Daily Standup Meetings, and Sprint Review Meetings are Time-boxed elements in Scrum.
- Iterative Development - Customer satisfaction is one of the most important factors in a successful project. Iterative development is helpful in building projects and managing changes to meet the needs of customers. It also identifies the organization's and the Product Owner's responsibility in regards to iterative development.
History
The story of Scrum began with an article published in 1896 by Hirotaka Takeuchi and Ikujiro Nonaka. The article is titled "The New New Product Development Game" and describes how companies such as Canon, Honda, and Fuji-Xerox have delivered the highest quality results using a team-based and scalable approach to all-inclusive product development strategy. The article highlights the importance of an independent, organized team and outlines the role of management in the development process. This work had a great impact on combining concepts into one whole, which initiated the present-day Scrum.
To describe product development Nonaka and Takeuchi used the trope of rugby and Scrum: "The traditional sequential or “relay race” approach to product development ... may conflict with the goals of maximum speed and flexibility. Instead, a holistic or “rugby” approach—where a team tries to go the distance as a unit, passing the ball back and forth—may better serve today’s competitive requirements."
The Scrum process for use in software development was created by Jeff Sutherland and his team in 1993 by combining the principles and concepts from the above-mentioned article with the empirical process control, iterative, object-oriented development, and incremental concepts. [2]