Agile Methodology

Agile Methodology

Agile is an approach to software development that seeks the continuous delivery of working software created in rapid iterations.?

However, the phrase "agile methodology" is misleading because it implies that agile is a singular approach to software development. Agile is not a set of prescriptions for exactly which actions to take in software development. Instead, it is a way of thinking about collaboration and workflows and it is a set of values which guide our choices in regards to what we make and how we make it.

In practical terms, agile software development methodologies are all about delivering small pieces of working software quickly to improve customer satisfaction. These methodologies use adaptive approaches and teamwork to focus on continuous improvement. Usually, agile software development consists of small, self-organizing teams of software developers and business representatives regularly meeting in-person throughout the?software development life cycle. Agile favors a lightweight approach to software documentation and embraces—rather than resists—changes at any stage of the life cycle.

Read more about agile on opensource.com

Agile values

Agile as we know it today traces its history to 2001. Reacting to waterfall approaches to project management, which organizes a software project as a series of linear sequences, a group of software developers penned The Manifesto for Agile Software Development. In this document the programmers proposed a new approach to software development and?described 4 key characteristics?that they believed should be valued over other concerns. As they put it, agile software development teams should value:

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

The authors clarify that all items on the above list do have some inherent value. However, they propose that valuing the items on the left (bolded) above those on the right can lead to better outcomes in product development. The agile manifesto does not set out to prescribe a set of practices; it is guidance for a new way of thinking about software development.

There have been many practical outcomes of the agile manifesto. For instance, instead of developing software sequentially from one phase to the next, which is how the waterfall method ensures product quality, an agile method can promote development and testing as concurrent and continuous processes. Put another way, waterfall development holds that an entire phase should be completed before moving on to the next, whereas agile supports multiple sequences happening at the same time.?

Create an agile infrastructure—and enable an adaptive organization

Where did agile come from?

Agile approaches to work were created to address the perceived limitations of the waterfall methodology, which was derived from the manufacturing method of Henry Ford’s 1913 assembly line and later applied to software development. Since its founding in 2001, agile development has flourished in the software industry and project management, though it has many variations.

Agile started when many software developers began noticing that the production cycles and collaboration methods of waterfall were not producing the desired results. This problem had become pervasive by the early 1990s, when it became common for a several years lag to persist between an organization's validated business need and the delivery of a working application. Business demands and markets could change enough during those years that large parts of software projects would be cancelled before they were ever delivered. This waste of time and resources led many software developers to seek an alternative.

Faced with the threat of disruption, organizations increasingly adopt?digital transformation?strategies to keep up with the accelerating pace of business. And when they do, agile software development frequently plays a role.

Agile forms the basis of many of today’s digital workflows.?Cloud computing, with its flexible, scalable, IT infrastructure, has grown up in parallel with the demands of agile software development.?Cloud-native development?embraces an agile-like notion of software as a series of interconnected services that scale to meet business needs.

DevOps?as a concept breaks down the old wall between software development and operations.?SRE?is an implementation of DevOps that uses software as a tool to manage systems and automate operations tasks.?CI/CD?methods accept that software will change continuously, and gives developers tools to accelerate the speed at which they can deploy new code.

By now you may have noticed that the concept of "agile methodology" is itself an agile idea, responding to the needs of its customers (that is, software developers) through changing times. Keep this in mind as we take a brief look at a variety of agile frameworks, which carry different names and often vary from one implementation to another.

Agile frameworks

Agile frameworks for software development—like Scrum, kanban, or extreme programming (XP)— form the basis for popular software development processes like?DevOps?and?continuous integration/continuous deployment?(CI/CD).

Scrum is perhaps the most popular agile framework in use today but not all agile is Scrum and, honestly, not all Scrum is agile. Scrum is a framework for managing work designed for small, cross-functional teams of 5 to 9 people who break their work into actions that can be completed within a consistent period of time called a sprint. Scrum teams consist of team members, a Scrum master, and a product owner. Typically, Scrum is implemented when a large project can be broken up into 2- to 4-week sprints. Scrum focuses on feedback loops through a ceremony called the "retrospective." The unofficial motto of Scrum could be "inspect and adapt."

Other agile frameworks, notably kanban, predate the agile manifesto. But these frameworks are considered to be agile because they promote the values outlined in the agile manifesto. There are too many agile frameworks and approaches to scaling agile to list all of them here

What are the 4 core values of Agile?

The?Agile Manifesto?outlines 4 Core Values and 12 Guiding Principles which serve as a North Star?for any team adopting an Agile methodology.?

The 4 Core Values of Agile are:

1. Individuals and interactions over processes and tools

As sophisticated as technology gets, the human element will always serve as an important role in any kind of project management. Relying too heavily on processes and tools results in an inability to adapt to changing circumstances.

2. Working software over comprehensive documentation

As important as documentation is, working software is more. This value is all about giving the developers exactly what they need to get the job done, without overloading them.?

3. Customer collaboration over contract negotiation

Your customers are one of your most powerful assets. Whether internal or external customers, involving them throughout the process can help to ensure that the end product meets their needs more effectively.

4. Responding to change over following a plan

This value is one of the biggest departures from traditional project management. Historically, change was seen as an expense, and one to be avoided. Agile allows for continuous change throughout the life of any given project. Each sprint provides an opportunity for review and course correction.?

What are the 12 principles of Agile?

Agile methodologies can be as diverse and unique as each individual team, but the 12 Principles of Agile should always guide your decisions and product development.

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software (or whatever else you deliver).
  2. Welcome?changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver projects frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
  4. Coordinating team members must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
  6. Face-to-face conversation is the most efficient and effective method of conveying information to and within different teams.
  7. The final product is the primary measure of progress.
  8. Agile processes promote sustainable development. All stakeholders should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Agile team roles

Agile teams don’t all look alike. Agile team roles can vary between?Agile frameworks?like?Scrum?(where team roles are well-defined) and?Kanban?(where team roles are more fluid), and in different industries and departments. Here are some examples of common Agile team roles:

Product owner

Often called?product owner?in?Agile development?and project owner in?Agile Marketing, this person is the assigned leader of the team. This position is typically filled by a leader already in the company such as a CMO, director, or manager. The project owner oversees the “what” of a project.?

Requestor/customer

A requestor is anyone requesting work from an Agile team. A requestor could be internal or external, an individual or a group. These people are stakeholders in the project requested of the Agile team.

Team member

A team member is any individual contributor to the Agile team. One person can be a team member on multiple Agile teams.

Scrum Master?(Scrum specific)

The?Scrum Master, a role specific to the Scrum methodology and sometimes included in the?hybrid methodology Scrumban, filters requests that come to the Agile team, manages the backlog, and facilitates all Scrum meetings. This role is not necessarily a leadership role. In fact, it can be a rotating role held by anyone on the Agile team. The Scrum Master handles the “how” of a project.

要查看或添加评论,请登录

Anjali Kumari的更多文章

  • Blockchain Technology

    Blockchain Technology

    For all you’ve probably heard about Bitcoin, Ethereum, and other cryptocurrencies lately, many financial experts say…

  • Apache Airflow

    Apache Airflow

  • STLC

    STLC

  • DBI SQL

    DBI SQL

  • Azure Data Factory

    Azure Data Factory

  • Backend Developer

    Backend Developer

    What Is The Role Of A Back-End Developer The back-end developers generally work along with the front-end developers as…

  • DAX

    DAX

    What is DAX DAX stands for Data Analysis Expressions, it is language developed by Microsoft to interact with data in a…

  • GitHub

    GitHub

    GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on…

  • JIRA

    JIRA

    A Jira 'issue' refers to a single work item of any type or size that is tracked from creation to completion. For…

  • Data Repository

    Data Repository

    Data Repository: Types, Challenges, and Best Practice The importance of data is growing as everyone uses data to make…

社区洞察

其他会员也浏览了