- To work well as an Agile team, you have to be adaptable.
Adapting to change is built into the very foundation
of the Agile manifesto.
The developers who wrote the manifesto
were already using their own software development methods.
Two of the most popular were scrum and extreme programming.
That's why a lot of Agile teams use scrum terms
and also some terms from extreme programming.
One place you'll see this is in principle two
of the manifesto.
It says that Agile teams welcome changing requirements,
even late in development.
Agile processes harness change
for the customer's competitive advantage.
Embracing change is a core part of extreme programming.
It's also important to scrum,
but scrum uses slightly different language.
Scrum sees itself
as an empirical product delivery framework.
It encourages teams to inspect and adapt.
A scrum team will make changes
based on what they learn about the product.
Embracing change and inspecting and adapting
are really two ways of doing the same thing.
One sounds a little bit more like extreme programming
and the other one sounds a little bit more like scrum.
The key thing to keep in mind is that both of these
approaches encourage you to experiment or change and adapt
to improve the product.
When the developers created the manifesto,
that was a pretty big departure from how most organizations
viewed software development.
Early software development projects
followed the same processes that you had with manufacturing.
So these teams would develop software the same way
you might build a bridge or manufacture a car.
But as time went on,
these teams recognized that software development
is much different from manufacturing.
A change in the software doesn't require you
to break concrete or redesign a car's dashboard.
Software is also much more chaotic.
Your product might depend on operating systems
or different networking protocols
that are always being changed and updated.
It almost be like trying to build the car
when the roads change every few years.
So these teams started to think of software development
as much closer to scientific experiments.
Now imagine we went back to our web application
that collects our customer contact information.
The webpage relies on a web server.
That software gets updated frequently
and there are many different servers to choose from.
It also runs an operating system
that might change frequently.
You also might even have to change operating systems.
It also relies on a database which is always changing.
Plus your customer might be using several different
web browsers and operating systems.
So you can probably imagine that it's really difficult
to plan out a web application months or even years
in advance.
There are many different variables and many moving parts.
That's why Agile teams work with shorter periods of time
and embrace frequent changes.
If they didn't make frequent changes,
then chances are when they finished the project,
their software would already be obsolete.
Embracing change also gives the customer
a lot more flexibility.
They might decide to use a different database.
An Agile mindset allows the team to pivot,
to take advantage of this new information,
so that the customer is more likely to be satisfied
with the final product.