Feature Development Using Agile Methodology — Incremental & Iterative Approach
Tags: Incremental Development, Agile Methodology, Iterative Development, Zomato Features, Product Development

Introduction to Agile Methodology

Agile is a development methodology based on the iterative and incremental approach where requirements and solutions evolve through collaboration between self organizing cross functional team. Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto.

The Manifesto was developed by a group fourteen leading figures in the software industry, and reflects their experience of what approaches do and do not work for software development. This manifestos mainly focuses on :

Individual Interactions over process and tools.

Working Software over comprehensive documentation.

Customer collaboration over contract negotiations.

Responding to change over following a plan.

Here is the link of website that has manifesto hosted :

Coming back to Agile, it not only take cares of the development process but also ensures that all of its collaborators and stake holders found equal value in implementing it. Here are some of the benefits that they enjoy :

As Customer — Customer’s stories are kept at the center of the process , all request made by the customers are aligned in such a way that each of the request is worked upon the ground of its value proposition and delivered quickly with shorter cycle spans. As Development Team — Due to high involvement of the entire team , this process makes working a fun and enjoyable journey. With in the Agile Methodology , Scrum is a process that helps in implementation of Agile methodology that defines the structure of team in to below roles of

a) Product Owner — Responsible for looking after all requirements and what needs to be done by the team , he is the one who draws line of action and list down requirements that need to be incorporated. He is equally involved with customer as well as the rest of team.

b) Scrum Master — Plays role of servant leader and is responsible for making sure that each of the team member should get required resources for getting task completed. He is a fire fighter as well as coordinator and is responsible for making sure that developers remain focused on delivering the things rather than arranging resources to get things done.

c) Developers — All team members apart of the above roles are referred as Developers which include designer , quality assistant , developer themselves and other members required to form the team.

This team structure not only enhances the productivity but also ensures equal involvement of team in to day to day functioning for on-time deliveries of the feature requested.

3. As Product Owner — Product owner gets maximum delivery of values and has opportunities to realign the work based on the prevailing priorities. The product , in this case, evolve with mutual discussion and participation during different stages and the requirements are jotted down on a continuous mode on the feedback of customer after using the product.

Agile as Incremental and Iterative Methodology

Agile development is both incremental and iterative. It believes in delivering one set of features independent and ready to use and planning further development for improvement in later phase. This not only helps in getting feedback over what we have delivered but also ensures that customers satisfaction and comments on the delivery are taken care in future release of the product.

An iterative process can be defined as a process for making progress with successive refinement. A first cut is finalized between the entire team to ensure that the product becomes usable in the hands of the user, with a clear intention and understanding about the future developments that are yet to be incorporated but planned for future release. Once the user has his hands on experience over the product , the development gets aligned and future release are planned accordingly. For example , in the first iteration , a simple search functionality can be given , and in the second iteration additional criteria are incorporated to enhance the search experience and post that an error handling can be incorporated or related suggestions can be implemented if search is not returning result.

An incremental process is the system that is designed to be delivered into different set of pieces that are functionally capable for usability individually. In this approach , the entire system is further divided in to smaller deliverable functionalities and than developed one by one along with deliveries for each of them individually as they gets completed and tested. This helps customer to have working model of their products in a shorter time span where they can start using along with commitments for future deliverable.

Both Agile and Scrum are incremental and iterative. They are iterative in that they execute for the work of one iteration to be improved upon in subsequent iterations and incremental because completed work is delivered throughout the project. Combination of both make Agile and Scrum a great experience with high productivity.

Hope you are now familiar to Agile , now let us discuss around implementation of the entire framework and how we can achieve feature development using the same in context of a Food Delivery Giant Zomato. Here is a short introduction of Zomato to get basic understanding :

Zomato — Order Food Online

Zomato is an Indian restaurant aggregator and food delivery start up founded by Deepinder Goyal in 2008. Zomato provides information, menus and user-reviews of restaurants, and also has food delivery options from partner restaurants in select cities. As of 2019, the service is available in 24 countries and in more than 10,000 cities.

Let us now dive in to our feature development process and evolve as to how these features should be developed implementing the agile methodology , Features that we would be incorporating are :

Review & Rating

Searching Menu items

Finding Restaurants Near Me

Now we will look each of them one by one to understand as to how we will be developing them using agile methodology :

Review & Rating

Purpose — Enable User to give feedback about the entire experience that includes below steps :

Delivery Duration

Status Updates While Delivering

Quality of Food and its packaging

Delivery Boy Behavior

Since its very important to understanding user rating and review to ensure that customer expectation are met , we need to make sure the process of getting such reviews does not hamper the experience of user and it should not look as a forced step. We can plan the development releases with below phases :

Stage 1 — Incorporating a basic functionality to get reviews based on the entire service by giving a popup for rating only.

Overall experience Rating

Stage 2 — On completion of delivery , adding a popup that will ask rating with reviews about the delivery experience pertaining to delivery transit

Delivery Rating

Stage 3 — Next day of the delivery , ask user about the food experience and packing quality of the food delivered

Food and Packaging Rating

and so on , we can evolve gradually to get more understanding with the feature incorporated and improvements can be made.

Searching Menu Item

Purpose — Enable User to search with different parameters and possibilities to reduce search timing and ensuring that user find what he want. This search can include functionalities like

Search Menu Items Directly

Search Menu from a particular Restaurant

Search by Food Category like ( Continental , Indian , South Indian etc )

Search by Timing ( Breakfast, Lunch , Snack , Dinner etc )

Search by Trending

Search by Top Offers

Based on the above list , this feature can be released incrementally based on understanding that what’s the minimum viable feature that would empower the basic functionality of search and than the second highest value and so on . So in this case , We can divide the features in to different release as follows :

Stage 1 — Develop option to search menu items directly.

Search by Food

Stage 2 — Search by Restaurants

Search By Restaurant

Stage 3 — Search by Top offers

Search by Offers

And So on , this way we would be delivering search feature in phased manner without interrupting and waiting to include all possible searches release in a single go.

Finding Restaurants Near Me

Purpose — Enable User to find restaurants that are near to me at any given point of time. This feature would ideally require GPS access , based on the location user would get restaurants list near to the location . This can be again phased in two parts as below

Stage 1 — Allowing User to enter Search Location instead of accessing it through GPS

Stage 2 — Empower the same search based on the GPS access along with option to specify location which we have already given in stage 1 release.

Summary

Therefore , with the Agile way of development , we have come up with the features in a phased manner and customers need not to wait long for the features. User can get the work done in the app with the basic functionalities giving feedback and improvement recommendation that they expect on as to how they want this feature to be enhance. Further it saves the effort and development cost that normally occurs in delivering all the features in a single go and at times , user might also get shifted to something different instead of waiting for the release. Engagement gets higher on practicing Agile methodology as each version release under this is functional and software being in functional mode allow customer feedback embedded in upcoming releases.