An important responsibility for many software architects is fostering and defending non-functional software qualities. These qualities are numerous, and they can interact in complex ways, so techniques for keeping abreast of them are vital for gauging the health of an architecture.
In this presentation I will focus on a single quality attribute, testability, and in particular I will explore how maintaining testability will tend to improve many other attributes. Among other things, highly testable code is modular and loosely coupled by nature, is maintainable, supports scaling out development, and can improve feedback loops. By ensuring testability in a system you not only support these and other related qualities, but you also provide an important means to verify that they are being met. Ultimately, I will look at how testability (and testedness) can be useful and reliable proxy or approximation for a wide range of qualities.
Video producer: http://xpdays.com.ua/