Introduction to Scrum Agile Development Practice (Part 1)

2023-03-31 15:30:00
Zhou Wu
Source
Translated 1091
Summary : The incremental and iterative development process of Scrum is a crucial aspect of product development in agile methodologies. This article's author discusses the Scrum method in agile development, highlighting its features and comparing it to traditional development methods. Readers can learn about Scrum and its benefits from this article, which I hope will prove useful.

Once upon a time, a pig and a chicken were strolling down a road. The chicken proposed to the pig,

"Hey pig, what if we start a restaurant?"

The pig pondered over it and asked,

"That sounds interesting, but have you thought about what we would name it?"

After contemplating for a moment, the chicken suggested,

"What if we call it HAM-N-EGGS?"

The pig politely declined, stating,

"I would have to be fully invested in the venture, but you would only be partially involved."

The story featuring a pig and a chicken is the most emblematic tale from the Scrum story series, featuring two characters.


In agile development, Scrum is an incremental and iterative development process that consists of a set of practices and process structures with defined roles. The key roles in Scrum are the Product Owner (PO), Scrum Master (SM), and development team members, who form the core of the Scrum team. They are the "pigs" and must be fully dedicated to the project.


On the other hand, users, customers, and bosses represent the "chicken" roles, demanding and participating in the project but not being responsible for its follow-up outcomes. However, their feedback on the product is crucial, and it must be taken into consideration, making it challenging for the PO and SM to manage the relationship between these two roles. Before introducing Scrum formally, it is essential to discuss the differences between traditional and agile development methodologies.

I. Traditional Development

Traditional software development follows a waterfall development process, which divides the entire development process into stages, such as requirements gathering, design, coding, testing, and release. The completion of each stage is a prerequisite for entering the next, and the entire process adheres to a pre-established plan.


However, this pre-planned approach has its drawbacks. Each stage is heavily dependent on the previous one, which serves as its input. If the quality of the input is inadequate, it will significantly impact the output's quality in the subsequent stages, leading to stagnation and eventual project failure or delays.


Additionally, the market demand is rapidly changing, making it challenging to gather a comprehensive collection of product requirements. Moreover, the commitments made during the project's initial stages are difficult and costly to alter in response to changing requirements. Meanwhile, the ever-evolving technology landscape introduces uncertainties about the feasibility of defined functions.


Therefore, two dimensions - the clarity of requirements and the certainty of function realization - are considered. When the ambiguity of requirements and the uncertainty of function realization exceed a certain range, it indicates a complex system. The traditional waterfall development approach is no longer suitable, and the agile development methodology emerged as a response to this scenario.

Fix Feature, Flextime

II. Agile Development

Agile development changes the traditional “Fix Feature, Flex Time” approach to “Fix Time, Flex Feature.” This shift is driven by the market and technological changes, which make it difficult to solidify the product definition and market demand.

Fixtime, Flex Feature

Agile development recognizes that fixing resources and using them as constraints can lead to the maximum realization of the “scope” and shift from “plan-driven” to “value-driven” approach.


In 2001, the Agile Manifesto was created to establish the principles of agile development:

  • Prioritizing individuals and interactions over processes and tools;
  • Prioritizing working software over comprehensive documentation;
  • Prioritizing customer cooperation over contract negotiation;
  • Prioritizing responding to change over following a plan;
  • Prioritizing excellence over simple execution.

Note that these principles don't advocate against any of the options, but instead serve as the basis for decision-making when there is a conflict.


Compared to waterfall development, agile development is closer to the final market environment and has better adaptability. The agile manifesto emphasizes the value of humans and enables teams to unlock their full potential.


Agile development leverages the value of human beings in software development, prioritizes valuable product outcomes, and fosters individual initiative and creativity.


Many agile development methods have emerged under the guidance of the Agile Manifesto. Sprint and iterative “Scrum” methods further demonstrate the agile values represented by the "Agile Manifesto" through specific implementation methods.

III. Scrum Introduction

The Scrum methodology originally referred to rugby, where players battle for the ball at the foul spot when a foul is committed. In Scrum product development, team members play their respective roles and work together to bring benefits to the team, just like players sprinting towards their goal. The success of the final product depends on the team's cooperation and determination to win, rather than the coach's command.


Scrum was first mentioned in the context of product development in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka in their article "The New New Product Development Game." In 1993, Jeff Sutherland defined the Scrum process for software development and began implementing it at Easel. He and Ken Schwaber standardized the Scrum framework in 1995 and released it publicly at OOPSLA 95. Scrum became one of the agile methods under the Agile Manifesto and Principles released in 2001, leading to the establishment of the Agile Alliance. Ken Schwaber and Mike Cohn co-founded the Scrum Alliance in 2002.


Scrum enables the multidisciplinary team to work together throughout the product development process, with the process generated by continuous interaction among team members rather than predefined stages. This approach fosters greater adaptability and collaboration, promoting better outcomes.

IV. Features of Scrum

1. Flexibility in Goals

In Scrum, senior management provides a broad strategic direction to initiate the project and sets a challenging goal, while giving the project team the freedom to complete the project with maximization. This approach puts pressure on the team and pushes them to unleash their creativity.

2. Self-Organizing Project Teams

When project teams are faced with ambiguity and volatility, they take on a self-organizing character, requiring them to operate like start-up teams, taking initiative and risk, and setting an independent agenda. A group that exhibits autonomy, self-transcendence, and cross-pollination has the ability to self-organize.

  • Autonomy: The company provides guidance, funding, and moral support, but high-level executives are not involved in day-to-day work, allowing the team to set its own direction.
  • Self-transcendence: The project team continuously pursues the "limit" starting from the guidelines proposed by the headquarters, establishing their own goals and continuously improving them throughout the development process.
  • Cross-pollination: The project team is composed of members with different functional specialties, thought processes, and behavioral patterns, fostering diversity and breeding new ideas and concepts (similar to the hacker growth concept, where diverse teams collide to generate more creative experiments).

3. Overlapping Development Phases

In the waterfall approach, a project follows a step-by-step process, transitioning from one phase to the next only after all previous phase requirements have been met. Although this method controls risk with checkpoints, it limits integration and a bottleneck at any stage can slow or stop the entire development process.


Scrum, on the other hand, utilizes an overlapping approach with phases that considerably overlap. This allows the team to absorb the “noise” generated throughout the development process, reinforces shared responsibility and cooperation, and stimulates engagement and commitment.


The overlapping approach places a strong focus on problem-solving and encourages teams to be proactive, develop diverse skill sets, and increase sensitivity to changing market conditions. Teams must synchronize their progress to meet deadlines.

4. Multiple Learning

With Scrum, team members have constant contact with external sources of information, allowing them to respond quickly to changing market conditions. They engage in a process of constant trial and error to reduce the number of options they need to consider.


Scrum also enables team members to acquire a broad knowledge and diverse skill set, creating a versatile team that can quickly solve a range of problems.

5. Subtle Control

Although Scrum project teams have a certain degree of independence, management establishes enough checkpoints to prevent instability, ambiguity, and tension from devolving into chaos.


Instead of tight controls that impair creativity and spontaneity, Scrum emphasizes “self-control,” “control through peer pressure,” and “control through love,” collectively referred to as “subtle control.”

6. Organizational Transfer of Learning

The drive to build knowledge across layers and functions is only one aspect of learning. Scrum project members also have an equally strong drive to transfer their learning to others outside the group, to subsequent new product development projects, or within the organization's other departments.


Implementing Scrum requires obtaining recognition and understanding from top management, who should formulate performance results and delegate authority during the implementation process. Each member should realize that project results are their own business, not just the leader's business.


Functional R&D teams must also obtain recognition and support from various demand parties and share the maximum benefits across the organization. Failure to do so may lead to misunderstandings and implementation failure.


Therefore, implementing Scrum requires balancing the psychological harmony between the two roles of “pig” and “chicken.” The “chicken” cannot think that the “pig” is lazy, and the “pig” cannot imagine the “chicken” as only crowing in the middle of the night. Pigs and chickens must understand each other and reach a balance point in the project development process to complete the entire project smoothly.


However, the key to successfully implementing Scrum is obtaining recognition and understanding from top management. If Scrum can bring efficient and high-quality development results, the management should understand the meaning, pros, and cons of Scrum.

Write a Comment
Comment will be posted after it is reviewed.