Agile Product Development Methodology
Developing products is one of the most amazing things to do provided that it’s done correctly.
It’s very rare that a single person can do it on their own, right from the conception of the idea, conducting detailed user/market analysis, product planning, design, development, testing, deployment and maintenance. So generally, it’s always a team of T-shaped individuals who work on a product and bring it to life.
A T-shaped employee, in the context of human resources, is an individual who has deep knowledge and skills in a particular area of specialization, along with and the desire and ability to make connections across disciplines. The horizontal bar of the T symbolizes a breadth of general knowledge and soft skills, while the vertical stem of the T symbolizes the depth of technical hard skills.
Now, there are two major methodologies that are used for developing products and they are as follows:
- Traditional Waterfall Methodology
- Agile Methodology
You can click here to read about Waterfall Methodology as today, we are going to talk about Agile Methodology in detail.
Agile is based on iterative and incremental development techniques, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. In simple terms, it helps you to adapt to the changes that you will encounter in the entire product development cycle. This ensures that such changes are handled efficiently and the outcome isn’t affected.
The major difference between the waterfall method and the Agile method is that the former has a set of sequential steps that needs to be followed. This is only effective when the customer requirements are upfront and won’t change over the course of period.
Whereas Agile doesn’t follow such sequential steps and involves overlapping of such steps. Everything happens based on customer’s requirement which can change overnight so this helps us to adapt to those changes which keep things more flexible.
Agile helps us to adapt to this changing requirements and customer’s unpredictability using two approaches which are as follows:
- Incremental Method
- Iterative Method
Let’s understand these approaches by examples.
The Incremental approach is a method of software development where the model is designed, implemented and tested incrementally (a little more is added each time) until the product is finished. It involves both development and maintenance. The product is defined as finished when it satisfies all of its requirements
Suppose, we are talking about an E-commerce website that sells products online. Initially when it will start, it will just include a basic Debit Card functionality as a payment method for payments.
Then slowly and steadily, once their user base increases and as per the customer feedback, they will add more options like Credit Card, Netbanking, Mobile Wallets etc.
Finally, when they realize that the business has grown to Tier 1, Tier 2 cities, they will understand that people over there are skeptical about online payments and would prefer Cash on Delivery. So, based on that, they will also introduce Cash on Delivery(COD) mode of payment.
So, you can see that they introduced more features for their product in an incremental way. This way ensures that whatever features are introduced are ready to be used at the point of time and depending upon the market research, user research and customer feedback, more features are rolled out in addition to the existing ones until the product is finished.
The Iterative method is a design methodology based on a cyclic process of prototyping, testing, analyzing, and refining a product or process. Based on the results of testing the most recent iteration of a design, changes and refinements are made. This process is intended to ultimately improve the quality and functionality of a design.
Suppose, we are talking about a Food Delivery App which allows you to order food from the restaurant of your choice.
Initially, they introduce a feature where you can track your order once you place it. In that feature, they are 4 options which are a. Order Placed b. Order Prepared c. Order Dispatched d. Order Delivered. Based on the current status, it highlights the respective option for the customer.
Then they realize, that the customer won’t keep the app open to understand when exactly it was dispatched or prepared, so they iterate on the existing functionality where they display the exact time when a particular status got triggered. This way, the customers would know at what time that action was triggered when they open the app.
Based on more user research and feedback, the company realizes that it will be great for the customers to track the delivery boy once the order is dispatched.
Hence, on this idea, they again iterate the existing functionality and include a feature where the user can track the delivery boy on the map while he is on his way to deliver the food.
This way, by prototyping, testing, analyzing, and refining a existing design or a process, you iterate on the existing design to come up with a final process or design.
Scrum is of the Agile methodologies that is widely used in the industry given it’s easy and effective approach.
This allows small teams to collaborate and build complex projects in a much easier and effective manner.
Hirotaka Takeuchi and Ikujiro Nonaka introduced the term scrum in the context of product development in their 1986 Harvard Business Review article.
They called this the holistic or rugby approach, as the whole process is performed by one cross-functional team across multiple overlapping phases, where the team “tries to go the distance as a unit, passing the ball back and forth”
In rugby football, a scrum is used to restart play, as the forwards of each team interlock with their heads down and attempt to gain possession of the ball
Scrum method includes the following aspects:
- Product Backlog: The product backlog comprises an ordered list of requirements that a scrum team maintains for a product based on it’s priority. It consists of features, bug fixes etc. — whatever must be done to successfully deliver a viable product.
The product owner prioritizes those product backlog items (PBIs) based on considerations such as risk, business value, dependencies, size, and date needed.
- Spring Planning: This is a period where the entire Scrum Team sits together and goes through the entire product backlog to decide which items needs to be picked up for that particular sprint based on various factors like priority, time estimation etc. and move it to a sprint backlog.
- Sprint Backlog: The sprint backlog comprises of all the items which are selected from the product backlog to be worked upon in the Sprint.
- Sprint: A sprint is the basic unit of development in Scrum. The sprint is a timeboxed effort; that is, it is restricted to a specific duration(1–2 weeks). In this duration, all the items present in the sprint backlog are picked up and worked upon to be completed in that time duration.
- Daily Sprint: This is a daily stand up that the scrum team conducts wherein everyone answers the following questions so that everyone is on the same page with respect to the product development.
- What did I do yesterday
- What will I do today
- Were there any roadblocks in yesterday’s task
- Product Owner: The product owner represents the product’s stakeholders and the voice of the customer; and is accountable for ensuring that the team delivers value to the business. In most cases, the Product Managers are Product Owners in the Scrum Team.
- Scrum Master: A role orthogonal to Product Owner, helps the team achieve task and build long term sustainability. He is a coach for the team and often referred to as a “Servant Leader”.
- Developers: Everyone else on the team is called a developer, irrespective of their educational background and work.
You might be wondering how do they all fit in or how does the cycle works. This image should give you a basic idea about it.
Now that, you are aware of what Agile Methodology is and how Scrum Framework functions, let’s do a small exercise.
I will now act as a Product Manager in Zomato in a hypothetical setup who is equipped with a task of building features like rate/review restaurant, filters for search, online ordering etc. I will briefly show you how the Agile Methodology can be implemented in such scenarios.
To start with, any kind of product development usually consists of the following things. However, few things may or may not be used depending upon the situation.
- Conception of the idea
- Conducting detailed user/market analysis
- Product planning
Let’s take the features one by one:
- Rate/Review Restaurants
We at Zomato have the listings of all the restaurants and people use us as a medium to know about the restaurant before visitng it, so it’s essential for us to give them an option to rate the restaurant as per their experience. This will help the other users take a decision in future if they want to visit that same restaurant.
Hence, we first did a market research to understand the various rating systems across multiple industries to understand the most convenient way of rating something. Doing that, we came to a conclusion that “Thumbs Up” and “Thumbs Down” will be most convenient and least time consuming way to start.
So, we went ahead and deployed it for the live users which was an instant hit due to it’s ease of using. Once this was done, we monitored it’s usage and effectiveness along with taking feedbacks from users. This made us realize that there can be more to this rating feature apart from just giving a Thumbs Up or Thumbs Down.
All the stakeholders came together to decide the various ways in which this can be improved. A lot of suggestions flowed in which were all taken into consideration. We built prototypes for the top 3 suggestions and conducted a usability testing on the same.
Based on the results of usability testing, we finalized on the prototype where a user can rate the restaurant on a scale of 5 and leave a short review based on his/her experience with that restaurant. This was then rolled out to the live users while continuously monitoring the reception towards this feature.
This way, we iterated on the existing design to make it a little better everytime than the previous one.
Other iterations in future can include an option to upload pictures of their review, tagging their friends in reviews, sharing their reviews on social media, giving badges to the users based on their reviews etc.
2. Filters for Search:
Currently, the setup that we have is a search bar where the users can enter the name of the restaurants which they want to view.
While, we were analyzing the usage pattern of the search bar, we noticed that most of the users were also searching for cuisines instead of restaurants which was an interesting aspect to notice.
So, we decided that we can give the users an option to search for cuisines in the search bar and we modify our search bar in a way that it can list all the restaurants serving that particular cuisine.
This was then taken in the sprint cycle where the developers made the necessary changes which was then tested internally to see if the restaurants being listed were actually correct or not based on the cuisine being searched.
After all the testing, the feature was rolled out and the reception was great which we could tell based on it’s usage and customer feedback.
After this, we analyzed the cuisines that users generally search for and based on that we iterated on the existing design. This time, we populated pre-defined cuisines so that the user can just select them instead of typing it hence saving customer effort.
This way, we iterated on the same design to make it more useful and effective for the users. Other iterations would include searching based on location, type of restaurants etc.
3. Online Ordering:
When we started initially, the only purpose we solved for the users was to search for a particular restaurant, check all the details about it, read or leave a review based on your experiences etc.
We thought that now is the time to step up as we have a large user base and that involved, getting into the online food ordering space. We did have a huge challenge in front of us as this involved a design change and inclusion of a order placing flow along with payment gateways.
As this was a major feature to be included, we started from the scratch which means we had to do industry and competitive analysis to analyze the market space that we were about to enter.
We all did a lot of user research and based on that, we thought that before we go full blazing guns with this, we should try this first in Tier 1 cities.
Once the research part was completed, we created multiple user stories and along with the developers and designers which was then discussed in the sprint and later taken up.
Initially, we just started it in Metro Cities and the only payment option available was Debit Card. Users loved this feature as they could not only check the restaurant out but could also order from there.
As the demand increased, we signed up with a Logistics provider Grab for food delivery services. Once, we saw the success of our online ordering platform, we then decided to explore Tier 1 and Tier 2 cities as well.
However, that meant that we had to include a lot of payment options like Credit Card, Net Banking, Mobile Wallets and even Cash on Delivery(COD) so then we again got to work where we later introduced all these methods which worked like a charm as the usage of those methods were almost as good as Debit Cards.
Hence, the approach that we followed was slow. We initially staggered the other payment methods and cities to see how it initially performed.
Once we saw that it’s good enough, we followed an incremental approach and added a lot of other things which proved beneficial for the product.
Finally, we come to an end. I understand that it has been a long journey but I am pretty sure, it was a useful one :)
To summarize, we learned about what Agile Methodology is and both the incremental and iterative approaches with examples. After that, we learnt about one of the most important Agile Method which is Scrum Framework.We understood what it actually is and what are its components.
And finally, I acted as a hypothetical PM in Zomato to help you understand how Agile Methodology can help us build features in product.
A core principle of Agile is working at a constant pace, which in turn enables you to deliver at a constant pace, as opposed to working sporadically and delivering nothing.