In this lesson, we're going to learn about the benefits and the challenges of Agile.
So basically understanding the two sides of the coin of Agile.
So before we talk about Agile,
let's do a quick recap of the Predictive Model and because then,
we'll see what are the challenges of that model that
Agile helps and then maybe create some new.
So in Predictive Model,
the success of a Predictive Model was based on these two key assumptions,
we can predict the requirements accurately and the transition is going to be perfect.
One of the challenge we saw is that the late we find that these assumptions are not true,
the more costly it is.
If you find very late these issues then,
the negatively impact the performance of the project.
Now, if you look at the Agile principles,
we can recap them into these two categories.
A lot of principles are related to the adaptive nature
and then a lot of principles are related to the people and their interaction.
So in the adaptive,
it's about delivering the working software frequently,
welcoming change, technical excellence and good design,
continuous improvement, and simplicity.
In people and interaction,
it's about business and developer working together regularly,
face-to-face conversation, self organizing team,
promote sustainable development, and motivated individuals.
Now let's see if we apply these principles to a project,
does it help with some of the challenges that we saw in the Predictive Model.
If you look at the first two which
is the deliver working software frequently and welcome change,
it actually helps detecting the translation issues early
because if you're delivering the working software frequently then hopefully,
and you feel showing it to the user or product owners,
they are probably finding,
"Oh, this is not what I need."
So it can detect the translation issue,
as well as it can validate the user needs earlier.
And then if you look at the first two of people and interaction,
the business and developers are working together and face to face conversation,
I believe it will also help detect the translation issues early.
So this is how Agile can solve some of the challenges from the Predictive Model,
but then, it also creates some new problem.
Let's see what those problems are.
So again, if you look at the first two,
you are changing all the time and so,
since you don't know everything that you need to build up front,
the architecture, and the design,
and the database modeling,
sometimes becomes very challenging because you have to
constantly re-factor your design or the architecture.
And then, also because of this change and because of this frequent delivery,
sometimes the leader of the organization,
they feel lack of control or this unpredictable journey.
And then again, from the people and interaction,
since the business and the developer have to work
together throughout the development process,
that means that the customer or
the business people have to be involved throughout the development process,
and so that's sometimes is the challenge for the organization.
Now, what we talked about so far,
are like at a very very high level,
what are the benefits and challenges of Agile?
Now, let's look at some of the statistics or what people or teams who are using Agile,
what are they saying about Agile?
So that is a company called Version One who has the software for managing
Agile development and they
do a survey every year and talk to teams around the globe saying,
"Using Agile, what benefits have you seen?"
So here is the result of the 11th State Of Agile survey.
So the first benefit that people are seeing is that ability to manage changing
priorities which is very obvious because Agile is flexible in terms of change.
The next one surprised me is that
project visibility is better in Agile which is interesting.
And then, it increased team productivity, that was again,
was interesting that people are providing more value when they're using Agile.
The fourth one, delivering speed and time to market,
that's pretty obvious because you are
continuously delivering so once your product is ready,
you can go to the market quickly.
But then it helps with team morale,
and then the business and IT alignment is obvious because they are working together.
And then the software quality is better
because they are using these engineering practices.
But the next one, again,
surprised me which is the project predictability.
If you're using Agile,
the teams have found that they can predict when they're going to deliver,
what they're going to deliver more accurately.
And there are many other benefits,
but I'm going to leave this video with a question for you.
Is there anything in this list that surprises you?