Без заголовка
test-driven programming - это все побеждающий драйв, дизайн делается так, чтобы сразу можно было тестировать, потом пишут тесты - потом собственно имплементацию
implementation - это ключевое слово в java,
вспоминая мой дизайнерский опыт - подход был в принципе похож