Scrum (Rugby Team), a software development model is a kind of agile development, which has gradually become popular in the past ten years.
The basic assumption of Scrum
Developing software is like developing a new product. The final procedures of a software product cannot be defined from the beginning. The process requires R&D, creativity, trial and error, so there is no fixed process that can guarantee the success of the project.
Scrum compares a software development team to a football team. It has a clear and highest goal, is familiar with the best model and technology required in the development process, has a high degree of autonomy, close communication and cooperation, and ensures to solve various challenges every day with a high degree of flexibility; Each stage has a clear progress towards the goal.
The Scrum Process
The Scrum development process typically begins with a 30-day (or shorter) phase, starting with the customer’s new product requirements specification, with the development team and the customer picking which parts of the specification to complete at the beginning of each phase, the development team must do its best to deliver the results after 30 days, and the team meets 15 minutes a day to review each member’s progress and schedule, understand the difficulties encountered, and try to troubleshoot.
The Advantages of Agile approach
What is the advantage of Scrum over the traditional development model. A distinctive feature of the Scrum model is that it responds to changes. It can respond to changes as quickly as possible.
When a traditional system focuses on upfront planning where factors like cost, scope, and time are given importance, the agile approach gives prominence to teamwork, customer collaboration, and flexibility. As requirements specifications change, the agile team can remain mobile and able to respond to those changes. However, that doesn’t necessarily mean that the adaptive planning strategy is always better than a predictive planning strategy. Let’s compare these two project development strategies in further detail.
Thus, the traditional development (waterfall, also known as plan-driven) approach is linear, with all phases of the process occurring sequentially. This approach depends on predictable tools and predictable experiences. Each project follows the same lifecycle, including feasibility, planning, design, construction, testing, production, support, and so on, as shown below.
The whole project is planned in advance without any room to change the requirements, for example PMI’s PMBOK and PRINCE2 are strict and highly controlled. They outline the different phases of project planning from start to finish and assume that you already have all the requirements and information you need up front.
Agile is considered a more modern software development strategy, as it was primarily designed to overcome some of the shortcomings of the more predictive waterfall approach. It is a software development model that encourages iterative development and testing throughout the software development life cycle of a project.
Overview of Scrum Process
Scrum is a framework that prescribes roles, events, artifacts, and rules/guidelines to implement that mindset. In other words, Agile is the mindset and Scrum is the framework that prescribe a process for implementing the agile philosophy.
Scrum and agile are not the same but scrum is one of the agile processes. They are based in iterative development. The requirements and solutions of agile obtained by the association between the cross-functional and self-organization teams, and when implemented properly can help teams address complex problems by incrementally delivering products of the highest value while mitigating risk.
Scrum involves prompt inspection and adaptation, teamwork is enhanced by leadership philosophy, accountability and self-organization, best practices of engineering which helps in the delivery of prompt high-quality software.
Key Terms of Scrum
Backlog: all tasks that can be predicted, including all functional and non-functional tasks.
Sprint: The time period for a generational development, generally at most 30 days as a cycle. During this time, the development team needs to complete a formulated backlog, and the final result is an incremental and deliverable product.
Sprint backlog: The tasks that need to be completed in a sprint cycle.
Time-box: A time slot for the meeting. For example, the time-box of each daily scrum meeting is 15 minutes.
Sprint planning meeting: Held before starting each sprint. Usually one day (8 hours). The task to be formulated in this meeting is: the product owner and team members decompose the backlog into small functional modules, decide how many small functional modules need to be completed in the upcoming sprint, and determine the task priority of this Product Backlog. In addition, the meeting needs to discuss in detail how to complete these small functional modules as required. The workload of these modules is calculated in hours.
Daily Scrum meeting: held by members of the development team, usually 15 minutes. Each development member needs to report three projects to the Scrum Master: What has been completed today? Have you encountered obstacles? What are you going to do? Through this meeting, team members can understand the progress of the project with each other.
Sprint review meeting: After each Sprint, the team will present the results of the Sprint to the Product Owner and other related personnel. Generally, this meeting lasts for 4 hours.
Sprint Retrospective occurs after the Sprint Review and prior to the next Sprint Planning. This is at most a three-hour meeting for one-month Sprints. The retrospective session is basically an “improvement” meeting held to find ways and means to identify potential pitfalls, past mistakes, and seek out new ways to avoid those mistakes, which are attended by all — the product owner, scrum master, development team members, and optionally with the stakeholders.
Scrum Master: A team member responsible for supervising the entire Scrum process and revising the plan.
Product Owner who owns the product on behalf of the company is a part of a Scrum team. However, a product owner has no authority over other members of the team, same as the Scrum Master. A Product Owner is responsible for looking after a product for an extended period of time and is accountable for achieving product success. As the product owner, you should directly interact with the customers and users, the development team, and other key stakeholders, as the picture below shows.
A Scrum Team is a collection of individuals (typically between five and nine members) working together to deliver the required product increments. The Scrum framework encourages a high level of communication among team members, so that the team can:
- Follow a common goal
- adhere the same norms and rules
- show respect to each other
How Does Scrum Work?
A Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles (product owner, scrum master, development team and other stakeholder), events, artifacts, and rules.
To start a Scrum process, a product owner creates a prioritized wish list called a product backlog. During sprint planning the backlog is sized for complexity and business value (priority). The product owner (client) and the development team determine which backlog items get added to the sprint. The team has a certain amount of time (called a sprint, usually two to four weeks) to complete its work, but it meets each day to assess its progress (daily Scrum). Along the way, the Scrum Master keeps the team focused on its goal. At the end of the sprint the team reviews their progress, shows the client the working product, and reviews what went well or what they need to improve on for the next sprint. Then the cycle repeats.