Who likes to have headaches in a working environment? Isn’t it stressful to have something taking too long to accomplish? Yeah, that is how traditional software development and project management worked.
Why do we need Agile methodology?
Previously, IT companies were working based on the waterfall methodology, which in the long term, was a complete drawback. Later with the evolution of the market and modernization of the workflow, Agile methodology has been vital in most IT companies. I hear you coming up with questions like- What? Why? How is it better?
I will take you through it, and I assure you that after reading this blog, your understanding and perception of agile will be apparent.
In this article, we will discuss the following:
- What is waterfall methodology?
- What is Agile methodology?
- What are the 4 Agile Values?
- Principles of Agile
- How to implement Agile
- Advantages of Agile
- Agile functionalities
What is waterfall methodology?
Waterfall methodology can be defined as a sequential top-down approach to software development. The model comprises progressive phases such as requirement gathering, software design/architecture, Implementation, Testing, deployment, and maintenance. To put it in a single sentence, It is a monolithic approach to building applications.
The fall of the waterfall:
This linear development progression had its own set of consequences, which put itself down, and the demand for a better methodology arose- The birth of Agile!
Let me brief you on the disadvantages of the waterfall:
- This model is time-consuming; therefore, without the completion of a particular stage, we cannot proceed to the next stage
- Whenever a different requirement is added, the development strategy must work from scratch. Hence, we can’t do months of planning for every little change or new requirement.
- For one massive application, there is always a chance for a single point of failure.
- The working software can be delivered only after the completion of the final stage of the model.
- Since they follow up a monolithic approach, the time required to push the changes would take days/months- It is not advisable to have any moment of downtime! Consider the downtime for applications like Google and Netflix. If so, In this modern era, the world would stop running!
The birth of Agile:
Technologists came together to formulate and launch Agile formally in 2001. They drafted four values and 12 principles – the so-called “The Manifesto for Agile Software Development” for project management to deliver a better development strategy. Agile is more feedback based, and as you continue to read through, you will realize how better it is and the need to implement Agile.
AGILE Methodology
Agile means the ability to move quickly and easily. As the meaning suggests, It is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Through this methodology,
- An application can be rapidly deployed in an organized way
- Applications are split into small chunks, therefore a breakdown in one service
will not cause the failure of an entire application/system
What are the 4 Agile values?
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Principles of Agile
- Satisfy customers through early and continuous delivery of valuable work
- Welcoming changing requirements
- Delivering working software on a regular timescale (weeks rather than months)
- Frequent interaction between developers and stakeholders
- Building projects and accomplishing tasks by providing a supportive environment around motivated individuals
- The most efficient way to communicate within a team is through face-to-face communication
- Working software is the scale of progress
- Promoting sustainable development through an indefinite constant pace
- Enhancing agility by paying attention to technical excellence and good design
- Empowering self-organizing teams for better requirements, design, and architectures
- Simplicity- the art of maximizing the amount of work not done is essential
- Regularly, the team introspects to be effective and adjusts accordingly
How to implement AGILE?
It is necessary to understand the roles before defining AGILE implementation.
Roles in Agile:
- Product owner
- Scrum master
- Scrum team
These are fashioned terms for the roles. To understand, they are comparatively similar as,
- The manager
- The team leader and
- The team (developers and testers)
Agile Flowchart
Advantages of Agile
- The development and delivery of products are continuous
- The requirements can be added or changed at any stage of operation and can be continuously integrated
- The emphasis on interaction helps the stakeholders and developer teams communicate the requirements
- Attention toward good design and technical excellence
- Flexibility to adapt to the needs of the customer at ease
To brief the difference between Agile and Waterfall models,
Agile Methodology | Waterfall Methodology |
It is an incremental process | It is a sequential top-down approach |
The development cycle is classified into sprints | The model comprises distinct phases |
The Agile lifecycle eases review and feedback after every sprint | Review is possible only after the completion of a project |
Agile comprises various projects simultaneously | It works on one project at a time |
Being flexible is the key- therefore, welcoming better requirements. | It is based on fixed structural development, failing to achieve technical excellence. |
AGILE Functionalities
Product Backlog
Product backlogs are defined into,
- Epic-It is a high-level business requirement. It includes a collection of smaller user stories that describe a larger work item. It is a big picture of information of the final end-product. e.g., new feature updates, adding services, etc.
- Stories– Smaller project requirements that describe what needs to be done and how to communicate the requirements to the development team; a product backlog is a list of to-dos at an enterprise level. The product owner/scrum master is responsible for the product backlog. Depending on the product backlog, User stories are defined, and then the sprint backlog comes into action for the development team.
Sprint planning
It is where meetings and discussions happen to plan out the sprint backlog. The product owner explains how the end product should be, and the sprint backlog is planned into tasks.
Sprint Backlog
- Sprint backlogs are collections of tasks, i.e., User stories broken down into short-time doable tasks for each scrum team. These are discussed within the specific scrum team, and the usual period between each sprint planning is 1-3 weeks, and the scrum master decides. In addition to sprint planning, daily scrums (meetings of approximately 15 minutes) take place to check and discuss the tasks.
Sprint Review
- Sprint review focuses on improving the delivery of a better product. During sprint review, the team gathers to review the completed tasks. They also resolve incomplete tasks and determine the additional changes required.
Sprint Retrospective
It is the final stage of a sprint to examine what went well during the previous sprint cycle and plan out improvements to be enacted in the following sprint.
- A sprint review is about the outcome/product, and a sprint retrospective is regarding the process.
A glance at Epic, User stories, and Tasks with an example
To give a picture of the functionalities in AGILE, let us consider a situation where an application (e-commerce app) is to be designed with a few micro-services like Frontend, Bank server, Courier server, and Backend.
Epics:
The application will have features like payment, courier, frontend, backend, etc. So, these services are significant features and cannot be implemented in a single sprint. They are huge and compile into the composition of an application.
User stories:
The epics are further broken down into User stories as a product catalog, cache server, and invoice generator for Frontend (epic). So these tiny chunks of features are explained in the product backlog by the product manager or the scrum master.
Tasks:
Let’s consider the user story: product catalog. This user story needs to be further broken down into little tasks to discuss in sprint planning. The progress of each task is updated in daily scrums and is reviewed during sprint reviews (usually happening between 1-3 weeks). The further iteration of sprints continues to cycle, involving several new tasks depending on the sprint review → sprint retrospective → sprint planning → sprint backlog