- The first references in the literature to the term 'Scrum' point to the article of Takeuchi and Nonaka (1986) in which an adaptive, quick, self-organizing product development process originating from Japan is presented (Schwaber and Beedle 2002).
- The term 'scrum' originally derives from a strategy in the game of rugby where it denotes "getting an out-of play ball back into the game" with teamwork (Schwaber and Beedle 2002).
Scrum process includes three phases:
The pre-game phase includes two sub-phases:
- Architecture/High level design
- Definition of the system being developed.
- A Product Backlog list is created containing all the requirements that are currently known.
- The requirements are prioritized and the effort needed for their implementation is estimated.
- The product Backlog list is constantly updated with new and more detailed items, as well as with more accurate estimations and new priority orders.
- Planning also includes the definition of the project team, tools and other resources, risk assessment and controlling issues, training needs and verification management approval.
- The high level design of the system including the architecture is planned based on the current items in the Product Backlog.
- In case of an enhancement to an existing system, the changes needed for implementing the Backlog items are identified along with the problems they may cause.
- A design review meeting is held to go over the proposals for the implementation and decisions are made on the basis of this review.
Development phase (Game phase)
- This phase is treated as a "black box" where the unpredictable is expected.
- The system is developed in Sprints
Sprints are iterative cycles where the functionality is developed or enhanced to produce new increments.
Each Sprint includes the traditional phases of software development: requirements, analysis, design, evolution and delivery phases.
One Sprint is planned to last from one week to one month.
The working tools of the team are Sprint Planning Meetings, Sprint Backlog and Daily Scrum meetings.
Sprint Planning meeting: A Sprint Planning Meeting is a two-phase meeting organized by the Scrum Master. The customers, users, management, Product Owner and Scrum Team participate in the first phase of the meeting to decide upon the goals and the functionality of the next Sprint (see Sprint Backlog below). The second phase of the meeting is held by the Scrum Master and the Scrum Team focusing on how the product increment is implemented during the Sprint.
Sprint Backlog: Sprint Backlog is the starting point for each Sprint. It is a list of Product Backlog items selected to be implemented in the next Sprint. The items are selected by the Scrum Team together with the Scrum Master and the Product Owner in the Sprint Planning meeting, on the basis of the prioritized items and goals set for the Sprint. Unlike the Product Backlog, the Sprint Backlog is stable until the Sprint (i.e. 30 days) is completed. When all the items in the Sprint Backlog are completed, a new iteration of the system is delivered.
Daily Scrum meeting: Daily Scrum meetings are organized to keep track of the progress of the Scrum Team continuously and they also serve as planning meetings: what has been done since the last meeting and what is to be done before the next one. Also problems and other variable matters are discussed and controlled in this short (approximately 15 minutes) meeting held daily. Any deficiencies or impediments in the systems development process or engineering practices are looked for, identified and removed to improve the process. The Scrum Master conducts the Scrum meetings. Besides the Scrum team also the management, for example, can participate in the meeting.
Sprint Review meeting: On the last day of the Sprint, the Scrum Team and the Scrum Master present the results (i.e. working product increment) of the Sprint to the management, customers, users and the Product Owner in an informal meeting. The participants assess the product increment and make the decision about the following activities. The review meeting may bring out new Backlog items and even change the direction of the system being built.
- This phase is entered when an agreement has been made that the environmental variables such as the requirements are completed.
- In this case, no more items and issues can be found nor can any new ones be invented. The system is now ready for the release and the preparation for this is done during the post-game phase, including the tasks such as the integration, system testing and documentation.
Roles and responsibilities
Scrum Master: Scrum Master is responsible for ensuring that the project is carried through according to the practices, values and rules of Scrum and that it progresses as planned. Scrum Master interacts with the project team as well as with the customer and the management during the project.
Product Owner: Product Owner is officially responsible for the project, managing, controlling and making visible the Product Backlog list. He is selected by the Scrum Master, the customer and the management. He makes the final decisions of the tasks related to product Backlog.
Scrum Team: Scrum Team is the project team that has the authority to decide on the necessary actions and to organize itself in order to achieve the goals of each Sprint. The scrum team is involved, for example, in effort estimation, creating the Sprint Backlog, reviewing the product Backlog list and suggesting impediments that need to be removed from the project.
Customer: Customer participates in the tasks related to product Backlog items for the system being developed or enhanced.
Management: Management is in charge of final decision making, along with the charters, standards and conventions to be followed in the project. Management also participates in the setting of goals and requirements.
Practices Product Backlog
- Defines the work to be done in the project
- A prioritized and constantly updated list of business and technical requirements for the system being built or enhanced
- Include features, functions, bug fixes, defects, requested enhancements and technology upgrades.
- Effort estimation is an iterative process, in which the Backlog item estimates are focused on a more accurate level when more information is available on a certain Product Backlog item.
- The Product Owner together with the Scrum Team(s) are responsible for performing the effort estimation.
**Reference:** *Software Engineering A Practitioner's Approach (7th Ed.) ~ Roger S. Pressman*