Agile Methodologies - Definition
Dictionary definition of agile, Agile is to move quickly and easily. Agile Workflow thus similarly translates to the simplest and effective method for software solutions. Agile methodologies employ a route through continuous planning while learning and improving. It also emphasizes team collaborations, development, and fast delivery.
Agile Software development life-cycle is a collection of different frameworks and practices. For day to day lives, human beings tend to follow certain values and principles, software development too uses values and principles for better functioning.
Agile emphasis on teamwork and how the work is done effectively in a team. Results are obtained from teamwork between self-organizing cross functioning groups.

Collaboration is the keyword for Agile Developments.
Even though there is a lot of stress on the word Collaboration, there is the presence of managers too. Teams however have the flexibility to work on their own and solve problems. The teams are cross-functional and all the required skills are found within the team.
When a team implements Agile software development (Agile Methodologies), they concentrate on collaborations and organization of the work. Another way for it is the usage of specific technical practices that deal with developing software to help the team deal with unwanted situations.
Agile vs Waterfall
To understand the Agile process better we can compare it with Traditional practices and see the difference. In the traditional process, work is usually done sequentially in phases that are to say in steps one after the other. This linear form of system is known as the Waterfall approach in project management. The problem that the Waterfall approach faces are that when a new request comes in.
Read more about- Waterfall Approach
This is known as “scope creep” in traditional terms. To satisfy customers’ demands teams have to go through cumbersome processes to make a change which increases the time taken to a great deal. After the approval of the change, the team more often has to go back, redo and undo previous setups increasing not only the time but also the costs involved.
Thus to avoid this fiasco Agile project management is implemented where small changes are made in every step. The changes when implemented are run by the customers for their valuable feedback.
Agile workflow process also deals with the management of the work. The basic aim of this is to spot the problems early and fix them effectively. This idea along with the small batch size and frequent delivery creates a successful model as per customer needs.
Difference Between Agile and Waterfall
Here’s the agile vs waterfall comparison table:
Waterfall Model | Agile Model |
|---|---|
The process is incremental and iterative. | The process is sequential. |
Broken down into individual processes where designers work on. | Not broken into individual processes. |
The customer is given early and frequent chances to make changes in the process. | Customers can see the result only at the end. |
Unstructured compared to the waterfall method. | Structured and planned. |
Small projects can be done very quickly but for bigger projects it is difficult to estimate the time. | The time of completion for any type of project can be estimated. |
Error can be fixed at the middle of the project. | Error can only be fixed at the end of the project. |
Documentation gets less priority compared to software development. | Software development has the maximum priority. |
Testers and developers work together. | Testers and developers work separately. |
After every sprint user acceptance is done. | User acceptance is done at the end. |
Strong team work between developers to estimate the requirements and planning. | Developers are not required in requirement and planning analysis. |
Agile Manifesto: Principles of Agile Methodology
Our highest priority is to satisfy the customer.
Through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development.
Agile processes harness change for the customer’s competitive advantage.
Deliver working software frequently, from a couple of weeks
To a couple of months,
With a preference for the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals.
Give them the environment and support they need.
Trust them to get the job done.
The most efficient and effective method of conveying information
To and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design agility.
Simplicity the art of maximizing the amount of work done.
The best architectures, requirements, and designs emerge from
Self-organizing teams.
At regular intervals, the team reflects on how to become more effective,
Then tunes and adjusts its behavior accordingly.

Principles of Agile Modeling
The Principles of Agile Modeling are:
Software is your primary goal.
Enabling the next effort is your secondary goal.
Remain agile by creating and maintaining only the models that you need.
Assume simplicity.
Embrace change.
Incremental change.
Model with a purpose.
Multiple models.
Quality work.
Maximize stakeholder investment.
Types of Agile Software Development Methodologies
A few of the different types of Agile software development methods (Agile Methodology) are listed below:

Disciplined Agile Delivery (DAD)
Disciplined Agile Delivery or DAD is an Agile software delivery framework. DAD helps is the software delivery and development with a people-first approach.
The different practices and frameworks under Agile software development such as scrum and lean software development are collected and brought under DAD.
DAD is basically a type of Disciplined Agile toolkit.
The 3 phases of the DAD framework are:
Inception: As the name suggests this phase revolves around the work at the beginning of the development process. This includes thinking of activities to help construct the project and understand its purpose. The inception is supposed to be a small phase.
Construction: This phase includes creating a product in increments. Teams may include different agile methodology in this phase to create the solution.
Transition: in this phase the product is handed over to the customer. This phase is as short as possible.
These 3 phases take place continuously in a loop.
In DAD, there are 6 different delivery life cycles. These are as follows:
Basic/Agile lifecycle
Lean Lifecycle
Continuous Delivery Agile Lifecycle
Continuous Delivery Lean Lifecycle
The Exploratory Lifecycle
The Program Lifecycle
Read More- Disciplined Agile Delivery
Adaptive Software Development (ASD)

Adaptive Software Development or ASD is a way to build complicated software and systems. The main focus of Adaptive Software Development is human collaboration. Self-organization is also an important aspect of ASD.
ASD lifecycle mainly consists of three phases namely:
Speculation: Speculation is the phase where the project starts and planning are done. The project when made focuses on the project initiation information, some of which are:
Project Requirements
User needs
Customer mission statement.
Collaboration: The next phase of ASD is collaboration. Here there is emphasis on collaborations, teamwork and communication. Even though collaboration and teamwork are important aspects of this phase, individual creativity and individualism is also stressed upon to a great extent. The team mainly communicates to break barriers and be comfortable about:
Constructive criticism
To provide assistance without resentment
Hard work
To come up with effective solutions for problems.
Learning: The members of the team may not have proper or up to date knowledge about certain aspects of the project so it is important to keep learning.
The learning process can be in 3 ways:
Technical review
Project post mortem.
Read more - Adaptive Software Development
Agile Modeling
As the name suggests Agile Modeling is used for modeling software systems. It is also used for effective documentation of such systems. It is a part of the Agile toolkit and is a collection of values and principles that enables the customer in their endeavor.
This method is a flexible approach helping in the design and development of technology. It has proved to be a successful approach for improvement in responding to customer demands. It is an effort to explain the goals of the project to the developers, stakeholders, and decision-makers.
The four important values most important for Agile Modeling are:
Communication
Simplicity
Courage
Feedback
It uses the best practices to the software being created to make sure that the needs of the development team and customers are met. It provides a detailed view of the product.
Benefits of Agile Modeling
The benefits of Agile Modeling are as follows:
Defining the best practices for effective modeling.
Suggesting a way to apply these practices.
Suggesting a way to improve the modeling approach.
Read more- Agile Modeling
Agile Methodology Scrum
Scrum is a type of Agile development method which specifically deals with team based development projects.
Scrum consists of 3 components:
Scrum Master: The Master sets up the team, the sprint meeting. It also removes hurdles that occur while working.
Product Owner: The Product Owner creates and prioritizes product backlogs. It also delivers the functionality at each iteration.
Scrum Team: The Scrum Team looks after its own work to complete the cycle.
Scrum is best suited for products and development projects.
How to use Scrum?
Divide your organization into small self-sufficient teams.
Split the work into small deliverables.
Prioritize the deliverables in the list and analyze the expected effort for each of them.
Split time into short fixed-length iterations.
Update priorities from time to time with the consultation of the customer.
Optimize the process after every iteration.
More about- Scrum
Kanban

How does Kanban work?
It understands the workflow.
Split the work into pieces.
Put each item in cards.
Put the cards on the wall.
Use named columns to locate the cards on the workflow.
More about- Kanban
Scrumban
Scrum and Kanban are the essences of Agile Methodology. Scrum is used in products and development projects. Kanban is best for production support. Scrumban is a mixture of the best features of both scrum and kanban for maintenance projects. Scrumban is becoming very famous in service industries which includes both development and maintenance projects.
More about- Scrumban
Extreme Programming

Extreme Programming is used when the demand and requirement constantly changes. It monitors changing patterns of the product in short cycles which thus improves productivity. It also installs frequent checkpoints easing the implementation of customer requirements. Requirements are collected like stories which are stored in parking lots. The shorter cycles also called Iterations to have a span of 14 days.
The different phases of Iterations are:
Coding
Unit Testing
System Testing
The phases of Xtreme Programming are:
Planning
Identification of stakeholders.
Infrastructure Requirements
Security-related information
Security-related information and gathering
Service Level Agreements and their condition
Analysis
Saving stories in the parking lot`
Prioritizing the stories
Scrubbing of stories for estimation
Define the Iteration Item
Resource planning for different teams
Design
Simplicity
Choose a system metaphor
Use CRC cards for design sessions.
No functionality is added early
Refactor whenever and wherever possible
Execution
Coding
Unit Testing
Execution of Manual test scenarios
Detect Report generation
Conversion of test cases from manual to automated
Mid-Iteration review
End of Iteration review
Wrapping
Small Releases
Regression Testing
Demos and Reviews
Develop new stories based on the need
Process improvements based on end of iteration review comments
Closure
Pilot Launch
Training
Production Launch
Review SOA strategy
Production Support
To track the daily work there are two storyboards available. These are namely:
Story Cardboard: Stories are collected in the form of sticky notes to track daily activities. The manual process takes more time and effort so online forms are recommended.
Online Storyboard : Online Storyboards are used to save the stories.
Crystal Method
One type of agile software development approach is Crystal method.crystal method focuses on team work and team building more than concentrating on processes and tools.
Crystal method focuses on 2 main assumptions. They are:
Teams have the freedom to streamline the way they work and become more efficient.
The methods for each project has to be curated separately, as each project is unique and dynamic.
The characteristics of crystal method are:
Human Power
Adaptive
Ultra light
Frequent Delivery
Reflective Improvement
Osmotic communication
Focus
Personal safety
Easy access to expert user
A technical environment with automated tests, configuration management and frequent integration.
More about- Crystal Method
Dynamic System Development Method
DSDM or Dynamic System Development Method is a Rapid Application approach to software development. The users are supposed to be involved actively in DSDM and the team has the power to make the decisions. Delivery of the product frequently is the main focus of DSDM.
The different techniques used in DSDM are:
Prototyping
The different phases of DSDM are:
Pre project
Feasibility Study
Business Study
Functional Model Iteration
Design and Build Iteration
Implementation
Post project
More about- Dynamic System Development Method
Feature Driven Development
Feature Driven Development or FDD focuses on designing and building features. FDD includes domain walkthrough, design inspection, promotion to build, code inspection, and design. FDD while developing product targets at:
Domain Object Modeling
Development by feature
Component/class ownership
Feature Teams
Inspections
Configuration Management
Regular Builds
Visibility of progress and results.
More about- Feature Driven Development
Lean Software Development

Lean Software development method works on the principle of “Just in time production”. It helps in increasing the speed of software development and decreasing the cost. Lean development has seven steps:
Eliminating waste
Amplifying learning
Defer commitment
Early delivery
Empowering the team
Building integrity
Optimize the whole
More about- Lean Software Development
Agile Workflow
The steps of the Agile process Flow are:
Concept: The conceptualization phase of the project. Here, the projects are envisioned and priorities are set.
Inception: Team members are selected, funding is taken care ofand initial discussions are done.
Iteration/Construction: Time for the development team to work on a software curated for the project.
Release: Quality Assurance testing, internal and external training, documentation and development, and release of iteration into production.
Production: Support of the software.
Retirement: The activities are ended, customer notification, and migration.
Advantages and Disadvantages of Agile Workflow
Advantages of Agile Workflow
It is a client-oriented process. Thus it involves the clients at every stage of the project.
For development processes, Agile is extremely effective since the teams are extremely motivated and organized.
Agile software development makes sure that quality is always maintained.
It has incremental progress. This makes sure that the client and the team know what has to be completed and what is already completed. This reduces the risk in the process to a great extent.
Changes in the requirements can be done in the later stages of the project also.
This approach breaks down organizational barriers and develops trust and partnership within the organization.
Disadvantages of Agile Workflow
Documentation in agile processes is less.
Small development projects may find it difficult to process with Agile.
Experts are required for important decision making.
The cost of Agile implementation is more compared to other development methods.
The project can go wrong if the manager is unsure about the project.
In some projects, it is difficult to understand the time required for project completion in the beginning.
If the project is complex sometimes it’s difficult to estimate the resources required and the effort that has to be put in.

