Zomato’s — Product development life-cycle — A thought experiment
This article will help some of you getting started in the world of Scrum methodology to use an agile development model to launch an early version of the product, as i also want to keep it simple and relevant, I want to hit home the point where it hurts the hardest, or in this case is a common pain point that this service solved. “What is the next meal going to look like” OR “which restaurant should I visit next ?”
Lets imagine you are Deepinder Goyal and Pankaj Chaddah back in 2008. The burning question is we know that people want a good answer to the question in “Where do we go for food !!”. How do you go about building zomato brick by brick. Granted they had a different approach to building the company out with many success and failures along the way but we have a the SUPERPOWER of hindsight and will be simplifying a few things here and also making some assumptions along the way. Also We do not have to worry about the Admin side of the business just yet. Although you could argue and rightfully so that we could write User stories for these functions too.
The FOCUS is going to be building out the core product only !! Lets get started.
We are also going to assume an ideal sprint scenario .. ( a super efficient and intelligent team that does not take breaks and always meets it’s goals).
We are also going to assume that the design will follow the approach of Wire frames, Prototyping and then Finished product.
Rate/Review restaurant
The vision of the feature is allow the users recognize where and what to have in a given area.
Version 1.0
Ideation Phase — The best way to get a ton of honest reviews/ratings, Is to empower users to share their experiences with app so that other users may be also be able to have a great experience or save themselves from a bad one.
Design (These are conversation starters and will be broken down in the implementation phase):
As as customer I want to be able to rate a restaurant so that I can help others who visit the restaurant make a good decision.
As a customer I want to be able to write a review for the a restaurant to let everyone know what i liked/ did not like at the restaurant.
Implementation/Acceptance Criteria ( We are detailing at a high level what would make us okay with the delivery of the story) :
- The User is able to rate the restaurant in increment on 1 on a scale of 1 to 5 with 1 being the minimum rating and 5 being the highest rating
2. The ratings also should be color coded:
3. Red being associated with 1, Orange for 2, Yellow for 3, Light green for 4 and Dark green for 5
4. The aggregation for the rating should be show next to the restaurants name and should be a average of all the ratings.
5. Allow the user to clear his ratings at any time.
6. The text entry area, should allow any length of review in plain text.
7. The Ratings can be given without the Text review but the reverse is not true.
Testing ( This is are high level testing approach) —
Check the ratings are being cleared after selecting the rating, also after giving the rating is the user able to edit the rating.
Entry Text with random characters to text word limit, allow at least 10,000 Characters.
Version 2.0
Okay now that the users are able to rate and reviews the feedback is in, the users on the mobile phones want an option to click pics of the place and also the food, they also want to tag their friends they went to the restaurant with.
Design (These are conversation starters and will be broken down in the implementation phase):
As a Zomato app user I want to be able to click and upload pictures to Zomato so that i can support my review of the place and share what food I had.
As a User of the Zomato i want to be able to tag my other users on zomato that were with me at the restaurant so that others know who i was having the meal with and my friends can also find my review about the place.
As Zomato website user i want to upload pic from my computer so that i can support my review of the place and share what food I had.
Implementation/Acceptance Criteria ( We are detailing at a high level what would make us okay with the delivery of the story) :
- Photos can be clicked and uploaded from the app
- Photos can be uploaded from the gallery of the phone/computer.
- Photos can be viewed and edited by owner only.
- Photos can be viewed by others
- Formats supported for uploading
- Size of pics that are allowed to be uploaded
- Users can tag their friends by name or Username( zomato user handle)
- Other users are able to click on the tagged peoples name and navigate to their profile.
Testing ( This is are high level testing approach) —
- Are we able to upload all formats of pics other than those specified.
2. Are we able to upload images with larger size than specified, if so how does the app/website react.
3. Are are we able to find the right users to tag both via name or user id.
Version 3.0
Yay !! now that the users are able to Add pics and also tag their friends who they had meals with, the excitement is palpable, we see that users want to be able to label their photos to avoid confusion or excessive explanation on the review.
Wait there is more people want to have discussions around the reviews others have written on a place as well.
Another Big request is to share these reviews on SOCIAL MEDIA sites like Twitter and Facebook we are going viral !!
Design (These are conversation starters and will be broken down in the implementation phase):
As a Zomato user i want to be able to share the reviews on social media so that i can share my opinion with my friends/followers on social media platforms.
As a Zomato user i want to be able to add descriptions to the pics i add on the app/website so that i do not need to explain it in the review.
As Zomato user I want to be able to on other reviews by users on a restaurant so that i can further have a conversation about their review.
As a Zomato user I want to be able to like a review so that i can let the author of the review know that their review was helpful for me.
Implementation/Acceptance Criteria
Since we have good understanding of the implementation and testing approaches e have taken in the above version we will not be covering these going further.
Version 4.0
There are too many review on the site on for people to find what they are looking for, but thankfully communities have formed and people are following good reviewers and some reviews for places are getting a lot of likes lets leverage this !!
Design (These are conversation starters and will be broken down in the implementation phase):
As a zomato user i want to be able to filter out the on the reviews by people who i follow on a place.
As zomato user i want to get notified about when another user has commented or liked my reviews.
As a zomato user i want to be able to view the most liked reviews for a place separately so that i do not have to scroll through the chronological list.
Implementation/Acceptance Criteria
Since we have good understanding of the implementation and testing approaches e have taken in the above version we will not be covering these.
Below are few more features like filtering the website to find food and also ordering via the site.
And so It goes the Agile Development Model.
These stories above and below are GROSS over simplifications that do not take into account the team breaking them further into design stories,Infrastructure to support these features, A/B testing different approaches etc. As agile dictates there will be multiple iterations to achieve each of these stories.
Deployment- For all the above features if testing goes well in testing we will release this to users in a incremental fashion by showing the feature to only 5% of the users and based on any feedback either roll back the feature or go ahead and incrementally allow a larger portion of the user to see the feature. like 10%, 20%, 40%, 60% 80% and then 100%.
This approach allows us to not only get feedback to incorporate in new versions but also in roll back if there are any unforeseen issues in the feature.