Testing Software Architecture


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
  • 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.

Vladik Khononov photo
Invesus Group

Vladik Khononov

Nazareth Iliit, Israel

Vladik (Vlad) Khononov is a software engineer with 20 years of industry experience. During the years, he worked for companies large and small, in roles ranging from Webmaster to Chief Architect.

Vladik maintains an active media career as a public speaker, a blogger, and an author. Vlad is a regular speaker at leading software engineering conferences — O’Reilly Software Architecture, NDC, DDD Europe, and others — where he speaks on Distributed Systems, Domain-Driven Design, Microservices, and software architecture in general.

As an author, Vlad participated in the “Domain-Driven Design: The First 15 Years” book project, alongside Martin Fowler, Mel Conway, Rebecca Wirfs-Brock, and other industry leaders.

Twitter: @vladikk