Example of Agile Methodology at a company like Zomato

Divit Karmiani
7 min readApr 8, 2020

Introduction

Suppose a company, similar to Zomato, is an Indian restaurant aggregator and food delivery start up. It provides information, menus and also has food delivery options from partner restaurants in select cities.

In this post we will talk about how the company would release features like rate/review restaurant, filters for search, online ordering using agile methodology which is a type of practice model in software development life cycle. Let’s first understand the models and why agile is being preferred these days.

Important models in software development

  1. Waterfall
  2. Agile

Waterfall is considered as a traditional model which is a linear sequential life cycle model. Requirements are gathered at the beginning of the project, and then a sequential project plan is created to accommodate those requirements. Phases must be executed in a linear fashion. Meaning, each phase must be completed before the next phase can begin. If a phase fails then retracing back takes a lot of time and investment. Furthermore, each phase is discrete and pretty much exists in isolation. For example when the customer’s requirements are collected, the customers cease to play any role in the actual development of the software.

That’s where Agile comes into picture.

Agile Methodology

Steps in Agile Methodology

Agile differs greatly in these two areas, linear action and customer involvement. Agile is a nimble, iterative process where the product is delivered in stages to the customer for feedback and review.

Instead of having everything planned out by milestones, such as in waterfall, agile operates in “sprints” where prioritized tasks are completed in a short window, like 2-weeks. These prioritized tasks are fluid and appear based on the success of previous sprints and customer feedback, rather than having all tasks prioritized at the onset in the requirements phase, like in waterfall.

When working agile, we tend to focus on the problem first, and develop minimal incremental solutions that might partially solve the problem exposed, even if very simply, to get qualified feedback from the clients.Failing early and fast allows to learn faster what to build and how to build it, reducing both the “technical risk” and the “business risk”.

Hence Agile is an Iterative & Incremental approach, which starts by validating the assumptions and the problem statement allows for faster and more accurate development of a solution which will meet customers’ expectations.

Iterative and Incremental model example

Agile approach for some of the features of the app

  1. Rate/review a restaurant
  2. Filters for search
  3. Online ordering

Step1 — Development team will share their views with the product owner on the time needed and will share the plan on the tasks that can be completed in the defined two weeks period.
Step 2 — Delivering a working software in two to three weeks (version 1). Working software(version 1) will be more useful and welcome than just presenting documents to clients in meetings
Step 3 — Collaborating ideas from the team members and possible feedback from the customers, features are refined (added/deleted)
Step 4 — (version 2,3 …) Responding to change over feedback received.

Agile methodology steps

Each feature is an epic. It can be further sliced into user stories. After testing of the minimalistic features completed in the first sprint, increments and iteratives based on customers’ feedback is important and can be included as tasks in further sprints.

Epics and User Stories

Rate/review a restaurant feature: -

Version 1
Ideation: -
1) User should see the average rating on a scale of 5
2) User should login before giving a rating/review
3) User should be able to rate/review after clicking on Add review for each restaurant

Design Implementation and Testing: -
1) The above user stories are implemented.
2) The average rating is shown below the name of the restaurant.
3) Most recent reviews are shown below the menu of the restaurant and a “See all reviews” button below it.
4) User is asked to rate out of 5 and give a text review after clicking on “Add review”

Ratings

Version 2
Ideation: -
1) The rating must have a color code according to the scale of 5. Dark green means close to 5 while Dark red means close to 0 or 1
2) The number of reviews must also be shown along with where average rating is shown.

Design Implementation and Testing: -
1) The above user stories are implemented.
2) The average rating and number of reviews are shown on extreme right beside the name of restaurant.
3) The average rating is now color coded.

Version 3
Ideation: -
1) User must be asked to put relevant keywords while adding a review rather than putting a very long description in the text section.
2) The text section is optional and word limit is 100.
3) The breakup of ratings must be shown to the user to get the sense of percentage of people rating high v/s percentage of people rating low

Design Implementation and Testing: -
1) The above user stories are implemented.
2) The breakup of ratings is shown just before the recent reviews.
3) Keywords are included in the adding review section

Filters for search feature: -

Version 1
Ideation: -
1) Users must be able to search by
a. Restaurant name
b. Location
c. Cuisine
2) Users must get recommendations relevant to the searched field

Design Implementation and Testing: -
1) The above user stories are implemented
2) A search bar is added on the home page.

Version 2
Ideation: -
1) Extra option for search by location. Users can choose Nearby filter
2) Adding other recommendation types such as Trending this month, Best Collection, Adding Mood tab, Top Brands near you

Design, Implementation and Testing: -
1) The above user stories are implemented
2) Each restaurant was categorized into Fine Dining, Casual Dining, Pubs, Bars,
3) Only the top recommendations among each category is shown in Trending this month or Best collection

Ordering online feature

Version 1
Ideation: -
1) Show list of restaurants that allow online order and delivery
2) Show online menu with price
3) Add / Remove dishes to /from cart
4) Order summary and Place order
5) Add/select address
6) Payment by cash or card
7) Delivery boy’s name and number

Design, Implementation and Testing: -
1) The above user stories are implemented

Version 2
Ideation: -
1) Show color coded veg and Non-veg restaurants for each restaurant
2) Adding map link for restaurant’s location
3) Introducing offers on some restaurants

Design, Implementation and Testing: -
1) The above user stories are implemented

Version 3
Ideation: -
1) For each restaurant also display approximate delivery time
2) Show Delivery boy contacts details and tracking order status after the order is placed
3) Option to rate the delivery after the order is delivered
4) Add more wallets to payment options

Design, Implementation and Testing: -
1) The above user stories are implemented

Version 4
Ideation: -
1) Adding live location of the delivery guy along with status of order and approximate time to be taken by the delivery to reach to you

Design, Implementation and Testing: -
1) The above user stories are implemented

Summary

Agile development methodology attempts to provide many opportunities to assess the direction of an app throughout the development life cycle.

In an agile paradigm, every aspect of development requirements, design, etc. is continually revisited throughout the life cycle to preserve a product’s critical market relevance and ensure team’s work doesn’t wind upon a shelf, never released, is an attractive option for stakeholders and developers alike.

--

--