Agile Methodology
Hello readers👋 Today we will learn about the most used concept that you must have heard while surfing through product management resources. It is a very important and simple concept which will help you in the long run. Let me introduce you to the Agile Methodology!
First let's see what is a waterfall model-
You can imagine it as a huge application built with small chunks of code that is integrated together.
Different parts of the application/code does different tasks like frontend, backend, DNS routes, etc. But the entire code is shipped as one whole application.
This is the method we used back in the times and it was known as the monolithic application.
So if one part of the application was altered, it would disturb the entire application and sometimes there would be an error or system failure. Another linked problem of this method can be explained with an example - imagine a feature is been built and you want to deploy it on the app (production of the feature). Due to the structure of the application, this was not possible and the production team doubted to release a feature as they feared the new feature could hamper the existing model. Nowadays very few companies follow the waterfall model as it is outdated and there is an update in an app every second in today's fast-paced world.
Hence, here's where Agile methodology comes into play.
In simple words, Agile is a philosophy to deploy your applications fast and in an organized way.
In this you work as mentioned in the picture below i.e. first plan the feature of an app, then work on the micro-services; one service at a time - design the UI/UX, frontend, develop the backend codes, test the feature whether it is running properly, deploy it and then review it. The launch step in not present in the cycle because it is the last step and is the final one before we are sure to share it with the customers.
So, the steps are in sync with the developers who are trying to come up with new feature codes and check instantly whether it is working properly or not to avoid wastage of time and efforts.
In this you work as mentioned in the picture below i.e. first plan the feature of an app, then work on the micro-services; one service at a time - design the UI/UX, frontend, develop the backend codes, test the feature whether it is running properly, deploy it and then review it. The launch step in not present in the cycle because it is the last step and is the final one before we are sure to share it with the customers.
So, the steps are in sync with the developers who are trying to come up with new feature codes and check instantly whether it is working properly or not to avoid wastage of time and efforts.
Another important aspect of agile is it works in iterations. For example, I have to build an e-commerce website and include features like - 1. opening main menu (front-end), 2. clicking the catalog option, 3. clicking the add to cart option, 4. clicking the buy now option, 5. selecting the payment option and 6. confirming my order. All these features or steps would be performed in different iterations in agile so as to avoid confusion and tension regarding the consequent steps that we are going to perform in the future. So, we are following the micro-service model here and launching a feature without impacting the independent codes present in the application.
Key terms of Agile
Key terms of Agile
Four key values of Agile -- People over processes and tools - development and client-centric environment. Team and end users are given more importance.
- Working software over comprehensive documentation - The functional documentation is given more importance over the theoretical documentation.
- Customer collaboration over rigid contracts - A feedback dependent mechanism.
- Responding to change rather than following plans - Even if the codes are broken down into smaller chunks, changes are constant and must be taken positively.
12 Principles of Agile -- Satisfy the Customers
- Welcome Changing Requirements
- Deliver Working Software frequently
- Frequent Interactions with stakeholders
- Motivated Individuals
- Face-to-face communication
- Measure by working software
- Maintain constant pace
- Sustain technical excellence and good design
- Keep it simple
- Empower self-organizing teams
- Reflect and adjust continuously
Four key values of Agile -
- People over processes and tools - development and client-centric environment. Team and end users are given more importance.
- Working software over comprehensive documentation - The functional documentation is given more importance over the theoretical documentation.
- Customer collaboration over rigid contracts - A feedback dependent mechanism.
- Responding to change rather than following plans - Even if the codes are broken down into smaller chunks, changes are constant and must be taken positively.
12 Principles of Agile -
- Satisfy the Customers
- Welcome Changing Requirements
- Deliver Working Software frequently
- Frequent Interactions with stakeholders
- Motivated Individuals
- Face-to-face communication
- Measure by working software
- Maintain constant pace
- Sustain technical excellence and good design
- Keep it simple
- Empower self-organizing teams
- Reflect and adjust continuously
Advantages of Agile-
- Persistent Software Delivery
- Increased Stakeholder Satisfaction
- Inspect and Adapt
- Welcome to changes at any stage
- Design is important
- Daily interactions
How to implement Agile?
Agile is implemented using different frameworks like - Scrum, Lean, Kanban, Crystal and extreme programming. Among these, Scrum is the most famous and used framework. We can also mix different frameworks and work in accordance with the efficiency of our product delivery.
Let us discuss the frameworks one by one -
SCRUM
Scrum works on the steps of planning, building, testing and reviewing (PBTR). You iterate over the steps one at a time.
Think you are in a company who has a product owner [PO] (a manager, not a technical person necessarily, has the ideas for the product, is responsible of the whole product performance and launch), scrum master [SM] ( a team leader, who handles the day to day operations), a team (developers, designers, testers, etc).
The first part of the product development can be called Product Backlogs.
Here, think you know what you have to build example - an Amazon website.
Here, think you know what you have to build example - an Amazon website.
1. You would focus on just one part (front-end) of the website here and perform all the native steps i.e. PTBR and then move to the next step
2. After completing the first iteration which was to build the frontend you will move towards the nextr iteration which can be to build email notification and then again perform PBTR. This cycle will go on until the whole website has been built.
The product backlogs can be seen as the headers of frontend, email notification and payment option building. These backlogs must be done within a period of time. We see that a single application is broken into small parts for ease of creation.
So, the first thing is product owner and scrum master will define the product backlogs. After that here the user stories come into play (we will study this in detail later) and the scrum master prioritizes the user stories according to the needs.
After prioritizing the PO or SM will come up with the sprint backlogs. Here is where the development team gets involved. The sprint backlogs (timeline - 2 weeks) further have the sprint planning (the goal that needs to be achieved by the team), the daily scrum (the 15 minute meeting to discuss the progress and moderations if any), sprint review (occurs at the end of the user story/ the product backlogs when all the tasks are complete).
After prioritizing the PO or SM will come up with the sprint backlogs. Here is where the development team gets involved. The sprint backlogs (timeline - 2 weeks) further have the sprint planning (the goal that needs to be achieved by the team), the daily scrum (the 15 minute meeting to discuss the progress and moderations if any), sprint review (occurs at the end of the user story/ the product backlogs when all the tasks are complete).
Thus, the idea of this is that at the end of 2 weeks or a defined time, you have a shippable part of the application, ready to be deployed. Everyone knows what they have to do in the team.
EXTREME PROGRAMMING(XP)
A group of developers came up with this framework back in 2001. In this every step is happening parallelly. It makes the cycle a little complex and difficult for the developers as compared to scrum.
LEAN
Lean Principles are as follows:
- Eliminate Waste
- Amplify Learning
- Decide as late as possible
- Decide as fast as possible
- Empower the team
- Build Integrity
- See the whole
The objective is to keep a cross-functional environment in the company and focus on developer and user ease of work.
KANBAN
There is no such thing as sprint in Kanban, the work is a continuous process. In this you have a list of tasks that are supposed to be done and are present in queues in different columns. Once a task from the first column is done it moves forward and the process goes on. A clear depiction can be seen in the picture below. The idea is that whatever task is achieved a new service will take it's place in the queue.
CRYSTAL
There are several variants of the Crystal methodology, each suited to different project sizes and complexities. These variants are differentiated by colour, such as - Crystal Clear, Orange, Yellow and so on.
Comments
Post a Comment