SCRUM - Improving the Profession of Software Delivery
SCRUM is a team of eight individuals in Rugby. Everyone in the pack acts together with everyone else to move the ball down the field in small incremental steps. Teams work as tight, integrated units with the whole team focusing on a single goal.
In today’s competitive era, software and product development has become a much bigger challenge than anytime before. Project or Product sponsors not only have the challenges or pressure to compete with existing products in market but to design and develop a better system for the future. This leads to change of requirements during the project. Keeping teams motivated and focused is another challenge of the shifting business demands and requirements.
SCRUM works well in this scenario because it enables the teams to be flexible with the project scope by defining a prioritized list of features.
Scrum at a Glance
SCRUM is a set of interrelated practices and rules that optimize the development environment, reduce organizational overhead, and closely synchronize market requirements with iterative deliverables.
Based on modern process control theory, SCRUM causes the best possible software to be constructed given the available resources, acceptable quality and required release dates. A key principle of SCRUM is its recognition that during a project, the customers can change their minds about what they want and need (often called requirement churn), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. SCRUM can be implemented at the beginning of a project or in the middle of a project or product development effort that is in trouble. Useful product functionality is delivered in each iteration as requirements, architecture, and design emerge Solution.
The Scrum Process
SCRUM is a process skeleton that includes a set of practices and predefined roles. The main roles in SCRUM are the Scrum Master who maintains the processes and works similarly to a project manager, the Product Owner who represents the stakeholders, and the Team that includes the developers.
Diagram: Scrum Framework (img source: scrum.org)
The product backlog is a high-level document for the entire project. The set of features that go into a sprint come from the product backlog, which is a prioritized set of high-level requirements of work to be done.
The sprint backlog is a very detailed document containing information about how the team is going to implement the requirements for the upcoming sprint. Which backlog items go into the sprint form product backlog is determined during the sprint planning meeting. During this meeting, the Product Owner informs the team of the items in the product backlog that he wants completed. The team determines how much of proposed backlog they can commit to complete during the sprint. During a sprint, no one is able to change the sprint backlog, which means that the requirements are frozen for that sprint. After a sprint is completed, the team demonstrates the use of the software.
Sprint is a time-boxed period of time (quite often 30 days) during which the Team works to turn the selected Product Backlog items into an increment of potentially demonstrable product functionality. At the end of each sprint, team must produce “demonstrate-able”, “release-able” software. After just a few sprints, the software is used in sales demonstrations. The product can be released to market early with only the highest priority features.
Product Owner, the Product Owner represents the voice of the customer. They ensure that the SCRUM Team works with the prioritized backlog from a business perspective. The Product Owner writes User Stories, prioritizes them, and then places them in the Product Backlog. Scrum
Master, (or Facilitator)A Scrum Master, whose primary job is to remove impediments to the ability of the team to deliver the sprint goal, facilitates SCRUM. The Scrum Master is not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences. The Scrum Master ensures that the SCRUM process is used as intended. The Scrum Master is the enforcer of rules.
Team, The team has the responsibility to deliver the product. A small team (5-9 people) with cross-functional skills such as designer, developer, tester, etc. to do the actual work.
The SCRUM Meeting
Each day during the sprint, a project status meeting occurs. This is called a SCRUM or "the daily standup". The SCRUM has specific guidelines: During the meeting, each team member answers three questions:
- What have you done since yesterday?
- What are you planning to do by today?
- Do you have any problems preventing you from accomplishing your goal? (It is the role of the Scrum Master to take a note of these impediments.)
- What went well during the sprint?
- What could be improved in the next sprint?
- The meeting starts precisely on time.
- Often there are team-decided punishments for tardiness (e.g. money, push-ups)
- The meeting is time boxed at 15 minutes regardless of the team's size.
- All attendees should stand (it helps to keep meeting short)
- The meeting should happen at the same location and same time every day
- Improved communication between stakeholders and teams through regular demonstrations and the prioritized product backlog
- Testing being conducted throughout, rather than squeezed at the end
- SCRUM enables the creation of self-organizing teams by encouraging communication across all team members and disciplines that are involved in the project.
- A “release-able” solution at the end of each sprint
At the end of every sprint cycle, a sprint retrospective is held at which all team members reflect about the past sprint. The purpose of the retrospective is to make continuous process improvement. Two main questions are asked in the sprint retrospective:
The meeting starts precisely on time.
Often there are team-decided punishments for tardiness (e.g. money, push-ups)
The meeting is time boxed at 15 minutes regardless of the team’s size.
All attendees should stand (it helps to keep meeting short)
The meeting should happen at the same location and same time every day
Advantage SCRUM – A higher-quality solution:
Improved communication between stakeholders and teams through regular demonstrations and the prioritized product backlog
Testing being conducted throughout, rather than squeezed at the end
An On-Schedule solution:
In a nutshell, SCRUM provides a way for the business to maximize its ROI by using iterative development to rapidly create working software. It ensures that the team is always working to deliver the highest priority features
Scrum enables the creation of self-organizing teams by encouraging communication across all team members and disciplines that are involved in the project.
A “release-able” solution at the end of each sprint
The SCRUM Approach - The Digital Experience
Uncovers many hidden issues that exist within teams in beginning such as Project & Task estimation, Lack of product focus/priorities, Dependencies etc.
Increased Clarity & Communication:
Force and clears product expectations between both product owner and product team through dialogue.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Increased Productivity, Improved Ownership & Accountability, Enhanced Planning, Improved Collaboration & Cooperation, Focused Quality are few salient advantages Digital has experienced with SCRUM Implementation.