If anything, the Agile, Lean, and DevOps movements have proven that software architecture is not a “one man show”. Instead, in order to succeed, software design is a group effort that requires involvement from different stakeholders. In this session I’d like to talk about the testing aspect of software architecture and design.
We will see what exactly is this “important stuff”, that we use to call software architecture; what are its goals, and what differentiates a good architecture from a bad one? Next, we will discuss how to watch over a system’s architecture during the various stages of its development:
* The differences between under and over-engineering
* How to identify forming of a “big ball of mud” in early stages; and
* What are the symptoms of an exhausted architecture that is breaking under its own weight
Ultimately, I’ll demonstrate how such tests can be automated using static code analysis tools.