Agile for Software Product Development

Digant Tyagi
Jul 21, 2017 · 5 min read

Introduction

Product development, also called new product management, is a series of steps that includes the conceptualization, design, development and marketing of newly created or newly re-branded goods or services. In this post I will discuss the Agile Methodology for the product features development for Zomato — A restaurant search and discovery service.

We will implement the agile methodology, incremental and iterative way of development to develop the following features for the next product release.

  1. Rate and Review Restaurant
  2. Filters for searching restaurant and dishes
  3. Online ordering

We will try to cover all steps in Software Product development cycle including ideation, design, implementation, testing and deployment using the Agile Methodology. But before diving into the process, let’s discuss few concepts of Agile Methodology.

What is Agile Methodology?

Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams.It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.

The term agile (sometimes written Agile) was popularized by the Agile Manifesto, which defines those values and principles. Agile software development frameworks continue to evolve,two of the most widely used being Scrum and Kan-ban.

An Agile methodology requires that the work is done in a combination of iterative and incremental approach, while following 4 values of Agile manifesto and 12 guiding principles of Agile.

Iterative process is one that makes progress through successive refinement. A development team takes a first cut at a system, knowing it is incomplete or weak in some (perhaps many) areas. The team then iteratively refines those areas until the product is satisfactory. With each iteration, the software is improved through the addition of greater detail.

For example, in a first iteration, a search screen might be coded to support only the simplest type of search. The second iteration might add additional search criteria. Finally, a third iteration may add error handling.

A good analogy is sculpting. First, the sculptor selects a stone of the appropriate size. Next, the sculptor carves the general shape from the stone. At this point, one can perhaps distinguish the head and torso, and discern that the finished work will be of a human body rather than a bird. Next, the sculptor refines her work by adding detail. However, the sculptor is unlikely to look on any one area as complete until the entire work is complete.

Incremental process is one in which software is built and delivered in pieces. Each piece, or increment, represents a complete subset of functionality. The increment may be either small or large, perhaps ranging from just a system’s login screen on the small end, to a highly flexible set of data management screens.

Each increment is fully coded and tested, and the common expectation is that the work of an iteration will not need to be revisited. An incremental sculptor would pick one part of her work and focus entirely on it until it’s finished. She may select small increments (first the nose, then the eyes, then the mouth, and so on) or large increments (head, torso, legs and then arms). However, regardless of the increment size, the incremental sculptor would attempt to finish the work of that increment as completely as possible.

Agile is both incremental and iterative. It is iterative in that it plan for the work of one iteration to be improved upon in subsequent iterations. It is incremental because completed work is delivered throughout the project.

Scrum is an Agile framework for completing complex projects. Scrum originally was formalized for software development projects, but it works well for any complex, innovative scope of work. Scrum is a simple yet incredibly powerful set of principles and practices that help teams deliver products in short cycles, enabling fast feedback, continual improvement, and rapid adaptation to change.

  • 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 Scrum).
  • Along the way, the ScrumMaster keeps the team focused on its goal.
  • 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.

So now we have good understanding of Agile and Scrum, lets try to implement the framework for the development of features at Zomato.

Rate and Review Restaurants

The first step i.e the ideation phase starts with gathering the ideas from the team. After that the product manager will prioritize them in terms of feasibility, resources etc and develops the prototypes for initial feed back. For Rate and review a simple interactive prototype of like/dislike options on the rating page using thumbs up and thumbs down buttons can be tested for the quick feedback from team members as well as from external user. The process can be iterated multiple times till we have a prototype that can be developed into actual feature.

With the prototype the user design and experience team then can develop the final prototypes to be implemented by the development team. The design then can be further improved from the feed back of product manager and other team members. For example more interactive animations can be added to improve the design at this stage. Once the design is finalized the development team can implement the feature stories in multiple sprints. At the same time the testing for each sub-task and completed story can be carried out side by side. Once the feature is validated completely from the Quality engineers the initial beta version can be launched for the customers for feedback and improvement.

The feedback and issues logged during the beta release cycle can be fixed and tested in the subsequent sprint and further iteration can be carried out for the improvements via similar agile process.

)
    Digant Tyagi

    Written by

    Product Manager | Developer | UX-UI Designer

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade