Scrum is a way for teams to work together to develop a product. Product development, using Scrum, occurs in small pieces, with each piece building upon previously created pieces. Building products one small piece at a time encourages creativity and enables teams to respond to feedback and change, to build exactly and only what is needed.
Scrum vs Sequential
It is imperative that modern software engineering processes be able to look beyond sequential development processes that work in a repetitive fashion so that they can focus better on delivery time, ROI and adapting to evolving customer needs in an efficient manner. In order to meet these needs, Scrum follows an iterative and incremental approach to software development. It progresses in a consecutive series of time-boxed iterations called sprints, each of which is typically 2-4 weeks long. Therefore, Scrum works best for projects where the requirements are constantly changing. Scrum gives value to the social aspect in software engineering and allows team members to work independently and creatively while also encouraging cohesion in the team. Since Scrum is a light weight process, it can also work as a wrapper, which allows the team to combine Scrum with other agile process frameworks such as the RUP.
A Visual Introduction to Scrum
- The scrum team usually contains anywhere from 5-10 people although scrum also offers convenient scalability. None of the traditional software engineering team roles are upheld with Scrum. Instead the team gets together and uniformly decides to commit to a task during each sprint session and then push forward to complete it together, thus building a rapport among the team members.
- The product owner is the key stakeholder or the key user in the project. He usually also represents other users and customers.
- The Scrum Master is responsible for ensuring that the product is being built the right way. He ensures that the team is being productive by assisting the team with implementing the Scrum process. He also helps remove any obstructions to progress during the sprint.
- The first step that takes place at the beginning of each sprint is a sprint planning meeting where the product owner and the software development team discuss the highest priority items on the product backlog.
- They figure out how many items they can actually commit to completing during that sprint and create a sprint backlog which is essentially the list of tasks that are to be performed during the sprint along with an estimate for the amount of time each will require.
- At the end of each sprint, the team is required to produce and demonstrate a potentially shippable product increment.
- During each sprint session, the team also attends daily scrum meetings of no more than 15 minutes to discuss their progress and any possible hindrances in the way of delivering working, high-quality software.
- At the end of each sprint, a sprint review is conducted where the team has to demonstrate the functionality that was added during the sprint. The idea is to obtain feedback from the product owner and other users whose feedback can be incorporated into the functionality. It may also mean adding more items to the scrum product backlog.
- Another activity called the sprint retrospective is performed as well at the end of each sprint in which the whole team including the Scrum Master and the Product Owner take part in order to reflect on the sprint that just ended and identify innovative ways to improve in the upcoming sprint.