Scrum is a framework within which people/team can address complex problems, while delivering products with highest possible value.
It is not a process or technique for creating products; rather, it is a framework that can be used by organizations for product development. Ken Schwaber and Jeff Sutherland developed Scrum in 1990s;
Scrum insists on Product development by breaking down it into simpler and smaller pieces and by building basis small pieces first and building other pieces upon the earlier built pieces. Building one piece at a time makes the team member’s job easier, simpler and allows them to be creative and faster.
The name ‘Scrum’ came from the game Rugby. In Rugby, scrum refers to the manner of restarting a game after an obstacle.
The Scrum Framework
Scrum is a form of agile software development (In fact the best for of agile development). It is an iterative and incremental framework for software & product development. The whole development team works towards a common objective in Scrum. Scrum differs from the traditional, sequential approach. While the conventional approach limits the customer from changing the requirements after a point, Scrum allows the customer to change his requirements throughout the lifecycle.
Scrum insists on a human approach for achieving the goal and target. To describe this, a famous story – The chicken and the Pig is used by Scrum trainers. The story is as below:
One day a chicken comes to a pig and asks if they can start a restaurant together.
The pig asks, “OK. What shall we call it as?”
The chicken replies “Ham and Eggs” and smiles.
The pig says “Oh No. I am not in for this. I am committed while you are only involved.”
By this story, the Scrum concept insists that the development team (Who are committed) is given priority on any meeting and only they talk on the Scrum meeting.
Scrum Roles and Events
The Scrum framework insists that any organization has the below three role:
- Product Owner: One who represents the customer and collects the VoC.
- Development Team: A cross functional team of 3-9 members who are involved in delivering the product
- Scrum Master: One who facilitates Scrum, and acts as a buffer between the team and any obstacles. He is accountable for removing any obstacles and guides the team in adhering to the schedule.
One of important terminologies in Scrum that we should learn is ‘Sprint’.
Sprint is a basic unit in product development under Scrum framework. A Sprint is strictly restricted by time schedule. Every sprint has a defined and complete task that should be finished within the specified time line (Typically from two weeks to one month). Every Sprint is initiated with a Sprint meeting that discusses the goal and timelines of the Sprint. At the end also, the Sprint is followed by a retrospective meeting that discusses the progress, obstacles and learning.
Similar to a Sprint meeting there are daily meetings that happens during the product development. The meeting runs only for 15 minutes, where the development team discusses about the following:
- What work has been completed?
- What work has to be done now?
- What are the challenges faced?
The Scrum Master must be a part of all the daily meetings and note the challenges faced by the team. He should facilitate to address and solve the problems highlighted so that the tasks are completed within the schedule and as desired.
Benefits of Scrum
- Scrum delivers products quicker due to its different strategy
- Scrum allows Clients to make changes to the requirements and priorities
- Scrum creates transparency in the entire development process and thus reduces confusion due to lack of information
- Scrum put Decision Making authority to the lowest level – The development team who knows the basic facts about the product
- Scrum enables and motivates team members by putting them at the center of the development model.
- Scrum makes the product development cycle time more predictable and easily achievable.
Thus Scrum is a most sought after approach in Software development field that most companies are adapting to. Learning and using principles of Scrum will definitely help a Quality management professional in working together with software team and helping them to streamline and continuously improve their processes.