Living the Agile Way

“Intelligence is the ability to adapt to change.”

Stephen Hawking, A Brief History of Time

Rappelling

We have often heard of the quote by Heraclitus that “The Only Thing That Is Constant Is Change”. Nothing demonstrates this better than the development of a product. Development of a product is like a seasoned mountain climber using a rappelling rope. You test the terrain, anchor the rope, then you traverse bit by bit. There are times when you feel that you are not getting a foot hold. You change your position, try to gain a foot hold on another rock. You are constantly strategizing, planning your next move, shifting positions. For an untrained eye, you are just sliding down a rope. But you cannot fathom what’s in store for you in an untamed and uncharted territory. This is why, you have to be ‘agile’.

The Cambridge Dictionary defines ‘agile’ as being “able to move your body quickly and easily.” This is not farther from truth in development of a product. You have to be nimble and be able to quickly move your position and gauge hurdles, lest you want to fall down that rappelling rope. In software development, agile software development is defined as “a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle.” Hence, in an agile development process, nothing is set in stone. You are constantly evolving. Innovating. Adapting.

Agile Methodology Source: http://www.proddesigns.co.uk/ucd/

Compare this to a waterfall method, in which you decide on the requirements beforehand, sign on the dotted line, and proceed to develop as per the original script. Just like a ‘waterfall’, the process is sequential, you cannot go back and change a feature or design. It works very well in a time, cost, and effort constrained project, but when it comes to a product, one has to ensure that the product is exactly what your end user is looking for. A missed sentiment, a forgotten feature, or an overlooked need, however seemingly trivial at the time, can cost the existence and viability of the entire product. You cannot fathom these things at the beginning and you might have to test out certain features before going full steam or even take learnings from that, along with customer feedback, and add new features.

Waterfall Methodology

In a restaurant search and discovery service, such as Zomato, it’s important to understand the need being met by this service. To put it simply, it bridges the gap between the restaurant and the customer. It provides information and reviews on restaurants, so that the customer now has reviews from actual users who have tried specific dishes. It includes images of menus where the restaurant does not have its own website. You no longer have to sit at a table wondering what to make of the dishes, are they good, bad, splendid. All this is available from a single source. You also have access to promotions, discounts, and compare across a variety of restaurants in your own location of preference, filtered by cuisine or average ratings by actual users. You also have the flexibility to either order online or even book a table, with instant confirmation. This is akin to having your personal assistant. This means that a lot of effort and thought needs to go into building these features. A wrong move could send mixed signals to the customers. An unneeded feature could be a put off for many. So, it becomes very important for the company to roll out these features iteratively and cautiously. In an agile development process, you build smaller modules of the entire product, and release it one by one, wait for reactions, get inputs, make changes/iterations, and then have a final part, which you are certain about. You follow a similar approach with each module.

Let’s look at how different features for a company like Zomato can be rolled out. For the benefit of this exercise, I will take three primary features scheduled for the next release:

  • Rate/review restaurant
  • Filters for search
  • Online ordering

Let’s look at these one by one across the five steps of Ideation, Design, Implementation, Testing and Deployment.

Rate/Review restaurant

It is a well-established fact that good ratings and reviews boost popularity amongst new users and bad reviews can turn away even the regular customers. With so much options to select from, ratings and reviews form the most integral feature for the company.

Ideation

  • Both new and existing customers should be able to post their reviews
  • The review link should be prominently placed on the website/app
  • The customers should be provided incentives for posting their reviews. They are not obliged to give reviews, but reviews and ratings are what gives a customer the real picture of the restaurant and its service.
  • The customer should be able to review based on different parameters.
  • There has to be a way for the customer to compliment a chef or staff for their service. Chefs like being appreciated for their skills. While this is easily done in a dine-in experience, one should be able to do this while ordering food online or even once one has visited a restaurant.

Design

  • When the customers visit the landing page, there is an image prominently placed, which asks, “Got a Review, foodie? J”
  • The customer can earn credits for each review. For instance, if it was Zomato, it could be ‘Z-coins’
Badges. Source: http://cdn.tripadvisor.com/img2/helpcenter/reviewerbadges2.png
  • The reviewer will also earn badges for the reviews.
  • The landing page will also show how many reviews are remaining to reach next level of Reviewer, and earn the next badge.
  • The customer can review by searching for Restaurant Name, location name, or identify a restaurant using Google maps.
  • The customer can also review by cuisine in a restaurant. This is important as many restaurants serve multiple cuisines, with different levels of quality for each.
  • There could also be ‘Compliment the Chef’ and ‘Compliment the Staff’ button for an exceptional experience the customer had with a restaurant. Details entered here would be passed on to the restaurants. This would increase the ratings of the restaurants.
Rating. Source: https://dribbble.com/shots/3536327-Food-delivery-discovery-Onboarding-and-rating
  • The overall ratings given by a customer could be in the 5-point Likert scale, with ‘Poor’ to ‘Awesome’ or stars. This would be followed by a comment box text field. There will also be a metrics drop down for different parameters on which the customer wants to rate the restaurant. For instance, a drop down for delivery time, food quality, presentation, value for money, taste, etc. There would also be an option to add images.
  • For existing customers, the feedback could be displayed based on the criteria of ‘Online Order’ placed or ‘Book a Table’. Two hours of an order having been delivered or of the time the table was booked for, the feedback request notification could come up.
  • A customer would always be able to see the average rating of the restaurant, with the number of reviews and could filter by cuisine as well. Along with the restaurant’s description on the dish, there should be other reviewer’s review on that specific dish for a rating for that dish.

Implementation

Phase1 (Iteration 0)

  • “Got a Review, foodie? J” image link is prominently placed in the app and website
  • Search by Restaurant Name, location name
  • 5-point Likert scale, with ‘Poor’ to ‘Awesome’ for ratings and the comment box text field.
  • Two hours of an order having been delivered, or of the time the table was booked for, the feedback request notification could come up.

Phase 2 (Iteration 1)

  • Incorporate feedback from Phase 1
  • Metrics drop down for delivery time, food quality, presentation, value for money, taste, etc.
  • ‘Compliment the Chef’ and ‘Compliment the Staff’ button.
  • Functionality to review by cuisine in a restaurant.
  • Badges for the reviewers.
  • Display of the number of reviews remaining to reach next level of Reviewer.

Phase 3 (Iteration 2)

  • Incorporate feedback from Phase 2
  • Identifying restaurant using Google maps.
  • Option to add images.
  • Credits for each review

Testing

  • Each phase is tested out first with a small group of users
  • Then the feedback captured is used to make first level changes to the reviews and rating process
  • Then an A/B test is carried out with both versions
  • The findings are used to make changes to Phase 1 and Phase 2 is rolled out with the next set of features.
  • Select customers are sent out emails for their feedback on the features and what they would like changed in them.
  • If customers are not submitting their reviews after three orders, personalized e-mails will be sent out soliciting their feedback.

Deployment

  • The changes are first done in the website so that it’s easily replicated and reaches to a large number of users.
  • On each feature change, customers are notified about the new feature additions and credits are given for using the service.

Filters for Search

Without a user friendly way to search for restaurants and food, such a service will not gain popularity even if you have a curated list of restaurants. The search should be such that people are able to search intuitively and get faster, accurate results.

Ideation

  • The customers should be able to search by various criteria, as many don’t even know what they are looking for. They might not have a cuisine preference and just want a good dining experience, or some might want a restaurant which has smoking rooms.
  • There should be a filter for searching by criteria such as whether pets are allowed or if there is a ramp for the disabled. This might boost the rankings as this information is usually not readily available for any restaurant.
  • The app could be integrated with a voice search. Reason being, many people are trying to find a restaurant while they are on the move.

Design

  • The customers could search by city, cuisine, food type (vegetarian, non-vegetarian) average ratings, restaurant category (five star, four star, etc.), cost for two people, popularity, restaurant type (Restaurant, Restro-Bar, Pub, Take-away, Dine-in), etc.
  • There could be further classifications based on pet friendly, kid friendly, disabled friendly, family friendly, smoking/non-smoking, Delivery, etc.
  • The customer should be able to start the app and use voice search to search for a restaurant. For instance, she/he might say, “show me the nearest pub with happy hours”. This will bring up a list of pubs based on the user’s current location and show the pubs which offer happy hours at that time.

Implementation

Phase1 (Iteration 0)

  • Search by city, cuisine, food type (vegetarian, non-vegetarian) average ratings, restaurant category (five star, four star, etc.), cost for two people, popularity, restaurant type (Restaurant, Restro-Bar, Pub, Take-away, Dine-in), etc.

Phase 2 (Iteration 1)

  • Incorporate feedback from Phase 1
  • Search by pet friendly, kid friendly, disabled friendly, family friendly, smoking/non-smoking, Delivery, etc.

Phase 3 (Iteration 2)

  • Incorporate feedback from Phase 2
  • Voice search to search for a restaurant.

Testing

  • Each phase is tested out first with a small group of users
  • Then the feedback captured is used to make first level changes to the reviews and rating process
  • Then an A/B test is carried out with both versions
  • The findings are used to make changes to Phase 1 and Phase 2 is rolled out with the next set of features.
  • Select customers are sent out emails for their feedback on the features and what they would like changed in them.

Deployment

  • The changes are first done in the website so that it’s easily replicated and reaches to a large number of users.
  • On each feature change, customers are notified about the new feature additions and credits are given for using the service.

Online Ordering

Ordering through the website/app is the final stage of a customer conversion. If the ordering process is not smooth and hassle free, customers will not want to come back. With such a wide exposure people nowadays have to online ordering process it is important that the website/app delivers a great ordering process top the user.

Ideation

  • The customer should be able to view the images of the dishes and then get more information about that dish.
  • Existing user’s address details should be captured and shown up the next time they order so that they don’t have to feed in the details each time.
  • Multiple payment options to be supported

Design

Payment screen. Source: http://a4.mzstatic.com/us/r30/Purple111/v4/3a/82/60/3a82606c-162a-4dd5-6b99-57c95db16515/screen696x696.jpeg
  • The customer could click on the images of the dishes she/he wants to order, get more description and then add to cart. Once the desired dishes are added to cart, the customer can either add the delivery address or select the address from a previously saved address. Post this, the customer can select a payment option via credit card, online wallets, ticket restaurant coupons, cash on delivery.
  • Once the order is placed, the customer gets a notification with a real time update of the order ready process and delivery process.
  • Once the order reaches the customer, the customer immediately gets a SMS that the order is delivered. In two hours of the delivery, the customer receives a notification requesting a feedback on the order delivery process and the food.
  • The customer can give the feedback either through the mobile app or the website.

Implementation

Phase1 (Iteration 0)

  • Save a delivery address
  • Select dish by clicking on image, adding to cart and checking out the order
  • Payment by Visa/MasterCard

Phase 2 (Iteration 1)

  • Incorporate feedback from Phase 1
  • Option to save multiple delivery addresses
  • Payment by all credit cards and debit cards
  • SMS on order delivery
  • Notification requesting a feedback on the order delivery process and the food

Phase 3 (Iteration 2)

  • Incorporate feedback from Phase 2
  • Payment using ticket restaurant coupons/Sodexo coupons, online wallets, and cash on delivery
Food preparation and delivery. Source: https://lh3.googleusercontent.com/QmFbhquE-eMt4xnJHLX2Bvl24VWGBW_OMQ7T3BgkUxoHmTrEhmA1RK5vbgMTYKDZlWA=h900
  • Notification and real time update of the order ready process and delivery process

Testing

  • Each phase is tested out first with a small group of users
  • Then the feedback captured is used to make first level changes to the reviews and rating process
  • Then an A/B test is carried out with both versions
  • The findings are used to make changes to Phase 1 and Phase 2 is rolled out with the next set of features.
  • Select customers are sent out emails for their feedback on the features and what they would like changed in them.

Deployment

  • The changes are first done in the website so that it’s easily replicated and reaches to a large number of users.
  • On each feature change, customers are notified about the new feature additions and credits are given for using the service.

This article attempts to capture how agile development can be adopted for an online restaurant search and discovery service, such as Zomato. It’s always prudent to release different versions with added features so that we get time to test the waters and gain feedback on what’s working well and what is not.

I would appreciate your feedback on this post.

Thank you for reading.

Read more on Agile_development