“There’s a way to do it better — Find it”- Thomas A Edison.
In agile as in life there will be hiccups, but the iterative nature of agile makes it easy to do a retrospective and learn from our mistakes then move on to the next sprint and do better.
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.
Developing a new product from scratch can be quite tricky and vague. Every Product Manager has to have a structured road-map that gives the business a clear path to follow.
The typical product development process generally involves the following steps:
· Conception of the Idea
· Market and user research
· Product planning
The Product Planning to Development stages are crucial and have to be done in the most efficient manner.
There are several ways to develop software, two of the most prominent methods being :
This means that as each of the eight stages (as above) are completed, the developers move on to the next step.
As this process is sequential, just like a waterfall, once a step has been completed, developers can’t go back to a previous step — not without scratching the whole project and starting from the beginning. There’s no room for change or error, so a project outcome and an extensive plan must be set in the beginning and then followed carefully.
While Waterfall proved to be advantageous in situations where the client knows exactly what he wants and has a definite idea of what the program should be doing at the end, this may not be the case every time. Most of the times clients do not have a clear vision invariably a whole lot of change requests come up during the long development processes. To combat this situation, Agile methodology was developed.
Agile came about as a “solution” to the disadvantages of the waterfall methodology. Instead of a sequential design process, the Agile methodology follows an incremental approach.
Developers start off with a simplistic project design, and then begin to work on small modules. The work on these modules is done in weekly or monthly sprints, and at the end of each sprint, project priorities are evaluated and tests are run. These sprints allow for bugs to be discovered, and customer feedback to be incorporated into the design before the next sprint is run.
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
The Agile methodology incorporates both incremental and iterative product development processes.
Incremental software development entails delivering finished components of the whole in parts. It allows you to stagger the release of features which are of utmost value to customers. Iterative software development allows for instant feedback at multiple levels of the product development process.
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 processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Sprints.
The Scrum framework includes:
· A product owner creates a prioritized wish list called a product backlog.
· During sprint planning, the team pulls a small chunk from the top of that wish list, a sprint backlog, and decides how to implement those pieces.
· The team has a certain amount of time — a sprint (usually two to four weeks)to complete its work, but it meets each day to assess its progress (Daily Standup).
· Along the way, the ScrumMaster keeps the team focused on its goal by being a facilitator.
· At the end of the sprint, the work should be potentially shippable: ready to hand to a customer, put on a store shelf, or show to a stakeholder.
· The sprint ends with a sprint review and retrospective.
· As the next sprint begins, the team chooses another chunk of the product backlog and begins working again
Scrum significantly increases productivity and reduces time to benefits relative to classic “waterfall” processes. Scrum processes enable organizations to adjust smoothly to rapidly-changing requirements and produce a product that meets evolving business goals.
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
Rating and reviewing, a restaurant, adds a sense of real-world user experience to the restaurant listings, thereby verifying the quality of a restaurant and the expected experience of the food and the restaurant as a whole.
This feature can be iterated to better version as shown in steps below:
a. A simple Like/Dislike button. After analyzing if users are actually interested in using this feature religiously after visiting a restaurant, we can move to the next version.
b. A linear scale from 1 to 5 Stars with a text field to add a detailed review.
c. A quick & easy to fill feedback form like below can help user rate restaurants on various other parameters. This will help capture some good info that users usually miss out while writing a review or if they did not want to write a detailed review at all. The text field to write review remains.
Next, we can move on to the features of adding photos and sharing the reviews on Social Media.
We can then work on a Google or FaceBook integration, where Zomato detects the restaurant the user had been to last (by extracting info from check-ins on FB or Destinations on Google Maps) and pops up the restaurant review page the next time Zomato app is opened.
Zomato has a huge database of restaurants. It would be tedious and cumbersome to go through all of the restaurants listed. Hence, the filters are the primary and the most important feature of Zomato to enable user to find the right restaurant in a sea of listings. To make the search as relevant to the user as possible, the filters have to be easy and efficient.
The incremental addition of features in the Filters is show in steps below:
Basic Filters based on:
a. Veg/ Non-Veg
b. Type of Cuisine
d. Average Cost
e. Establishment Type — Eg: Pub, Pet-friendly etc.
We can then add a “Sort By” feature showing the most to least relevant.
We can then add “Quick Search” Filters that are easily accessible like:
a. Home Delivery
c. Open Now
d. Rated 3+
Based on user researches and usability tests, the filters have to be made more and more easy to use and giving optimum search results.
Most of the users were very accustomed to browsing for restaurants on Zomato and then jumping on to another platform like Swiggy or FoodPanda to make an online order, only to realize that the restaurant doesn’t deliver in your area. So you went back to Zomato to search for another restaurant, read reviews, finalize and then place the order on a food delivery platform. By integrating online ordering, Zomato reduced this cumbersome and tedious process.
Iterations of the product could be as follows with each feature added in next iteration in the following order:
Considering the restaurant side functionalities are built, we move to the user side functionalities.
First build the user side functionalities like:
· Click and select items on the menu
· View/edit cart
· Add Delivery Address
· Make online payment thru various payment channels/COD
· Track order and get notifications instantly
· Feedback of Food quality and Online order experience.
· Customer Care Support.
Introduce Zomato Credits for customer loyalty where they earn credits on each order or if they refer friends etc.
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.
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.