What is Agile?

Mark Shead
31 May 201611:56

Summary

TLDRIn this insightful video, Mark clarifies the misconceptions around Agile, emphasizing it is not a methodology or process but a set of values and principles outlined in the Agile Manifesto. He explains that Agile's essence lies in its flexibility, allowing teams to make informed decisions that enhance software development. The video also highlights the importance of understanding Agile's core values to avoid mimicking practices without grasping their underlying purpose.

Takeaways

  • 📜 Agile is a set of values and principles, not a specific methodology or process for software development.
  • 🔍 The term 'Agile' is often misused and associated with various practices and products, which may not capture its true essence.
  • 🌟 The Agile Manifesto defines Agile, emphasizing values over rigid processes and documentation.
  • 🤝 Agile values individuals and interactions, working software, customer collaboration, and responding to change over more traditional approaches.
  • 📝 The Agile Manifesto is concise, highlighting the importance of prioritizing certain values for better software development.
  • 🛠 There are 12 principles that support the Agile values, providing a framework for decision-making in software development.
  • 💡 Agile encourages teams to make decisions based on its principles and values, rather than following a one-size-fits-all approach.
  • 🛑 Agile is flexible and adaptable, allowing teams to refine and change their practices to best suit their situation and goals.
  • 🚫 Mimicking the practices of another team does not make a team Agile; understanding and applying Agile values and principles is essential.
  • 🔄 Agile teams are expected to continuously reflect and adjust their behavior to improve effectiveness and align with their values.
  • 🌱 Agile is about a mindset and approach to software development that prioritizes adaptability, customer focus, and collaboration.

Q & A

  • What does the term 'Agile' commonly refer to in the context of software development?

    -In the context of software development, 'Agile' refers to a set of values and principles that guide teams in making decisions about how to develop software more efficiently, rather than a specific methodology, framework, or process.

  • What is the primary source of the definition of Agile?

    -The primary source of the definition of Agile is the Agile Manifesto, which emphasizes that Agile is not a methodology but a set of values and principles.

  • What are some misconceptions about Agile mentioned in the script?

    -Some misconceptions about Agile include the belief that it requires specific tools like sticky note cards for user stories, that it is a methodology that can be learned through consulting services, or that it is about having stand-up meetings for better agility.

  • What are the four core values of the Agile Manifesto?

    -The four core values of the Agile Manifesto are: individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan.

  • How does the Agile Manifesto differ from other methodologies or frameworks?

    -The Agile Manifesto differs from other methodologies or frameworks by focusing on values and principles rather than prescribing a specific way of doing software development.

  • What is the purpose of the 12 principles supporting the Agile Manifesto's values?

    -The purpose of the 12 principles is to provide a general guide for making good decisions in specific situations, rather than dictating what to do, thus supporting the values of the Agile Manifesto.

  • How does Agile approach the idea of changing requirements during software development?

    -Agile approaches changing requirements by welcoming them, even late in development, and using Agile processes to harness change for the customer's competitive advantage.

  • What is the significance of face-to-face conversation in Agile development?

    -Face-to-face conversation is considered the most efficient and effective method of conveying information to and within a development team in Agile development.

  • How does Agile view the concept of working software?

    -In Agile, working software is considered the primary measure of progress, emphasizing the importance of delivering functional software over other forms of documentation or planning.

  • What does the term 'cargo cult' refer to in the context of Agile adoption?

    -The term 'cargo cult' refers to the tendency to mimic the practices of successful Agile teams without understanding the underlying principles and values, which can lead to ineffective adoption of Agile.

  • How should a team decide on practices when adopting Agile?

    -A team should decide on practices based on whether they support the Agile principles and values, ensuring that the decision-making process is aligned with Agile philosophy.

Outlines

00:00

📜 Understanding Agile: Beyond the Hype

Mark introduces the concept of Agile development, emphasizing that it is often misunderstood and misrepresented by various entities for their own benefit. He clarifies that Agile is not a specific methodology, framework, or process, but rather a set of values and principles outlined in the Agile Manifesto. The Manifesto prioritizes individuals and interactions, working software, customer collaboration, and responding to change over traditional practices. Mark also introduces the 12 Agile principles that guide decision-making in software development, highlighting the importance of team autonomy and continuous improvement.

05:03

🗣️ Communication and Progress in Agile Teams

This paragraph delves into the practical aspects of Agile development, focusing on the importance of face-to-face communication as the most efficient method for conveying information within a team. It discusses the significance of delivering working software frequently and the need for sustainable development practices that maintain a constant pace. The principles of technical excellence, good design, simplicity, and self-organization are emphasized, along with the importance of regular reflection and adjustment to improve team effectiveness. The paragraph also warns against adopting practices without understanding the underlying Agile values and principles.

10:06

🛠️ Embracing Agile: Values Over Practices

The final paragraph addresses the common misconception that adopting certain practices will make a team Agile. It stresses that Agile is a mindset based on values and principles, rather than specific practices. Teams should choose practices that support their Agile values and principles, rather than mimicking what other teams do. The paragraph illustrates the danger of a 'cargo cult' mentality, where teams copy the visible practices of successful teams without understanding the underlying reasons for their success. It concludes by emphasizing that the decision-making process, grounded in Agile values and principles, is what truly defines an Agile team.

Mindmap

Keywords

💡Agile

Agile is a set of values and principles that guide software development. It emphasizes flexibility, customer collaboration, and responding to change over following a strict plan. In the video, Agile is contrasted with traditional methodologies, highlighting its focus on individuals and interactions, working software, and customer collaboration as core values.

💡Agile Manifesto

The Agile Manifesto is a document that outlines the foundational values and principles of the Agile approach. It is mentioned in the video as the authoritative source for defining what Agile is and what it is not, emphasizing the importance of prioritizing individuals, interactions, working software, customer collaboration, and responding to change.

💡Methodology

A methodology refers to a system of procedures and rules for conducting a particular activity, such as software development. In the context of the video, Agile is not a methodology but rather a set of guiding values and principles. The video clarifies that Agile is not a specific way of doing software development, but rather a framework for making decisions that lead to better outcomes.

💡Daily Standup

A daily standup is a short, daily meeting where team members report on their progress, what they plan to do, and any obstacles they face. In the video, it is mentioned as a practice that some teams find helpful, but it is only 'Agile' if it stems from following Agile principles, such as face-to-face communication and responding to change.

💡Customer Collaboration

Customer collaboration is one of the core values of the Agile Manifesto, which prioritizes working closely with customers throughout the development process. The video explains that Agile teams value customer collaboration over contract negotiation, aiming for continuous feedback and adaptation to meet customer needs.

💡Responding to Change

Responding to change is a key principle of Agile development, which encourages teams to embrace changes in requirements and priorities as they arise. The video script illustrates this by discussing how Agile processes harness change for the customer's competitive advantage, rather than sticking rigidly to a plan.

💡Principles

The 12 principles of Agile are guidelines that support the values of the Agile Manifesto. They provide a framework for teams to make decisions in a way that aligns with Agile values. The video emphasizes that these principles are general and flexible, allowing teams to adapt them to their specific context and needs.

💡Self-organizing Teams

Self-organizing teams are groups that have the autonomy to make decisions about how to best accomplish their work. The video mentions that the best architectures, requirements, and designs emerge from such teams, highlighting the importance of trust and empowerment in Agile environments.

💡Sustainable Development

Sustainable development in the context of Agile refers to the ability of the team to maintain a constant pace of work indefinitely. The video script includes this as one of the principles, emphasizing the importance of a steady pace that can be sustained over time without burnout.

💡Technical Excellence

Technical excellence is a principle that encourages continuous attention to high-quality design and implementation. The video explains that focusing on technical excellence enhances agility, as it leads to better software that can be developed and maintained more effectively.

💡Cargo Cult

The term 'cargo cult' is used in the video as a metaphor for teams that mimic the practices of successful Agile teams without understanding the underlying principles. It refers to a historical phenomenon where islanders tried to attract cargo planes by imitating the rituals they observed, illustrating the danger of adopting practices without understanding their purpose.

Highlights

Agile is not a methodology, framework, or process but a set of values and principles.

The actual definition of Agile is found in the Agile Manifesto, emphasizing values over specific practices.

Agile values include individuals and interactions over processes and tools, and working software over documentation.

Agile principles support values, focusing on customer collaboration, responding to change, and face-to-face communication.

Agile promotes sustainable development with continuous attention to technical excellence and good design.

Agile encourages simplicity and maximizing the work not done for better efficiency.

Self-organizing teams are key to Agile, with the best outcomes emerging from their autonomy.

Agile decision-making is based on values and principles, rather than dictated by external methodologies.

Agile is flexible, allowing teams to adapt practices to best fit their situation and work towards their full potential.

Agile teams make hundreds of decisions each week, aligning with Agile values and principles for better software development.

Mimicking practices of another team does not make a team Agile; it's the adherence to Agile values that counts.

The 'cargo cult' mentality is discouraged in Agile, as practices should be the result of following Agile principles.

Agile teams may change and refine practices over time, such as shifting from SCRUM to Kanban for better customer value delivery.

Daily stand-ups are 'Agile' only if they result from a team following Agile principles and values.

Agile teams prioritize satisfying the customer through early and continuous delivery of valuable software.

Agile processes welcome changing requirements and use them for the customer's competitive advantage.

The Agile Manifesto is concise, with 68 words emphasizing the importance of valuing certain items over others in software development.

Transcripts

play00:05

Hi I’m Mark.

play00:07

I help organizations write software more efficiently and often this means helping teams understand

play00:14

what it means to develop in an Agile way.

play00:17

In this video we are going to answer the question, “What is Agile?”

play00:22

And just as important we’ll discuss what Agile is not.

play00:26

Many things get called Agile—especially by people who are selling something.

play00:32

If you ask the makers of paper products, they will tell you that to be Agile you need to

play00:37

write user stories on the sticky note cards— that they just happen to sell.

play00:44

If you ask a consultant, you’ll likely hear that it is a methodology for developing software

play00:49

that your organization can learn—if you buy their services.

play00:55

And if you talk to the makers of orthopedic shoes, you’ll be told that the key to being

play00:59

Agile is meetings where everyone stands up.

play01:02

So the more comfortable your shoes — the more Agile your team.

play01:07

The actual definition of Agile is found in the Agile Manifesto.

play01:11

The Manifesto makes it clear that Agile isn’t a methodology.

play01:15

It isn’t a specific way of doing software development.

play01:18

It isn’t a framework or a process.

play01:21

In fact, most of the things that are marketed as Agile tend to miss the point of what Agile

play01:26

actually is.

play01:29

Agile is a set of values and principles.

play01:36

Much of the discussion around Agile has to do with following different practices, using

play01:41

various methodologies, and even developing with specific tools.

play01:46

While these things might help a team that is trying to follow Agile, they aren’t Agile

play01:50

in and of themselves.

play01:52

For example, while a team may find that having a daily standup is helpful, the standup is

play01:59

only “Agile” to the extent that it is the result of a team following the Agile principles

play02:04

and values.

play02:06

When you understand this, it is easy to see that Agile is really a collection of beliefs

play02:11

that teams can use for making decisions about how to do the work of developing software.

play02:18

While this means the term Agile gets subjected to a great deal of abuse when people claim

play02:24

that this or that is the way to be Agile, it also means that if you truly understand

play02:30

what Agile is, it is surprisingly flexible.

play02:34

Agile doesn’t make decisions for you.

play02:37

Instead it gives a foundation for teams to make decisions that result in better software

play02:45

development.

play02:48

The Agile Manifesto is only 68 words and very simply says that we can develop software better

play02:54

by valuing the items on the left side of the list more than the items on the right side.

play03:00

This is the Agile Manifesto says:

play03:04

We are uncovering better ways of developing software by doing it and helping others do

play03:10

it.

play03:11

Through this work we have come to value: • Individuals and interactions over processes

play03:17

and tools • Working software over comprehensive documentation

play03:23

• Customer collaboration over contract negotiation • Responding to change over following a

play03:33

plan That is, while there is value in the items

play03:37

on the right, we value the items on the left more.

play03:45

In addition to the values of the Manifesto there are 12 principles that support the values.

play03:51

Once again the principles are very general and are less about telling you what to do

play03:56

than they are about giving you the ability to make a good decision in a particular situation.

play04:02

The principles are:

play04:05

1.

play04:07

Our highest priority is to satisfy the customer through early and continuous delivery of valuable

play04:13

software.

play04:15

2.

play04:17

Welcome changing requirements, even late in development.

play04:22

Agile processes harness change for the customer's competitive advantage.

play04:28

3.

play04:30

Deliver working software frequently, from a couple of weeks to a couple of months, with

play04:36

a preference to the shorter timescale. 4.

play04:42

Business people and developers must work together daily throughout the project.

play04:49

5.

play04:51

Build projects around motivated individuals.

play04:55

Give them the environment and support they need, and trust them to get the job done.

play05:02

6.

play05:05

The most efficient and effective method of conveying information to and within a development

play05:10

team is face-to-face conversation.

play05:15

7.

play05:18

Working software is the primary measure of progress.

play05:23

8.

play05:26

Agile processes promote sustainable development.

play05:29

The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

play05:38

9.

play05:42

Continuous attention to technical excellence and good design enhances agility.

play05:49

10.

play05:51

Simplicity--the art of maximizing the amount of work not done--is essential.

play05:59

11.

play06:02

The best architectures, requirements, and designs emerge from self-organizing teams.

play06:11

12.

play06:13

At regular intervals, the team reflects on how to become more effective, then tunes and

play06:19

adjusts its behavior accordingly.

play06:24

Since Agile is a collection of values and principles, it’s really utility is in giving

play06:30

people a common foundation for making decisions about the best way to develop software.

play06:37

For example, consider a new project that is in discussion on how to get the requirements

play06:44

from the business owner.

play06:46

The suggested approach is to require that the business owner write down all the requirements

play06:51

and sign off on them before beginning the work.

play06:54

A team that is following Agile would say: “While that might work, isn’t that inconsistent

play07:01

with our belief that we should value customer collaboration over contract negotiation?

play07:07

And doesn’t it violate our principle that says the developers should be working with

play07:11

the business owners every day?

play07:15

How can we make this decision in a way that is consistent with our values and the principles

play07:20

we follow?”

play07:23

Or consider a developer who is working on implementing a feature for the business owner.

play07:28

The developer realizes he needs a database to make the feature work.

play07:32

The first idea that comes to mind is to stop work on the feature and build out a robust

play07:37

database layer that will handle the needs of the feature and provide support for other

play07:41

development that will be needed later.

play07:45

If the developer believes in the Agile values and is trying to follow Agile principles they

play07:50

would think: “But building out this layer means I will

play07:55

have to delay delivering what the customer can see as valuable software they can use.

play08:01

If I can find a way to build just what is necessary to deliver this feature, it will

play08:06

better align with my principles.”

play08:10

When you have a team that is following Agile they will be making hundreds of decisions

play08:15

each week in the way described above.

play08:18

That is what it means to be Agile.

play08:20

Making each decision based on the principles and values that the team has decided to follow.

play08:30

The decision making process matters.

play08:33

You can’t try to short circuit things by taking decisions made by another team and

play08:38

just blindly doing what they decided to do.

play08:42

Another team may make decisions based on the Agile principles and values and end up with

play08:47

a particular way of doing their work.

play08:50

Simply trying to mimic another team’s actions and practices won’t make your team Agile.

play08:59

After World War II Melanesian islanders were observed trying to bring cargo planes and

play09:06

their supplies from the sky by mimicking the practices they had seen performed during the

play09:11

war.

play09:13

This included clearing the forest to make a landing strip complete with full size planes

play09:18

made out of straw.

play09:21

They also created structures that mimicked a control tower out of bamboo and had someone

play09:27

sit in it wearing headphones fashioned from coconuts.

play09:30

It is easy to fall into a similar type of cargo cult mentality when it comes to Agile.

play09:36

The things that are easy to notice in a highly functional Agile team are the practices they

play09:43

are using.

play09:45

But the practices a team uses is the result of following Agile principles and values.

play09:51

It is less important what practices a team happens to be using than why they are using

play09:58

it.

play09:59

In fact, as time goes by, a good Agile team is probably going to change and refine the

play10:05

practices they use.

play10:08

A team might start with SCRUM and later find that Kanban is a better fit for delivering

play10:12

value to their customers.

play10:15

A team might begin standing up in a daily meeting and later decide it works better for

play10:20

everyone to stay sitting down.

play10:23

Another team might start out using Planning Poker to estimate story size and later do

play10:28

away with story points and simply split stories to be approximately the same size.

play10:34

That isn’t to say it is useless to look at practices being used by teams that are

play10:38

performing well, but you can’t go looking for practices to make you Agile.

play10:44

Your principles and values are what will make you Agile.

play10:48

You have to look for practices that support your principles and values.

play10:53

The way you select your practices is what determines whether you are being Agile or

play10:57

not.

play10:59

If a practice is being selected because it looks like a good way to follow Agile principles,

play11:03

it is probably a good place to start.

play11:07

The same practice can work poorly for a team if it is selected for the wrong reason.

play11:15

So what is Agile?

play11:17

Agile is a set of values and principles.

play11:20

How does a team become Agile?

play11:24

They make their decisions based on Agile values and principles.

play11:29

The decision making process is how a team becomes Agile.

play11:32

The values and principles have enough flexibility to allow teams in a wide variety of organizations

play11:39

to develop software in the ways that work best for their particular situation while

play11:45

providing enough direction to help a team continually move toward their full potential.

Rate This

5.0 / 5 (0 votes)

相关标签
Agile ManifestoSoftware DevelopmentTeam DynamicsCustomer CollaborationChange ManagementSustainable PracticesTechnical ExcellenceSelf-OrganizationDecision MakingAgile Values
您是否需要英文摘要?