From the course: Agile Foundations

Iterative delivery

From the course: Agile Foundations

Iterative delivery

- 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 timescale. 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 the 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 roller skates. 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 go from skateboard to bicycle, then from bicycle to motorcycle, finally you 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 could 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.

Contents