Scrum is a framework for developing and maintaining complex products. It is an incremental and iterative development process. The entire development process in Scrum consists of several short Sprint cycles. A short Sprint cycle is called a Sprint, and the recommended Sprint length is 2-4 weeks. The product backlog is used to manage stories. The product backlog is a list of stories sorted by business value, and the items are mainly user stories. The Scrum team always first develops stories of higher value to customers. During the Sprint, the Scrum team selects the stories with top priority from the Product Backlog for development. Then the selected stories are discussed, analyzed and estimated at the Sprint Planning meeting to form the Sprint backlog. At the end of each Sprint, the Scrum team will deliver the increments. Scrum originated in software development projects, but it is suitable for any complex or innovative projects.
The SCRUM framework includes 3 roles, 3 artifacts, 5 events, and 5 values
1. Product Owner
2. Scrum Master
3. Development team
1. Product Backlog
2. Sprint Backlog
3. Product increment
1. Sprint (Sprint is an event that includes the following 4 events)
2. Sprint Planning Meeting
3. Daily Scrum Meeting
4. Sprint Review Meeting
5. Sprint Retrospective Meeting
1. Commitment: make a commitment to the goal
2. Focus: focus on the work you promised
3. Open: everything in the Scrum is open to everyone
4. Respect: everyone has his unique background and experience
5. Courage: have the courage to make promises, fulfill promises
Scrum is a process based on empirical process control theory (empiricalism). Empiricism advocates that knowledge is derived from experience and that decisions are made based on what is known. Scrum applies an iterative and incremental approach to optimize predictability and control risks.
The three pillars of Scrum support the empirical process control: transparency, inspection and adaptation.
Transparency refers to maintaining a high degree of visibility in all aspects of the software development process, and all aspects that affect the delivery are transparent to everyone involved in it and those who manage the product. People who manage the product should not only be able to oversee the process, but also understand what they oversee. In other words, when a task is done, the definition of done must be the same as the actual done.
All aspects of the development must be verified frequently to ensure that major deviations in the process can be detected in time. When determining the frequency of inspection, it is necessary to consider that the inspection will cause all processes to change. If the inspection frequency exceeds the tolerance level, problems will come. Fortunately, this does not happen in software development.
If one or more aspects of the process are found that do not meet the acceptance criteria during the inspection, and the product is unqualified. Then the process or materials need to be adjusted. Adaptions must be implemented as soon as possible to reduce more deviations.
In Scrum, three activities are used to verify and adapt. Daily Scrum meetings are to check the progress of Sprint goals and adapt to optimize the value of the work tomorrow; Sprint Review and Planning meetings are to check the release goals and adapt to optimize the value of the next Sprint; Sprint Retrospective meetings are to review the completed Sprint and see what improvements can be done to make the next Sprint more efficient, more satisfying, and more joyful.