Chapter 7. Building for Production
In Chapter 6, we discussed the importance of preparing a backlog that makes the most of continuous deployment. In particular, you saw how narrow vertical slicing makes our changes more granular and gives us better control over incremental code updates to production.
While vertical slicing is necessary, it is not sufficient. Typically, when we talk about a vertical slice we tend to focus only on the functional changes required to implement a new feature. However, to safely deploy an increment to production you must consider a lot more than just functional changes. You also must consider the numerous cross-functional aspects of the application that are less visible.
Cross-functional requirements (CFRs)1 are the aspects of a system that are not tied to any specific functionality but are nevertheless fundamental for the system to function correctly. Figure 7-1 shows some example CFRs and how they are transversal to different user stories.
Although CFRs are not tied to any given feature, they can certainly be impacted by any given feature. Any code change in production can affect how well a system fulfills its CFRs, so we must consider them carefully during the refinement process for new functionality. This becomes especially true in a workflow where we continuously deploy changes. Personally, I like to consider ...
Get Continuous Deployment now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.