Implementation of Agile Methodology — New Features of Zomato
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. Write a Medium post on how you would go about the development of these features using the Agile methodology, incremental, and iterative way of development. You need not go into the details of each step, but clearly specify the increments and iterations.
About Zomato
Zomato is an Indian restaurant search and discovery service founded in 2008 by Deepinder Goyal and Pankaj Chaddah. It currently operates in 24 countries. It provides information and reviews on restaurants, including images of menus where the restaurant does not have its own website.
Zomato is an online restaurant search platform and the food ordering aggregator that provides information on restaurant, table bookings, events, food ordering, cloud kitchens and Gold a premium subscription program. Zomato started with a vision to be the Google of food. Over the years, Zomato has steadily built both a discovery, ordering and gold platforms 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.
Launched in Delhi 11 years ago in July 2008, Zomato has grown from a home project to one of the largest food aggregators in the world. Present in 24 countries and 10000+ cities globally and having 5000+ employees.
Introduction to Agile Methodology
Product Development process allows you to understand the scale of the product and its impact on the market. It is nothing but the process through which a product goes when it is developed. It usually comprises the following steps
- Conception of Idea
- Market and User Research
- Product Planning
- Design
- Development
- Testing
- Deployment
- Maintenance
There are several methodologies to build software, most prominently used techniques are the traditional and agile methodologies
From Waterfall to Agile Methodology
In this competitive world, it’s very important to have Time to Market which helps in attracting customers/ users quickly. However, this also imposes a huge challenge on understanding the requirement, design, development, testing and delivering the expectation with high quality and performance.
Hence in today’s world we are see companies moving towards Agile way of developing the solution against the water fall model.
Inception of Agile Methodology
Agile Methodology is widely used in modern software application development. It is an iterative and incremental development w.r.t. SDLC.
Agile Development” is an umbrella term for several iterative and incremental software development methodologies. Scrum is one such framework within Agile. Scrum provides a lightweight process framework that embraces iterative and incremental practices, helping organisations deliver working software more frequently. Projects progress via a series of iterations called sprints; at the end of each sprint the team produces a potentially deliverable product increment. Agile software development emphasizes four core values.
- Individual and team interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Widely used methodologies in Agile are Scrum, Kanban, and Lean. As discussed, the Agile method incorporates both incremental and iterative product development processes. Let have a look at them in detail
Incremental and Iterative Software Development
Incremental software development approach helps to deliver finished components of the whole in parts. It allows the team to stagger the release of features, thus allowing for a better understanding of the market.
Iterative software development approach allows the team to build upon an idea or a solution which might not be apparent at the beginning, but constant feedback at all levels from the customer encourages development in the form of iterations.
For example, to develop an app for food delivery, the customer’s feedback was taken at the wireframe stage. The inputs were incorporated, and the next mockup was created. The same feedback scenario was established and included in the later stages and so on. The Agile method combines iterative and incremental approaches and encourages a flexible environment.
Scrum Framework
Scrum is a subset of Agile. It is a lightweight process framework for agile development and the most widely-used one. A Scrum process is distinguished from other agile methods by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Sprints.
Some of the terminologies used in Scrum are:
- Product Owner — This person communicates with various stakeholders, creates and maintains product backlog, and works to maximize the ROI on the product.
- Scrum Master — A role orthogonal to Product Owner, this person helps the team achieve the task and build long term sustainability. He is a coach for the team.
- Developers — Everyone else on the team is called a developer, irrespective of their qualifications, expertise, and work.
- Product Backlog — This is an artifact created by the Product Owner. This contains all the requirements in the form of user stories. These stories will someday become a part of the working software.
- 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.
- Sprint Backlog — Top priority items from the Product Backlog that the team will work upon in the sprint are put in the Sprint Backlog. These stories will ideally become the working software at the end of the current race.
The product owner creates and prioritizes list called a product backlog which goes into the development.
Scrum significantly increases productivity and reduces time to benefits. This process enable organizations to adjust smoothly to rapidly-changing requirements and produce a product that meets evolving business goals.
Rather than delaying feedback until final delivery when time and resources have already been spent, incremental development ensures that teams can use feedback to make changes early and often.
Feature Development using Agile Methodology at Zomato:
Now, when we know what Agile Methodology is let’s jump to the Problem Statement and make use of the Incremental and Iterative methodology of the Agile Process for developing some of the features such as rate/review restaurant, filters for search, and online ordering at Zomato.
Feature 1: Rate/Review restaurant: Ratings & Reviews empowers customers to share their opinions and experiences, wherever they dine verifying the quality of a restaurant and the expected knowledge of the food and the restaurant as a whole.
Let’s see how to iterate the features to different versions in the steps below:
- Linear Scale: Users will be able to rate the restaurant by giving 1 to 5 stars and providing a review in the text box
2. Linear Scale with share photo will help the restaurants see the issues customers are facing and helps Zomato implement quality control
3. Overall rating: Users should be able to view the overall/cumulative rating for the restaurant along with the total number of user rated and reviewed the restaurant.
Version 2:
1. Add social share buttons: Users should be able to post the review and the rating to social media
2. Sort Reviews based on Rating: User should be able to sort the reviews by high-low and low to high
3. Sort reviews based on Date: User should be able to sort the reviews based on the recent to the oldest and vice versa.
Version 3.0
- Share it on Social Media: User should be able to post the review and the rating to social media
- Tag Users: User should be able to tag another user (if they want to) while reviewing the restaurant
- Other reviews: User should be able to see, like and comment against other user reviews
Feature 2: Search Filters: Zomato has a massive database of restaurants. It would be painful to go through all of the restaurants listed if there were no preferences set. It’s essential to have a filter option to make sure the user finds the right restaurant
Version 1:
Basic Filters based on:
1. Veg/ Non-Veg
2. Type of Cuisine
3. Location
4. Average Cost
Version 2:
- Sort Feature: Filter results based on the availability of promotional offers and the “Open now” feature
Version 3:
- We can then add “Quick Search” Filters that are easily accessible like Home Delivery, Open Now, pocket-friendly, discounts, an option to save the previous filter used.
- Trending/Suggested searches: User should be able to a shown trending or suggested restaurants while searching for a restaurant.
Filters have to be made more comfortable to use in every version for the best optimum experience for the user.
Feature 3: Order Food Online: Users can choose the location and search for restaurants, add items to cart and then go ahead to order food.
Version 1:
First build the user side functionalities like:
1. Click and select items on the menu
2. View/edit cart
3. Add Delivery Address
4. Make online payment thru various payment channels/COD
5. Track order and get notifications instantly
6. Feedback of Food quality and Online order experience.
7. Customer Care Support.
Version 2:
Introduce Zomato Credits for customer loyalty where they earn credits on each order or if they refer friends etc.
Version 3:
Customer Support — Once users are familiar with the process, the number of tickets reduces, then we can introduce a “Request Call” feature which allows the user to click a button and receive a call automatically from Customer Support.
Summary
Being Agile supports and enables any startup to be fast-paced, flexible and dynamic. Short sprint times and a ready to use product or a feature that comes out of every sprint cycle can be tested in the real world right there and then. This allows them to always be in touch with their users and understand their needs and wants.The agile methodology works perfectly well, was the requirement is continuously changing and dynamic. Today, at Zomato software or feature development demands both iterative and incremental methods. With a combined development approach, our work is sure to be both reflective and productive. In turn, our final product is well-positioned to be efficiently vetted and enhanced the goals that were previously set.
Thank you for reading my article! Please share your feedback & like it if you found this article helpful. Here’s a picture of a cute puppy :)