The Agile methodology — Zomato Application

Anji Chagaleti
5 min readApr 23, 2017

Introduction

Zomato is a restaurant search and listing application. Currently, operates in 23 countries, including India, Australia, and the United States.The vision of the product is to provide information and rate/reviews of the restaurants. The application is mainly developed by keeping in mind that restaurants who doesn’t own website.

Now, Let’s discuss more software development process.

For software application development, we should follow Software Development Life Cycle (SDLC).

In a traditional approach like waterfall model to develop software applications, we have multiple processes or steps involved before product get released.

A typical waterfall model is a 5-step software development process which are ideation, design, implementation, testing, and deployment.

The method works in linear order. We should complete each individual process in order to start the next process.

Let me give example, we need to finish ideation before we start working on the design process and so on.

Once we start with the next step, we can not go back for refining the project.

While developing software in waterfall methodology, we will be having project managers, individual teams like developers, testers, DevOps and much more.

This method encourages to have comprehensive documentation and also a team to supervise.

Waterfall model is used when requirements are known and less complexity in developing the application.

We can not look at working software until all the processes get finished in the SDLC.

An application like Zomato, we are not sure about all requirements and also it is high complexity in nature.

We have the Agile methodologies to answer to all those problems we faced in Waterfall and such traditional methodologies.

Let’s discuss, what exactly is Agile?

Agile Methodology is widely used in modern software application development. It is an iterative and incremental development w.r.t. SDLC.

Wait, what is Iterative and Incremental?

Iterative:

In iterative, we will develop an application with minimal functionality and then try working on refining the features. This process will go on until desired product requirements met.

Example: Let’s consider my project EMLI for which I received the award as the most Innovative idea to fund at Innovate Delhi program.

Note: We didn’t work on business model and validation.

Easy monthly Instalments and Loans (EMLI)
Screen A with simple functions and Screen B with refined functions with neat design.

By looking at both screens, we can see features are developed/designed iteratively in Screen B.

Incremental: we will develop software/features in part-by-part and deliver accordingly to completed overall project.

Example:

Screen A with only one option to login and Screen B with multiple options to login

With the incremental process, we are able to develop and integrate some more options to login/signup.

An Agile methodology follows 4 values of Agile manifesto and 12 guiding principles of Agile.

Scrum framework is one of the Agile Methodology which is widely used in Software industry.

Let’s discuss more Zomato application development using Scrum framework.

In the scrum, we have the sprints. A sprint generally of 1–4 weeks time span. The working software is delivered which is working live in a sprint and user can get access to look at what’s happening in application development.

As the Agile is Iterative and Incremental, scrum team have the opportunity to get instant feedback on every sprint from users.

Scrum team:

Scrum team is a small size team of 7±2 members. The team has a scrum master, Product owner, and developers or scrum team members.

Scrum team members are called as developers irrespective of the role like a tester, designer, developer etc.

The product owner will meet both scrum team and user. He will develop an Epic and User stories.

Epic: Epic is a standard format to identify requirements/features. If we have more than one feature then it is called an Epic.

As a user _____, I would like to________, So that I can ___________.

Example: As a user, I would like to check ratings, reviews, restaurant information and order online, so that I can make use of the information to find the best suitable restaurant or food.

User Story: User Story is a small part of epic to identify smallest requirements possible.

Example: As a user, I would like to check ratings, so that I can select the best restaurant.

Now that we understand about an Epic and User story, we will discuss more development now.

From user stories, we get to know about 3 main features of Zomato.

  • Rate/Review a restaurant
  • Filters for search
  • Online Ordering

These three features further identified as Tasks.

Rate/Review a restaurant:

  1. Rate a restaurant on a scale of 5 and also write a review
  2. Able to look at ratings and reviews
  3. User should login before giving rating and review

Filters for search:

  1. search by name
  2. search by location
  3. Search by price
  4. search by popularity
  5. search by nearest
  6. search by timing
  7. search by type

Online ordering:

  1. add to cart
  2. wishlist
  3. list of online payment accepted restaurant
  4. Remove from cart
  5. buy now
  6. payment gateway
  7. payment using digital wallets integration
  8. delivery experience feedback

All the tasks identified above in different features are prioritized w.r.t. user expectations, complexity, market needs and so on.

After prioritized, all the tasks are put into the product backlog.

Product backlog: Tasks are arranged in priority order with the highest priority on top to lowest on last.

Scrum team will share sprint planning according to the resources, timeline of the project etc.

Sprint planning: Normally 1–4 weeks. Let’s say sprint team updated with 3 weeks sprint and all the tasks, features and acceptance criteria shared in this sprint.

Daily standup: It is 15 minutes meeting conducted by the scrum team every day to discuss 3 activities:

  1. What tasks are completed yesterday?
  2. What tasks are to be completed today?
  3. Are there any roadblocks, why?

Sprint Review: Each sprint is reviewed by a product owner. He will check with developed work w.r.t. user stories and acceptance criteria. They will have a discussion to say “make it live” or “should work on”.

Sprint Retrospective: After completing sprint, scrum team will identify “what worked for them” and “what they can do to get better”.

If not met with desired product feature, user stories with priority again put back to product backlog to work on again in priority order.

Summary:

It all depends on requirements and project complexity to choose SDLC for your software application development.

In my point, Agile methodology is good to use for uncertain requirements and highest complexity in the project.

--

--

Anji Chagaleti

Emerging IT Data Security Professional with expertise in deliverying world-class IT projects