Agile Methodology as an Incremental and Iterative Product Development Process — A Case Study

Manohar P
8 min readJul 23, 2017

“Agile Project Management focuses on selecting the right skills for project team members and molding them into productive teams.” — Jim Highsmith

Introduction to Agile Methodology

Agile Development is an umbrella term for several iterative and incremental software development methodologies. The most popular agile methodologies include Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean Development, and Feature-Driven Development (FDD).

Figure 1: Most Popular Agile Methodologies

While each of the agile methodologies is unique in its specific approach, they all share a common vision and core values called the Agile Manifesto. They all fundamentally incorporate iteration and the continuous feedback that it provides to successively refine and deliver a software system.

Any Agile methodology involves continuous planning, continuous testing, continuous integration, and other forms of continuous evolution of both the project and the software.

They are lightweight, especially compared to traditional waterfall-style processes, and inherently adaptable. More importantly they all focus on empowering people to collaborate and make decisions together quickly and effectively.

Agile methods grew out of the real-life project experiences of leading software professionals who had experienced the challenges and limitations of traditional waterfall development on project after project. The approach promoted by agile development is in direct response to the issue associated with traditional software development both in terms of overall philosophy as well as specific processes.

The diagram below displays the differences between agile and waterfall development processes. By delivering working, tested, deploy-able software on an incremental basis, agile development delivers increased value, visibility, and adaptability much earlier in the life cycle, significantly reducing project risk.

Figure 2: Value proposition of Agile Development over Traditional Development
Figure 3: A Comparative Analysis of Agile and Waterfall Development Methodologies

To understand the inner workings of Agile Development, let us take Zomato, a restaurant search and discovery service for a case study and delve deeper into how it has implemented the following three features:

  1. Rate / Review Restaurant
  2. Filters for Search
  3. Online Ordering

About Zomato:

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.

Agile Development as a form of Incremental and Iterative Methodology

To understand why is Agile Development considered as a form of Incremental and Iterative Methodology, let us understand the individual terminologies first:

Iterative Development: Iterative development is a way of breaking down the software development of a large application into smaller chunks. In iterative development, feature code is designed, developed and tested in repeated cycles. With each iteration, additional features can be designed, developed and tested until there is a fully functional software application ready to be deployed to customers.

Incremental Development:Incremental Development entails delivering finished components of a large application in fully functional parts thus allowing for a staggered release of features which meet the utmost requirements of customers first.

Figure 4: Pictorial Representation of Iterative and Incremental Development

Agile Development as a process grows a system feature by feature during self-contained cycles of analysis, design, development and testing that end in the production of a stable, fully integrated and tested, partially complete system that incorporates all of the features of all previous iterations. Thus, Agile Development is a form of Iterative and Incremental Development.

The manifesto for Agile Development states that it values:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan
Figure 5: Agile Manifesto Represented Pictorally

The manifesto for Agile Development is based on the following 12 software development principles:

  1. Customer satisfaction by early and continuous delivery of valuable software
  2. Welcome changing requirements, even in late development
  3. Working software is delivered frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the primary measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity — the art of maximizing the amount of work not done — is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

Implementation of Agile Methodology

Let’s look at how Zomato has developed the following three features — Rate / Review Restaurants, Search Filters, Online Ordering to understand implementation of Agile.

Rate / Review Restaurants

Ratings, Reviews from customers is the best bet to showcase how good the services are at a particular restaurant. It acts as a social validation, giving an in-depth detail into the quality of food, ambience, customer-friendliness of the staff and overall experience.

At present, the Review/ Rating feature has the following options:

  1. Rating on a scale of 5, in increments of 0.5
  2. Review description — at least 140 characters long
  3. Tag friends
  4. Add Photos
  5. Share on Facebook
  6. Share on Twitter

To implement all 6 options in a single development cycle would be cumbersome and does not allow for any modifications to the requirements. Thus the above six are prioritised and then are released in a staggered manner.

The two essentials for a Rate / Review mechanism are — providing a rating and providing a text based description.

Thus in the first iteration, the first two options, namely a linear scale from 1 to 5 and a text box to write a review were released.

For the second iteration, the team at Zomato had decided that giving the actual customers an option to upload their own photos will help provide better reasoning to their reviews. Also, based on customer feedback, the Rating scale, which was initially from 1 to 5 in steps of 1, was changed to incremental steps of 0.5, as most users wanted to be able to give a rating midway to two consecutive integers. This improvement can be quickly incorporated as a) It is a modification to an existing feature and b) Its implementation is independent of other features

The third iteration revolves around gaining traction on social media sites, thus facilitating users to share their reviews on Facebook and Twitter by integrating their respective APIs and providing an easy toggle button while writing the review to be able to post to these sites.

Finally, when Zomato has had a significantly large user base, it released the option to tag friends in their review to allow a users’ friends to easily read their reviews.

Figure 6: The Rate and Review Feature after Multiple Iterations Showing all Options Listed Above

Search Filters

As a Restaurant discovery service, it is important for Zomato to provide their users with enough mechanisms to find a restaurant of their liking without hassles.

This can be achieved by using Filters, which will list the restaurants meeting only specified criteria. These filters have to be easy to use, efficient. The various filters that can be implemented as per iterations are:

First Iteration — Filter by Locality, Cuisine. These two are the bare minimum expected by customers. This helps them narrow down the entire list of restaurants to a handful of them specific to the locality and the cuisine preferred.

Second Iteration — Filter by Cost for Two, Popularity and Rating. This gives the users enough information about how much would it typically cost to go to a restaurant and what are other users saying about it. A user can use them to further narrow down the restaurant search to a price range and a minimum rating.

Third Iteration- Filter by Category, Establishment Type. Though these two provide a lot of additional insights into a restaurant, their value addition comes below the filters listed in the above two iterations as these specify if the Restaurant is a Cafe, a Bar, has take-away options, etc..

Fourth Iteration — Filter by Book a table, Order Online and Promo Offers. These filters help users pre-book a table at a restaurant, or order the food directly and check if any restaurants are running promotional offers. These have minimal precedence for users.

Fifth Iteration onwards — Miscellaneous filters such as Veg Only, Accepts Credit Cards, Free Wifi, Separate Smoking zones, amongst others. These are decided by user research and user feedback and implemented accordingly.

Figure 7: Restrictive set of Filters Available Currently on Zomato

Online Ordering

Zomato was a late entrant to online food ordering in India, behind FoodPanda and Swiggy. However, Zomato had the advantage of using their extensive database containing all details of a Restaurant — like timings, cuisine, menu, charges amongst others. Thus developing food delivery options for users meant being able to tell the users outright which restaurants are closed, how far is a restaurant from one’s residence amongst others.

The various iterations and the features that can be developed are:

First iteration — Search nearby restaurants, add food to cart from menu, add delivery address details, confirm booking, customer care support.

Second iteration — Integrate payment gateway to pay via various channels, store various delivery addresses and tag them as office, home etc., feedback for quality of delivery and quality of food.

Third Iteration — Track the progress of order across all the stages from placing an order to delivery, receive notifications at each step, real time ETA for ordered food, contact the delivery person

Fourth Iteration — Introduce Zomato Credits which can be used to avail free add-ons like a cup of ice cream or a bottle of a soft drink with each order, as a loyalty bonus program.

Figure 8: An Online Order in Progress via Zomato

Agile Development as a methodology ensures that workable modules are released in a staggered manner. Additionally, the live feedback from customers can be easily incorporated into the product development, due to the staggered nature of the development. Changing the rating scale at Zomato form 1 to 5 in steps of 1 to steps of 0.5 is one such example.

Be it startups or well established enterprises, Agile Development as a methodology ensures that features can be rolled out quickly, efficiently and can be adaptable enough to incorporate changes to the product roadmap. This in turn ensures that organisations can start raking in revenue much faster by utilising Agile practices than traditional practices.

As a concluding statement, the below info-graphic shows the top 3 benefits of implementing Agile methodology.

Figure 9: The top 3 Benefits of Agile, according to CPT Global

--

--