- One of the biggest changes for Agile teams
is delivering the product in iterations.
These are usually called sprints.
Now, again, there's nothing in the Agile Manifesto
that says that teams must deliver in sprints.
It's just that decades after the manifesto,
most teams find that these iterations are the best way
to deliver a product in a shorter time scale.
It also helps the team make changes quickly
and deliver valuable software at a continuous pace.
Now, that means that sprints help you accomplish
two key Agile values, one and two,
and principles three, seven, and eight.
Now, iterative software delivery
is a very common practice for Agile teams,
but it's certainly possible to be an Agile team
and not deliver in sprints.
You'll see this a little later on
in the discussion about Kanban.
Most Agile teams focus on delivering the product
incrementally and iteratively.
You've seen that it's very common for Agile teams
to deliver incrementally in a two-week sprint.
That's because the team will deliver
in a two-week increment,
but these teams also work in sprints
to deliver the product iteratively.
Iterative delivery is a process on its own,
but you can really think of it more as refinement.
The team is improving on the product
at the end of every sprint.
Imagine you wanted to build a car
using a typical waterfall style phased approach.
You'd probably start out
with the frame of the car in the first phase.
Then you'd add wheels and a windshield in the second phase.
Then you'd add seats and paint the car in the final phase.
Each phase would fall into the next like a waterfall.
You couldn't actually drive the car
until the project was complete.
So you wouldn't get the value of the car
until the final delivery.
Now, imagine an Agile team's
incremental and iterative approach.
In this case, you would start out
building a smaller increment of the car's value.
So your team would work on delivering something
like a pair of rollerskates.
I know it sounds a little strange to have roller skates
to start with instead of a car.
But remember, we're talking about iterative delivery
and your team could never deliver a car in a sprint.
Now, remember in Agile, you're focusing on the value.
So here, the value is actually transportation.
You don't have a finished car,
but you've taken an incremental step
to transport yourself from one place to the next.
Now you'll take an iterative approach
to improve the product's increment.
You would refine it and make it better.
So the next increment might be a skateboard.
You're refining the product's value.
Each sprint you would refine the product a little bit more.
You'd go from skateboard to bicycle,
then from bicycle to motorcycle,
finally, you'd go from motorcycle to car.
You're not building out phases of a car,
and instead you're refining a simple transportation product
into something more valuable.
One advantage to this approach is that your customer
is getting value at the end of every sprint.
Your customer can decide that they don't really need a car,
and just ride away with a new motorcycle.
The team is also learning about the product.
They're understanding more about what their customer wants
at the end of every sprint.
The key thing to remember is that this iterative delivery
is one of the biggest shifts in your mindset
when working on an Agile team.
Most teams instinctively break up
large products into phases.
They don't like to build and refine.
Instead, they like to plan out everything
and put it together in the end.
If your Agile team has a hard time finishing their sprints,
then be sure to look here to see if they're having trouble
working with iterative delivery.