What is a Agile Methodology

What  is a Agile Methodology

Definition of “Agile”

Agile is based upon a set of four values and twelve principles that are outlined in the Manifesto for Agile Software Development.

What is agile methodology?

Agile is a development methodology that focuses on continuous development after products go to market. Agile methodology enables products to address market issues as they come up, thereby reducing the number of failed projects in a team's portfolio.

Agile vs. Waterfall

The Agile methodology has shortened the development time for products that solve key business challenges and allow for continuous growth. The most common software development process of the pre-Agile era was known as the waterfall model. The waterfall method is a process that encourages development teams to identify problems, develop solutions, and bring products to market in their entirety, providing the most robust experience at first interaction.

The Waterfall development methodology follows a clear path to reach its end product:

  • Project requirements and scope of work are set into place
  • Products are designed to meet requirements laid out by the scope
  • Products are built
  • Products are tested
  • Problems are discovered during testing and fixes are applied
  • Products are launched once testing is completed

Waterfall approach led to more complete products hitting the market at a given time, but also had several disadvantages. This meant that solutions would no longer often be viable as challenges shifted over time to newer, rapidly emerging problems. It was commonplace for development teams to rack up a “graveyard” of abandoned projects, rather than bring outdated solutions to the marketplace.

Shift to Agile

The software industry saw an update in 2000 with the introduction of Agile methodology due to the mounting frustrations of enterprises throughout the 1990s.

Agile was developed by a group of seventeen software developers in Utah as a more efficient way to create new software and bring it to market quickly. The developers realized that reducing the time it takes for users to receive solutions to their problems would fix issues with market fit. They also realized that receiving rapid feedback from users would affirm work in progress and allow for constant improvement. Eventually, the developers were able to create a formal document called the Manifesto for Agile Software Development, which is commonly referred to as the Agile Manifesto.

The four central values and twelve principles of the Agile Manifesto provide the foundation for Agile methodology.

Agile Values

Individuals and interactions are more important than processes and tools.

It is more important to have working software than comprehensive documentation so that products can be brought to market quickly.

Contract negotiation should take a backseat to customer collaboration – customers are key to developing quality products.

Being able to adapt to change is more important than sticking to a plan – Agile workplaces require being able to make the best decision for a given moment, rather than sticking to what was originally planned.

Agile Principles

  • Customer satisfaction is the top priority
  • Harness change
  • Deliver working software frequently
  • Business-wide collaboration is a must
  • Build supportive environments around motivated individuals
  • Embrace face-to-face decision making
  • Measure progress through working software
  • Promote sustainable development
  • Maintain attention to technical excellence
  • Simplicity is essential
  • Rely on self-organizing teams
  • Regularly reflect on and adjust team efficiency

Agile frameworks began to be adopted by teams, which would lead to the development and revision of the methodology well into the 21st century.

Agile project management

These processes help set clear expectations for all stakeholders and minimize potential roadblocks that could delay time to market.

Agile Roles

  • User: Every agile process begins with creating a persona that represents the user or customer's desired behavior, needs and how the product will help them.
  • Product owner: The main responsibility of the product owner is to be able to properly distill user insights, internal and external ideas and feedback received into a product vision that is concise and straightforward, allowing the product’s desired benefit to become clear to all parties. To create user stories that provide more details on the target user, the problem at hand, the solution’s benefits, and criteria for meeting the goal, product owners work alongside development teams.
  • Software development team: In Agile software development, teams consists of diverse, multidisciplinary groups of people working together to deliver end-to-end functioning applications. Teams are typically composed of developers, quality assurance engineers, designers, analysts and additional engineers who start by building the database, business logic and user interface for demos. It is common for agile software development teams to meet frequently to ensure progress is being made and that every member has a clear vision of their roles in the process.

Agile Methods and Frameworks

Frameworks help to ensure a timely launch by providing a structure for the development process.

  • Agile and Scrum: Scrum is the most popular Agile framework and is founded on five values: commitment, courage, focus, openness, and respect. The Scrum Master is responsible for making sure Scrum is understood and carried out properly.

Scrum employs set "events" to effectuate systematic development. These events comprise:

  • Sprints: Sprints are time-limited, goal-oriented development periods that usually last no more than one month.
  • Sprint planning: The sprint planning process involves the development team coming together to plan for the upcoming sprint.
  • Daily Scrum: Daily scrums are 15-minute meetings that take place during each day of the Sprint. During daily scrums, team members share their achievements from the previous day and set new expectations for the coming day.
  • Sprint review: These meetings occur at the end of every Sprint in order to present the Increment to stakeholders and receive feedback.
  • Sprint retrospective: At the end of each Sprint, the team meets to discuss what was accomplished during the previous Sprint, what could have been done better, and what is planned for the next Sprint.
  • Kanban: The Kanban method of project management is a more visual approach that can help you identify early workflow bottlenecks for a better outcome. The Kanban method was created in the 1940s by Toyota and uses visualization, limits to work in progress, flow management, explicit policies, feedback loops and experimental collaboration to improve productivity. The Kanban visual methodology employs interactive cues to make the development process transparent.
  • Kanban board: A project management tool that helps you to keep track of tasks in progress, to-do lists and completed tasks.
  • Kanban cards: Kanban cards are used to help manage and track tasks on a Kanban board. The information included on Kanban cards can help team members see the status of individual tasks, how long they have been in progress, and when they are due.
  • Kanban swimlanes: This element of the Kanban board provides team members with a way to categorize tasks and track progress. Tasks can be rearranged upon receiving feedback to distinguish between work completed, ongoing or not yet started.

The most popular frameworks for Agile project management are Scrum and Kanban, but there are other variations to meet specific employee, company and market needs.

Extreme Programming (XP):

XP is a software development methodology which is intended to produce higher quality software products and increase customer responsiveness. By following the practices of small releases, simple design, pair programming, collective ownership, continuous integration, a coding standard, an on-site customer and a 40-hour workweek, this company is able to achieve its goals.

Crystal is an Agile methodology that focuses on teamwork, communication, simplicity and reflection. This framework is designed to be adaptable to the pre-existing policies, practices, and processes of each project.

Feature-Driven Development (FDD):

FDD is a software development methodology that emphasizes the delivery of working software swiftly and continuously more than any other aspect.

This might also interest you