Chapter 21. Delivery: bringing it all together

 

At this point you may be thinking, “Why are you talking about delivery?” Isn’t delivery easy in an agile environment? After all, you make sure each iteration is production ready. If each iteration is deployable, deploying should be a piece of cake.

The fact that your code is in a deployable state is a plus; but in reality, releasing code can be a major effort. In some environments, releasing code can be more complicated than building code.

For the purposes of this chapter, we’ll discuss delivery from the perspective of a complete project or release. We’ll look at deploying a set of features with a synchronized delivery to the production environment. This type of deployment is common for teams that release on a synchronized schedule, or when you deliver a project with several interdependent features. This is the case with the Auctionator for Acme Media: several auction features work together to bring value to the end user, so they must be deployed at the same time.

When you build code, you’re working with a small group, and it’s easier to manage the project. When you release the code, you’ll affect end users, customers, marketing, support, stockholders, stakeholders, training teams, and help desks. In some companies, a compliance group must be engaged to release the code.

21.1. When to release

21.2. Final testing

21.3. Preparing support groups and processes

21.4. Communication and training

21.5. Ready to release

21.6. Enough planning; let’s deploy

21.7. Key points

21.8. Looking forward