Home » What Are The Agile Methodologies

What Are The Agile Methodologies

15 comments 24 minutes read

Companies experience approximately 60% growth in profit after adopting any of the agile methodologies into their software development life cycle, based on the research conducted by Zippia.

So,  what is agile methodology?

Agile methodology is a way to manage a software development project where the work is continuously delivered in short iterations. Agile methodology is aiming to solve the main problem with the traditional “waterfall” approach where software is delivered after a long time and without considering user requirements changes. Because the whole waterfall development process is broken down into stages and one stage cannot start until the previous one is completed.

The agile approach of product development is where a cross-functional team delivers the right product in small and frequent increments while incorporating user feedback.

Benefits of Agile

Agile is all about responding to market and user requirement changes quickly and changing priorities as often as needed. It is about delivering maximum value to users, doing it frequently, and minimizing risks. To achieve these results, in agile we break down release cycles into much shorter periods called iterations

Each iteration consists of these five steps:

  1. Plan requirements
  2. Develop functionality
  3. Test functionality
  4. Release iteration
  5. Incorporate feedback

There are a few agile methodologies that were developed over the last 30+ years. All of the methodologies consist of several guidelines, tools, and processes to manage projects and develop software. Some of the most used and well-known agile methodologies are Scrum, Kanban, and Extreme Programming.

Agile has become a key component of software development for many US companies and globally. Zippia reports that at least 71% of US companies are using Agile, and 86% of software developers use Agile globally.

Agile Values and Principles

In 2001, a group of software developers came up with The Agile Manifesto, a statement that outlines four core values and 12 core principles of agile software development.

4 Core Values of the Agile Manifesto

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

12 Principles Behind the Agile Manifesto

  • 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 a shorter timescale.
  • Businesspeople and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and 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 enhances agility.
  • Simplicity–the art of maximizing the amount of work not done–is essential.
  • 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.

Software Development Life Cycle in Agile

All software products go through a development life cycle. In agile, the software development life cycle consists of six phases. 

Let’s briefly take a look at each phase.

Concept

First is the concept phase where we will define the scope of the project and prioritize the features. We will do this by interviewing customers and documenting their requirements with expected results. At this phase, we should only focus on minimum requirements because we will add more as the products evolve in the later phases. Cost and time estimates are also done at this phase to ensure that the project is worth doing.

Inception

Next is to organize a team and start the design process. We would interview and select the best candidates for the product team and provide them with the necessary tools and resources to start the work. The team will start with designing the prototype which can include a user interface, backend architecture, and tests. The team will also collaborate with the customer to clarify and refine requirements for the product.

Iteration

Once the prototype is ready, the building of the product begins. There are many iterations in this phase because the team will be releasing code in small chunks to the customer to review and provide feedback. After each iteration, the team will make adjustments based on the feedback and priorities and move on to the next iteration. This is the phase where the team will choose one of the agile methodologies to use.

Release

During the release phase, the product is almost ready. The quality assurance team will do final testing to ensure everything works correctly, and if any defects are found, the development team will resolve them quickly. User training follows the testing where more user documentation is created. Once it is all completed, the final release goes into production.

Maintenance

The product is in full use in this phase. The development team continues to support the product, resolve any new bugs, and occasionally work on small improvements or new features that users need.

Retirement

A product may enter the retirement phase for two reasons: it becomes obsolete or it is being replaced with a different product. In either case, the team will inform the users and will carry out the appropriate end-of-life activities. Finally, all the support for the product stops.

Agile Methodology Examples: Most Used

Scrum

Scrum is one of the most preferred agile frameworks for developing a software product. It is an iterative process where the whole software development life cycle is broken down into small iterations, called sprints. Sprints are typically 2 weeks long, and the development team releases software in each sprint. This allows teams to demonstrate software to stakeholders and users quickly, get feedback, identify priority tasks for the next sprint, and start working on it.

Scrum Guide outlines all the details including roles, events, and artifacts of the scrum.

Pros

Cons

  • Team has control over priorities and the delivery phase.
  • Transparency of the work allows for the collection of feedback early.
  • Users can get a hold of a product early.
  • Changes can be amended at any stage of the process.
  • Priorities are assigned based on the real need for features.
  • Users are not getting the full product right away.
  • Scrum events are needed for success, but the team may find them frustrating and a waste of time.
  • Works great only for small teams, up to 9 people.
  • Frequent scope creep.

Scrum Framework

Kanban

Kanban is the most preferred agile framework where the visual flow of the work needs to be shown. It originated from the Japanese “just-in-time” concept developed by Toyota in the 1940s.

Kanban workflow is presented on a board with columns where each column represents a stage of the work. This allows team members to see where each work item is and move them from left to right on the board as they progress.

Kanban is designed to deliver work continuously, unlike Scrum where work is delivered in sprints.

Kanban Guide provides information on the visualization of work, workflow, and measures.

Pros

Cons

  • Easy visualization of the whole project on a single board.
  • Focus on the delivery cycle of individual work items – how long it takes to deliver them.
  • Continuous delivery.
  • Simple to implement.
  • No deadlines so that the work can be delayed.
  • Not always easily visible why work is not being completed.
  • Not a good fit for dynamic projects.

Kanban Board

Lean Software Development (LSD)

Lean Software Development is the most preferred agile framework where the bare minimum version of the product needs to be released to the market, evaluated by users, and then added on functionality based on feedback from users. This concept is also called a Minimum Viable Product (MVP).

Principles of Lean Software Development:

  • Eliminate Waste – remove anything that does not bring value.
  • Build Quality In – Discipline and control of the number of residuals created is a must.
  • Amplify Learning – Motivate the team to document the whole system to preserve its value.
  • Defer Decisions – The team is encouraged to understand all business requirements before planning and designing.
  • Deliver It Fast – Deliver a working solution as soon as possible.
  • Empower the Team – Communication and conflict management are essential points.
  • Optimize the Whole – To continuously deliver value, the development cycle must not have errors in the code.

To implement LSD successfully, the development team must be very experienced in agile and be trusted by the organization to execute perfectly.

Pros

Cons

  • Allows the team to remove any inefficiencies in their work, which reduces cost.
  • Streamlines the process of delivering value very quickly.
  • Can be adapted to any size project.
  • No over-engineering of a product.
  • Requires strict following of lean principles and has disciplined and talented developers.
  • Team has to write documentation and rely on it to prevent mistakes.

Lean Software Development (LSD)

Other Agile Methodologies

Extreme Programming (XP)

Extreme Programming (XP) is the most preferred agile methodology when requirements constantly change and the team has tight deadlines. This methodology was developed by Kent Beck back in the 1990s. The XP methodology focuses on communication, feedback, and teamwork.

In Extreme Programming, products are developed using a pair programming technique. It is when one developer writes code and another developer reviews it at the same time, and they switch roles regularly. This allows teams to continuously review code and provide feedback that improves code quality. Code is released in short cycles, similar to the scrum.

Pros

Cons

  • High transparency in code writing and reviewing techniques allows developers to make changes quickly.
  • Constant testing of the code with unit and functional tests.
  • Developers exchange and enhance each other’s knowledge.
  • Because of the primary focus on the code other aspects of the product may lack attention. For example, design.
  • Lack of defects and bug tracking may lead to re-work.
  • Suited for mostly high technical risk projects.

Feature Driven Development (FDD)

Feature Driven Development (FDD) is the most preferred agile methodology for projects with multiple teams and a large number of people with different skills and talents that will work together. The FDD methodology employs techniques that help with communication and coordination on such projects. This agile methodology was developed by Jeff De Luca and Peter Coad in 1997. Similar to most other agile methodologies, Feature Driven Development focuses on short-release cycles. 

The FDD process consists of 5 stages where the first 3 stages are sequential and the last 2 are iterative:

1: Develop an overall model

2: Build a feature list

3: Plan by feature

4: Design by feature

5: Build by feature

Pros

Cons

  • Fewer meetings.
  • Uses a user-centric approach by involving users directly, unlike the product manager/owner in the scrum.
  • Best for long-scale, long-term, large team projects.
  • Not ideal for small teams.
  • Not ideal for older systems that are already defined.
  • Creates a lot of written documentation.
  • Emphasizes individual code ownership.

Feature Driven Development Agile Methodology

Crystal

Crystal is a family of agile methodologies such as Crystal Clear, Crystal Yellow, Crystal Orange, Crystal Red, and others. It is the most preferred agile methodology when each successful project requires a set of different practices and processes and varies in team size. Crystal agile methodology is considered the most flexible and lightweight because it gives a lot of freedom to the teams to develop their processes.

The seven key principles of the Crystal agile methodology:

  • Frequent delivery
  • Reflective improvement
  • Osmotic communication
  • Personal safety
  • Focus on work
  • Access to subject matter experts and users
  • Technical tooling

Pros

Cons

  • Frequent code releases.
  • Close communication and knowledge sharing between team members.
  • Promoted discussions on how to improve processes.
  • Requires automated testing, integration, and configuration.
  • Great variability between flavors of Crystal can be confusing.
  • Planning and development do not depend on requirements.

Dynamic Systems Development Method (DSDM)

Dynamic Systems Development Method (DSDM) is the most preferred agile methodology for projects with tight budgets and schedules. It was developed in 1994 in sight of more governance and discipline for an iterative software release cycle.

The eight principles of DSDM:

  • Focus on the business need
  • Deliver on time
  • Collaborate
  • Never compromise quality
  • Build incrementally from firm foundations
  • Develop iteratively
  • Communicate continuously and clearly
  • Demonstrate control

Dynamic Systems Development Method (DSDM) allows to build of a roadmap that consists of iterative development cycles, incorporates feedback from users, and makes sure value is delivered each iteration.

Pros

Cons

  • Best for tight budget and schedule.
  • Incorporated users and stakeholders into the process.
  • Flexibility in requirements changes.
  • Requires full commitment to the DSDM process.
  • Could lead to code robustness.
  • Requires a lot of user interactions.
  • Needs both skilled technical and business teams.

Agile Methodology Best Practices

Regardless of the agile methodology you choose to implement in your organization, it is best to incorporate the following practices into your software development cycle.

Collaboration

Highlighted in the core values of the Agile Manifesto, collaboration with users and stakeholders allows the product team to deliver value every iteration, verify it is valuable, and learn how it benefits users. Collaboration with stakeholders and between team members creates transparency in what the team is building which creates trust.

User Stories

A User Story is a technique for describing a need or a problem from a user’s perspective. It is a short description of what the user is trying to do within the product and why.

A typical way to write a user story is: 

As a [user role], I want to [perform a task], so that [benefit or value]

User stories may also include acceptance criteria, technical implementation details, mockups, etc.

Continuous Integration (CI) / Continuous Delivery (CD)

Continuous Integration (CI) / Continuous Delivery (CD) is a method of frequent delivery of software to users. It is done by introducing automation into all software development life cycle stages. The automation includes integration, testing, delivery, and deployment of the working software.

Conclusion

There are many agile methodologies to choose from and in this article, I covered three of the most used agile methodologies and four that I find very interesting. When choosing the right agile methodology for your team, make sure to evaluate closely all pros and cons before committing to it.

The benefits of implementing an agile methodology are clear. It is an effective way for teams to build products in a flexible and collaborative environment, and for businesses, it is the shortest path to ensure their product works for customers.

Many non-software businesses started adopting agile methodology into their processes to ensure they deliver the right products and services to their customers.

What agile methodologies have you used?

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

15 comments

What is Scrum in Agile | Vit Lyoshin January 12, 2023 - 12:05 pm

[…] is a lightweight agile methodology used in software development. It is a type of agile software development framework that helps teams […]

Reply
What is a Scrum Master (Short Guide in Bullet Points) | Vit Lyoshin January 24, 2023 - 4:58 pm

[…] continuous learning in the field, than about having a specific education or degree. Experience with Agile methodologies, understanding of the Scrum framework, and soft skills such as facilitation, conflict resolution, […]

Reply
Writing a Good User Story | Vit Lyoshin March 19, 2023 - 7:55 pm

[…] agile software development, user stories play a critical role in defining the requirements and goals of the end product. A […]

Reply
User Stories: Examples and Downloadable Templates | Vit Lyoshin March 29, 2023 - 8:14 am

[…] Story is a popular agile methodology tool for describing a feature or requirement from an end user’s perspective. They provide a […]

Reply
What is Kanban | Vit Lyoshin March 31, 2023 - 8:11 am

[…] is an agile methodology used in project management and software development to improve workflow efficiency and optimize […]

Reply
What is Extreme Programming (XP) | Vit Lyoshin April 3, 2023 - 3:31 pm

[…] Programming (XP) is an Agile software development methodology that has gained popularity over the years for its ability to deliver high-quality software products […]

Reply
What is Lean Software Development (LSD) | Vit Lyoshin April 7, 2023 - 11:44 am

[…] Software Development (LSD) is an Agile methodology that focuses on delivering value to customers while minimizing waste. LSD originated from the Lean […]

Reply
What is Feature Driven Development (FDD) | Vit Lyoshin April 13, 2023 - 3:43 pm

[…] Driven Development (FDD) is an agile software development methodology that focuses on delivering features in a timely and efficient manner. Unlike other methodologies […]

Reply
What is Crystal Agile Methodology | Vit Lyoshin April 17, 2023 - 3:24 pm

[…] agile methodology is a family of agile software development approaches that prioritize communication, teamwork, and […]

Reply
Dynamic Systems Development Method (DSDM) | Vit Lyoshin April 20, 2023 - 12:17 pm

[…] first introduced in the UK in the 1990s by a consortium of organizations that were looking for an Agile project management methodology to address the shortcomings of traditional waterfall methodologies. These organizations included […]

Reply
Maximizing Productivity: Tips for Time Management in Product Development | Vit Lyoshin April 27, 2023 - 8:16 am

[…] teams can use agile methodologies such as Scrum to manage their time more effectively. These methodologies emphasize regular […]

Reply
Definition of Ready and Definition of Done in Agile Development | Vit Lyoshin May 18, 2023 - 2:26 pm

[…] where the Definition of Ready (DoR) and Definition of Done (DoD) step in as the dynamic duo of agile methodologies, ensuring smooth sailing from start to […]

Reply
Definition of Ready: Examples and Downloadable Templates | Vit Lyoshin May 19, 2023 - 2:22 pm

[…] Definition of Ready (DoR) is commonly used in Agile software development methodologies, particularly in Scrum. It refers to a set of criteria or guidelines that a user story must meet […]

Reply
Scrum Meetings Guide | Vit Lyoshin August 9, 2023 - 11:19 am

[…] a widely adopted Agile framework for product development, embraces a structured cadence of meetings to facilitate collaboration, […]

Reply
Navigating Conversations with Leadership in Agile | Vit Lyoshin November 22, 2023 - 2:32 pm

[…] teams and decision-makers takes on crucial significance. The iterative and dynamic nature of Agile methodologies requires a seamless exchange of information. Fostering collaboration becomes the linchpin for […]

Reply

About Vit Lyoshin

Since 2011, Vit has worked with product teams, managing mobile, web, and cloud systems development within commercial industries and government. Applying his strong planning, coordinating, communication, interpersonal, and decision-making skills led multiple cross-functional teams to deploy various software products for global and national companies in North America, Europe, and Asia, as well as for the US government.

Newsletter

Sign up now for the future Newsletter! I'm not sending anything yet, but I'll keep you informed when I launch the Newsletter.

Newsletter

Sign up now for the future Newsletter! I'm not sending anything yet, but I'll keep you informed when I launch the Newsletter.

©2023 Lyoshin LLC. All Rights Reserved.