Agile Methodology and Feature Development of Zomato

Prachi Kashyap
6 min readApr 12, 2020

Introduction

Anyone can get sweaty palms when it comes to developing and launching a new feature. It is definitely an onerous task. In the traditional linear method (one that can not be named 🙊🙊), requires a sequential step of requirement gathering, design, implementation, testing and maintenance….whoosh! But wait there is also no room for changes in between, so least flexibility. But no worries, we have a saviour. Some legends broke the waterfall into sprints 😏. In 2001, a group of 17 software developers met at a resort in Utah to eat, and of course for a discussion to break the status quo and make the development process quick and easy. They started the Agile Alliance in which they shared ideas, values, principles and experiences about the Agile initiative. They also authored the ‘12-principles of Agile’ and brought the software development community together to propagate this lightweight method.

Source: Dilbert talks about Agile Programming

Agile Methodology

We now have a sense of what Agile could be. As a layman, I understood Agile methodology as preparing a Pizza for friends who arrived at my home from nowhere but they were eager to eat a home-made Pizza. To their contentment, I being a good friend showed them my Pizza preparation process and took their suggestions. Firstly, I baked the base as per their choice (thin crust), then laid the garlic sauce but they changed it to tomato sauce, similarly, I added more layers while keeping my friends in the loop as their choices sometimes change when they see the layering on top of the base. This way I prepared the delicious Pizza incrementally and everyone was happy and satisfied.

Source: https://www.crustkingdom.com/when-making-pizza-what-goes-on-first/

In the like manner, in Agile methodology, the delivery of software is done incrementally and each increment is fully complete. To put it another way, a fully-fledged software is built and released in pieces in the same way where the pizza base and each layer of pizza is complete on its own and as a whole, they make up the whole Pizza.

There is also another aspect of Agile which is iterative. I have another story for that, suppose you want to design a dress for yourself, your designer first sketches a dress and after your approval and suggested changes, he will further decide colours and fabric, he will again come back to you with a fully made prototype of the dress and after your confirmation, he will go stitch out the dress. In the whole process, you will be in the loop just like in Iterative Agile methodology where each iteration is approved before moving on to another.

Source: https://agilenotion.com/agile-categoriesiterative-incremental-evolutionary/

But in practice, we follow both incremental and iterative agile processes to build software. So each iteration will be a complete piece and the next iteration would be an improvement on that and so on.

Implementation of Agile Methodology

The agile methodology should provide business value at each increment and iteration. One should always see and feel a working piece of software at any point in time. SCRUM is one of the popular Agile Methodologies that IT industry has adopted

Let’s take the example of Zomato which is a restaurant aggregator and an online food delivery app.

I am taking three major features of Zomato and will explain the application of SCRUM on a high-level further.

  1. Rate or Review the restaurants
  2. Search filters
  3. Online food ordering

Step 1:- Create a product backlog by collating all the inputs from the internal and external stakeholders. Also, assign the priorities on the basis of market demand, customer value or need, etc. in front of each user story.

Product Backlog for the three major epics are written below:-

Step 2:- Create a release plan on the basis of priority, sprint plans and other technical considerations.

Here, we can see an overview of the Release plan based on priority for the feature development of Zomato

Release 1

Epic: Rate or Review the restaurants

Features to release -

  1. As a user, I want to give a rating for a restaurant, so that I can convey my food ordering experience on a scale of 1 to 5
  2. As a user, I want to view the number of reviews and average ratings for a restaurant, so that I can make a decision to order from a particular restaurant

Epic: Search Filters

Features to release-

  1. As a user, I want to filter results based on a restaurant, so that I find my favourite restaurant quickly
  2. As a user, I want to search for restaurants based on Average cost, so that I get the estimation of my expenditure upfront

Epic: Online Ordering

Features to release-

  1. As a user, I want to view the restaurants that accept online ordering, so that I can order food online
  2. As a user, I want to view the delivery timings of the restaurant, so that I can make a decision based on delivery time

Release 2

Epic: Rate or Review the restaurants

Features to release -

  1. As a user, I want to give an opinion or review a restaurant by providing feedback/comments, so that I can convey my food ordering experience verbally

Epic: Search Filters

Features to release-

  1. As a user, I want to filter results based on dishes, so that I find my favourite dish quickly
  2. As a user, I want to filter results based on location, so that I can find the restaurants located in a particular area
  3. As a user, I want to view the restaurant menu, so that I can see whether that restaurant is serving my favourite dish

Epic: Online Ordering

Features to release-

  1. As a user, I want to search for restaurants based on offers and promotions, so that I can get the best deals

Release 3

Epic: Rate or Review the restaurants

Features to release -

  1. As a user, I want to upload pictures along with the review, so that I can show the pictures of the dishes I ordered
  2. As a user, I want to share my reviews and the ratings to social media, so that I let my friends know how my experience with the restaurant was

Epic: Search Filters

Features to release-

  1. As a user, I want to search restaurants in between two locations, so that I can find the mid-point of two locations in case of meeting someone

Epic: Online Ordering

Features to release-

  1. As a user, I want to put additional requests such as bring cutlery, bring in a paper packet etc., so that I can fulfil my additional needs in the same platform

Each user story above will be translated to working product features incrementally. In each increment, a number of iterations occur and in each iteration customer feedback is incorporated. In the SCRUM framework, each user story or a task is fully completed including testing and delivered as working software. All the status updates about the task on board are communicated with the team during the SCRUM daily stand-up.

Conclusion

An interactive and collaborative working ideology over processes and tools, a dynamic task list over a traditional document and standing-up to the changes over sticking to the previously laid out plan are the core values of Agile methodology that should be kept in mind irrespective of incorporating any Agile framework.

Read about CRM on http://prachikashyap.com/

--

--