What is Agile Methodology

The Agile methodology is a project management approach that involves breaking the project into phases, commonly known as sprints, and emphasizes continuous collaboration and improvement. Teams follow a cycle of planning, executing, and evaluating.

Waterfall Model

Before the Agile come out, the common Software develop methodology is Waterfall Model.

There are a lot of drawback of the waterfall model. For exampel, When you add features or update features, it need a specific time which is called downtime. Any Change in Waterfall model contain high risk as changes include a new revised version of the entire software running the entire series steps. That is because Waterfall treat the whole product as a single unit.

Many big company found it get much better when switch to Agile. Agile based products are developed by breaking the entire product process into microservices or phrases which is faster to execute and deploy change on the go. Providing beta version to end users for reviewing is one of methods.

Terminology

Agile is a set of principles and Scrum is a framework for getting s#it done.
The Manifesto itself was born out of a need to find a common ground among Scrum, Extreme Programming, Crystal Clear, and other frameworks.

Agile Manifesto

In early 2001, Utah, 17 people met to discuss the future of software development. The problem, they agreed, was that companies were so focused on excessively planning and documenting their software development cycles that they lost sight of what really mattered — pleasing their customers.

The Agile Manifesto emerged from this extended weekend at just 68 words.

4 pillars of Agile

As outlined in the Agile Manifesto, there are four main values of Agile project management:

  • Individuals over processes and tools: Agile teams value team collaboration and teamwork over working independently and doing things “by the book.”
  • Working software over comprehensive documentation: The software that Agile teams develop should work. Additional work, like documentation, is not as important as developing good software.
  • Customer collaboration over contract negotiation: Customers are extremely important within the Agile methodology. Agile teams allow customers to guide where the software should go. Therefore, customer collaboration is more important than the finer details of contract negotiation.
  • Responding to change over following a plan: One of the major benefits of Agile project management is that it allows teams to be flexible. This framework allows for teams to quickly shift strategies and workflows without derailing an entire project.

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 to 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, 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.

Scrum

Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.

In a nutshell, Scrum requires a Scrum Master to foster an environment where:

  • A Product Owner orders the work for a complex problem into a Product Backlog.
  • The Scrum Team turns a selection of the work into an Increment of value during a Sprint.
  • The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.
  • Repeat

Scrum is simple.

Terminology

Sprint

A sprint is a short, time-boxed period when a scrum team works to complete a set amount of work. Sprints help teams follow the agile principle of “delivering working software frequently,” as well as live the agile value of “responding to change over following a plan.” The scrum values of transparency, inspection, and adaptation are complementary to agile and central to the concept of sprints.

  • Sprint planning: This event kicks off the sprint. Sprint planning outlines what can be delivered in a sprint (and how).
  • Daily Scrum: Scrum teams meet daily to discuss active tasks, roadblocks, and anything else that may affect the development team. Get everyone on the same page.

  • Sprint Review:
  • Sprint retrospective: This recurring meeting acts as a sprint review—to iterate on learnings from a previous sprint that will improve and streamline the next one.

Product backlog Sprint backlog

Scrum Roles

Scrum Artifaces

Kanban

Kanban is a visual approach to Agile. Teams use online Kanban board tools to represent where certain tasks are in the development process. Tasks are represented by cards on a board, and stages are represented in columns. As team members work on tasks, they move cards from the backlog column to the column that represents the stage the task is in.

This method is a good way for teams to identify roadblocks and to visualize the amount of work that’s getting done.

Extreme Programming (XP)

Typically used in software development, Extreme Programming (XP) is an Agile framework that outlines values that will allow your team to work together more effectively.

The five values of XP include:

  • Communication
  • Simplicity
  • Feedback
  • Courage
  • Respect

Similar to daily Scrum standups, there are regular releases and iterations, yet XP is much more technical in its approach. If your dev team needs to quickly release and respond to customer requests, XP focuses on the “how” it will get done.

References