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.
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.
Large teams are a challenge to any management. A hierarchical structure thus is perceived to be a better solution to manage the different aspects. However the enchantment of command, power and control quite often overwhelms the responsibility and authority involved in a hierarchical role. These kinds of structures thus leave a scope for delays in decision-making, and a chance of autocratic attitudes killing creative energies. Whereas, small autonomous teams therefore present a better answer to these problems. The small teams are:
- Self- organizing
- Better motivated
So let's see how to use Scrum for small development teams to get better results:
- The product owner is the key stakeholder or the key user in the project. He usually also represents other users and customers. A product owner should take ownership of the product backlog. During the development process, any team member can add anything to the product backlog, but only the product owner has the right to prioritise it.
- 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.