You just learned about temporal coupling of modules. What you may not have realized is that this analysis scales to architectures, too. In this chapter, you’ll learn to analyze architecture with respect to your team’s modification patterns.
We’ll start with an analysis of automated system tests before we extend the concept to other parts of your architecture in the next chapter. We start with tests because they’re frequently added as an afterthought, almost like a hidden architectural layer. You’ll also see how you can set up early warning systems to detect when automated tests go wrong. In the process, you’ll learn about problem-solving and how it relates to programming. Let’s dive in and see what hidden secrets we can cover in our architecture.