So now let's talk about a specific agile method, which
is also one of the first ones, extreme programming, also called
XP. And to introduce XP, I'm going to start with
a quote. The quote says XP is a lightweight methodology for
small to medium sized teams developing software in the face
of vague or rapidly-changing requirements. And this is a quote from
Kent Beck the American Software Engineer that created extreme programming.
And by the way Beck was one of the original 17
developers who signed the manifesto in 2001. And as you can see
we are still talking about the methodology. So we are not just
talking about going out and just start writing software. There are principles.
And there are practices that we need to follow, but we're going
to do it in a much more agile, and a much more
flexible ways than we did for our software processes. And also note
that the vague and rapidly changing
requirements are explicitly mentioned, because this
is really one of the important parts about all of this agile methodologies.
so what is XP? XP is a. Lightweight. Humanistic.
Discipline. Of software development. It is lightweight because it doesn't
overburden the developers with an invasive process. So process
is kept to a minimum. It's humanistic because as we
said, it's centered on people. People, developers, customers, are
at the center of the process. It's a discipline, as
we said, it includes practices that we to Follow.
And finally, is of course about software development. Software development
is a key point of the whole method. In XP, developing
is like driving, imagine having a road, a wind road, we need
to able to drive our car down the road, take the
abrupt turns, react promptly to changes, for example obstacles on the road.
So, in a nutshell, change is the only constant. Eyes always
have to be on the road and it's about steering and not
pointing, and XP is trying to do the same thing, while creating
softer systems. In XP we need to adopt a mentality of sufficiency,
what does that mean? How would you program if you had all
the time in the world? No time constraints at all, you will probably
write tests instead of skipping them, because there's no more resources. You
will probably restructure your code often,
because you see opportunities to improve it,
and you will take them. And you will probably talk to fellow
programmers and with the customer, interact with them, and this is actually the
kind of mentality that XP is trying to promote and agile processes
in general. And we will see that the following some of the practices
that XP is advocating, you can actually achieve these goals and you can
actually behave in this way. And the
development process is going to benefit overall.