This is a personal blog, Hiro's room!

Hiroom.

What is Agile Software Development?

Cover Image for What is Agile Software Development?

In early 2001, 17 software developers came together to discuss the future of software development in Snowbird, Utah. They found consensus around four core values which is written as Agile Manifesto:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Even now, the Manifesto is still our guide, in other words, no one has achieved success without following any of the values. A type of development methodology that is following the Manifesto is called Agile Software Development. Agile Software Development - also referred simply as Agile - is an iterative approach to focus on continuous releases and incorporating customer feedback with every iteration. In short, Agile is important for software development to delight customers and be more competitive.

In Agile, effective collaboration across different teams is essential due to speedy development and flexibility in time or scope. That is why, I would like to introduce a popular agile framework here, called Scrum. Scrum is an Agile framework that helps teams work together strongly. It is based on an idea from rugby, specifically that functioning as a team, not as a group of individuals, is key to success. In Scrum, a sprint is set as a short period of time so that specific work has to be done intensively with one team. One cycle of Scrum is like below:

Product Backlog → Sprint Planning → Sprint Backlog → Sprint → Sprint Review → Sprint Retrospective → Product Increment

scrum

Let's consider a team consists of a product manager (= product owner), a scrum master and engineers, and see how each phase goes.

Product Backlog

This is the starting point of Agile development. The product manager extracts the primary list of features & user stories that need to be implemented based on the PRD. It is kind of the team's To-Do list. Every feature in the list should be prioritized by the product manager. The product backlog is constantly re-visited, re-prioritized and maintained by the product manager depending on the market's situation or anything (e.g. features may no longer be relevant, problems can get solved in other ways). The team also reviews the product backlog to ensure that it is ready for the next sprint planning, which is known as refinement.

Sprint Planning

The features & user stories to be scoped during the upcoming sprint are organized in a meeting by the scrum master. In the meeting, the scrum team reviews the product backlog and select the items that the team will work on during the sprint. In addition, time schedule of the entire development (sprint length) is estimated. Two weeks is a pretty typical length for a sprint, though time length of a sprint is flexible depending on scope complexity and so on.

Sprint Backlog

This is a subset of the product backlog that contains the items that the team has committed to completing during the sprint. The engineers investigate in detail how to implement the features scoped in the current sprint, which are put into Tech Spec or Design Doc. If there are any difficulty to achieve the product requirements from technical aspects, the scope can be negotiated to change. The required time of developing each item to complete is also estimated by the engineers, which is often evaluated by story points.

Sprint

It is the actual time period when the scrum team works together to complete the implementation. Even during this period, the scope can be re-negotiated between the product manager and the engineers if necessary. Some bugs might be found during development. The product manager prioritizes bug fixes and decides if they should be fixed in the current sprint. The team meets daily for a stand-up meeting (daily scrum) about 15-30 minutes usually in the morning. The main objective of the daily scrum is to be on the same page with everyone on the team by sharing progress and making a plan for the next 24 hours.

Sprint Review

At the end of the sprint, the scrum team gets together to view a demo casually. It is a time to celebrate the team for hard work and create more personal connections across the team. The team can also present the work they have completed to other stakeholders. The product manager can judge whether or not to release the implemented features after QA testing. Moreover, A/B tests should be prepared if necessary.

Sprint Retrospective

After the sprint review, the scrum team discusses what worked well during the sprint, what problems it encountered and how those problems were (or were not) solved. The team should identify the helpful changes for the next sprint to create an environment where the team can work more efficiently. A retrospective is an opportunity to improve the future by reflecting on the past.

Product Increment

Finally, the completed work should be integrated into the product regardless of whether the product manager decides to release it. An increment is a concrete milestone toward the product goal. Each increment is additive to all previous increments (the product) and thoroughly verified that all increments work together.

Overall, these seven steps help ensure that the team is continuously delivering value to the customer while also improving the process and quality of the software.

# engineering# teamwork
Copy Link to Share

Related Posts

Benefits and challenges in data-driven marketing

As consumer behavior has been more diverse, nowadays it has become difficult to turn consumers around by providing information centrally through mass marketing. In order to fulfill individual needs, it is quite hard to succeed in marketing by only experience and intuition.

# data# marketing

Create your product strategy before jumping into roadmap and backlog

Before diving into the nitty-gritty of building your product roadmap or developing new features, your product strategy should be defined to make the right decisions in the ever-changing world. A product strategy is a high-level description of what the business wants to achieve with its product and how to achieve it.

# product management# teamwork

After you joined a new team as a product manager

You finally joined a new team as a product manager. Congrats! Here, we discuss what you should do as a product manager in the first week, the first 30 days and the first 60 days after you joined the team.

# product management# teamwork

Introduction to product vision with examples

A product team needs to have a clear vision of where to take the product in order to be fully committed. A product vision describes the future state of a product in a long-term and what problems it tries to resolve or what ambitions it tries to fulfill.

# product management# teamwork