Product Development using Agile Methodology — Implementation at Zomato

Nilesh Singh
10 min readJul 31, 2019

--

Product Development

“A traditional project manager focuses on following the plan with minimal changes, whereas an agile leader focuses on adapting successfully to inevitable changes.”
Jim Highsmith

Product Development Process or Product Development Lifecycle is the series of steps that a product goes through at each stage of its development. This consists of the following elements:

  1. Conception of the idea
  2. Market and User Research
  3. Product Planning
  4. Design
  5. Development
  6. Testing
  7. Deployment
  8. Maintenance

An Introduction to Waterfall Methodology

A Traditional Waterfall Model

One of the most traditional methodologies practiced in the industry, is the Waterfall Methodology. As the name goes, in a Waterfall model, the progress flows in a sequential manner, steadily to the final outcome of the cycle. In such a process, requirements are clear upfront; design, development and testing of the feature takes place after collating these requirements. Features that are interdependent are often built using such a methodology.

Though, this fares well in a predictable scenario, Waterfall methodology has its shortcomings when it comes to dealing with unpredictability where the requirements could change based on new information acquired, user feedback, or incorrect resource estimates.

To tackle this, Agile Methodology was born.

Before diving deeper into Agile, let us first begin by understanding iterative and incremental processes of Product Development.

Iterative and Incremental Process

Example of Iterative Process (Source: https://www.ansolabs.net)

Iterative process is one in which features are released to the user in a staggered manner, overtime, with the deliverable being delivered in parts with clear requirements available for a portion of final feature. This is cost effective and helps gain user insights at an early stage, without spending much effort of finishing the entire project.

Example of Incremental Process (Source: https://www.jonahgroup.com/blog)

In an incremental process, the requirements need not be 100% clear at the beginning but a holistic image of the final outcome is sufficient to create a low-fidelity working deliverable for the customer. This also allows to make instant changes based on user feedback at the early stages itself. In the next iteration, these changes can be incorporated in the subsequent version of the deliverable.

Agile Methodology

“Intelligence is the ability to adapt to change.”
– Stephen Hawking

Agile methodology came into being to address the shortcomings of the traditional Waterfall model. It is a practice that incorporates incremental and iterative approach to product development, which accommodates for unpredictability and improves overall efficiency.

ImageSource: http://www.professionalqa.com/agile-vs-traditional-development

In an Agile practice, the development and testing are carried out for each stage of product development incrementally, as the final build is completed (in iterations). A larger problem is broken down into smaller sub-tasks or modules. These modules are built, developed and tested in short sprints with the results being evaluated at the end of each sprint. Analysis is carried out for the sprint outcome and requirements are identified for next iteration. This helps is minimizing risk and making the development process more flexible and versatile. It also allows for prioritization of most valued deliverable to the customer, early discovery of possible bugs and incorporating constructive user feedback before next iteration of final product.

There are four core values of Agile practice:

  1. Individual and team interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan
https://www.toolsqa.com/agile/agile-manifesto/
Agile Core Values over Traditional Methodologies (Source: https://www.toolsqa.com/)

Scrum Framework

There are many Agile development frameworks. One of the most commonly used framework is Scrum. Scrum is a subset of Agile, a lightweight process framework that helps to implement Agile practices by breaking down large tasks into smallerStories’, that are incrementally developed and tested at each stage.

Image Source: https://www.scrum.org

The Scrum framework includes:

  1. Product Owner :
    Responsible for communication with stakeholders, creating and maintaining product backlog, responsible for maximizing the ROI on a feature/offering/product.
  2. Scrum Master
    A facilitator to the Scrum Team, responsible for bridging the gap between cross functional teams. Scrum Master keeps the team focused on achieving the goal.
  3. Developers
    Every member of the team is called a developer, as a healthy practice to promote uniformity while at the same time, recognizing the capabilities of each.
  4. Product Backlog
    An artifact created by the Product Owner containing all requirements in the form of epics and user stories. The stories are sorted as per their priority and serve as a requirement portfolio to the developers, conveying broad picture of the final requirement and get everyone on-board.
  5. Sprint
    It is a time-boxed period in which the team accepts some user stories given by the Product Owner and works to convert them to working software at the end of it.
  6. Sprint Backlog
    Top priority items from the Product Backlog that the team will work upon in the sprint are put in the Sprint Backlog. The main goal is to convert a story to a working software/feature.
Image Source: https://peskytruth.wordpress.com/2018/04/14/scrum-methodology/

Agile Implementation at Zomato

Brief Introduction about Zomato

Zomato is a restaurant search and discovery service founded in 2008 by Indian entrepreneurs Deepinder Goyal and Pankaj Chaddah. It currently operates in over 10000 cities across, 24 countries, including Australia and United States. It provides information and reviews on restaurants, including images of menus where the restaurant does not have its own website.
— Wikipedia

Zomato is an online restaurant search platform that provides information on home delivery, dining-out, and cafes. Zomato started with a vision to be the Google of food. Over ten years, Zomato has steadily built both a search and discovery platform that fuels stable and growing transaction businesses. Today, Zomato has multiple products and services that ensure their customers have a great experience while improving the food industry.

Here is my take on implementation of Agile methodology for the given problem statement:

Let’s consider you are a product manager at a company like Zomato. To release any feature, let’s say you have four or five steps like ideation, design, implementation, testing and deployment. And you have 3–4 features like rate/review restaurant, filters for search, online ordering, etc. in line for next releases. How you would go about the development of these features using the Agile methodology, incremental and iterative way of development.

Considering the entire development process to be incremental and iterative, let us start with the first feature being developed in the first iteration, and the subsequent iterations will cover the other two features, respectively. Kindly note that each feature will be developed incrementally, with the highest priority been given to customer value and impact, and further iterations will be an enhancement / modification of the existing functionalities; thereby reducing the burden of a one-off deliverable as in the Waterfall methodology.

Rate or Review a Restaurant

Ideation:
The idea here, is to enable users to rate and review a restaurant and improve their experience while they search for the best dining spot in their locality or order food online. This will provide a neutral platform for them to share their experiences and rate the restaurant. It makes it easy for the user to compare various listings and helps them easily make a choice. Good ratings and reviews add to the credibility of the restaurant which in turn affects its popularity, and in turn, sales.

Design:
The iterative design elements for the given feature would be:

  1. Option to rate a restaurant on a scale of 0–5 stars
  2. Display average restaurant rating next to restaurant name
  3. Option to ‘write a review’ for a restaurant, after the user has rated the place
  4. Display total umber of reviews next to restaurant rating
  5. Create pop-up interface to rate and review restaurant
  6. Feedback form to get user feedback on more points
  7. Option to add images to reviews
  8. Google / Social media platforms integration to rate and review a visited restaurant based on location history when Zomato app is opened the next time.

Testing:
Conducting A/B testing between different variations will help to identify the interface with best UX, thus, minimizing drop-offs. Since, addition of pop-ups is a new feature, sufficient testing would be needed before the best version is rolled out. To begin with,one can start by releasing versions with basic functionalities and improving them in subsequent releases of the product.

Important metrics to be tracked during the testing phase include:

  1. Total ratings and reviews
  2. Bounce rate
  3. Average session duration for rating a restaurant
  4. Average session duration for writing a review
  5. Drop-off point analysis — to know if users are dropping off before/after submitting a rating
  6. Popup / form completion rate

Implementation:

  1. Identify the requirements according to priority and create a sprint backlog
  2. Highest priority sprints go to the top of Product Backlog and remaining ones are taken up in next iteration
  3. Only the features pertaining to rate and review functionality are developed and implemented.

Deployment:
In the first iteration release, the features identified in the Top Sprint Backlogs are deployed. Based on the user feedback received, next iterations are planned. E.g, Initially, the Rating feature is rolled out and in the next release, option to rate and review is released along with interface and functionality changes, if any. This will be the first iteration with only the first feature. Next two features are picked up post this iteration.

Filters for Search

Ideation:
To allow users to apply filters while running a search on the app. This feature would be an increment to the existing search functionality, with the additional option to search with filters. These filter categories must also be present on the restaurant listing page, for better hits.

The following filter categories would be required to be developed for this iteration:

  1. Sort by rating (as an increment to the first iteration above)
  2. Sort by cuisine
  3. Sort by category - Restaurant, Café, Pub, Brewery, etc
  4. Sort by distance from current location
  5. Sort by price range for 2 persons - Under INR 500, INR 500–1000,
    INR 1500+ etc.
  6. Sort by average reviews
  7. Sort by seating arrangement - Rooftop dining, outdoor seating, buffet, etc
  8. Sort by restaurant timings

Design:
Design elements to be added in this iteration:

  1. Panel to apply filters on the landing page
  2. Search panel to easily type the required filter category
  3. Filter and sort functionality for all the above identified categories
  4. Checkboxes to apply multiple filters
  5. Buttons to + or - a filter quantity (as applicable)
  6. Option to apply filters in search functionality

Testing:
Important metrics to be evaluated in this stage:

  1. Most popular filter
  2. Average filters applied per search / page visit
  3. Total number of searches with filters applied
  4. Usage Statistics - Return vs. New user

Implementation:
For this iteration, the implementation strategy is aligned to that of previous iteration, with the filter feature as the theme.

Deployment:
The deployment of features is carried out on the basis of the following order of priority:

  1. Filter by Cuisine
  2. Filter by Rating
  3. Filter by Location
  4. Filter by Restaurant Category
  5. Filter by Cost for Two
  6. Filter by Timings

In the next iteration, the sort functionality for the above filters will be released. Based on insights gathered from user research and contextual inquiries, appropriate changes can be made to further iterations to enhance UX.

Online Ordering

Ideation:
Besides Zomato’s main offering as a platform for viewing restaurants, it has also entered the online food delivery vertical, targeting a large customer base that expects their food to delivered at their doorstep. The idea behind this functionality is to enable users to place an order from restaurant, view items in a cart, make payment and get food delivered to their doorstep.

An interface to enable the user with this would have multiple iterations as more feedback is received.

Design:
Design elements to be added in this iteration:

  1. Display option to ‘order online’ on the restaurant page
  2. Menu listings with price and buttons to + or - quantity
  3. Cart to display selected items, total quantity and value
  4. Option to provide delivery address
  5. Payment mode: CC/Wallets/Net Banking/UPI
  6. Confirmation button
  7. Receipt and order summary
  8. Email/SMS confirmations upon successful order placement or failure

Additional features that can be considered for next iterations may include live order tracking, call functionality to speak with the delivery partner, chat support assistance, etc.

Testing:
Important metrics to be evaluated in this stage:

  1. Total number of online orders
  2. Bounce rate
  3. Frequency of ordering
  4. Average orders per time period
  5. Average revenue per order / per user
  6. Number of cancellations
  7. Number of failed orders
  8. User feedback

Implementation and Deployment:
The deployment of features is carried out on the basis of the following order of priority:

  1. Option to order online from the restaurant listing page
  2. Menu listings
  3. Cart and confirmation page with final items and value
  4. Address selection/confirmation
  5. Payment mode
  6. ‘Order Confirmed’ page
  7. Email/SMS notification with confirmation details

Summary

We began by discussing about traditional product development methodologies like the Waterfall model and its shortcomings. Agile provides the solution to deal with unpredictability and cut down on time spent on releases by breaking large objectives into smaller sub-tasks. Scrum is one of the many frameworks that are used by Agile practitioners. A Scrum team typically consists on 5–9 members with a Product Owner, Scrum Master and Developers. The development and testing is carried out concurrently at each iteration with changes incorporated into subsequent iterations.

Taking the industry example of a problem statement for Zomato, we saw how following the iterative and incremental model of development allowed the features like Rate/Review, Search Filters and Online Ordering to be released coherently and sufficiently, with sprints of shorter duration, less verbose documentation and effective incorporation of user feedback at each stage.

Agile has offered us with methods to handle complex problems, efficiently.
As the saying goes, a chain is only as strong as its weakest link, Agile implementation may be the best strategy for you, but the planning & execution, and efforts of each member of them team, with proper identification of hurdles, goes a long way in achieving results and creating value.

--

--