Все списки хороши, когда в них мало пунктов, и они обозримые. Мой чеклист критериев хорошей архитектуры таков:

1. она учитывает такие интересны разных людей, о которых не задумываешься (например, компетенции команды разработки и ресурсы команды тестирования).

2. она аддитивная (т.е. позволяет не менять уже написанное, а добавлять).

3. она позволяет откладывать глобальный рефакторинг как можно дольше, в идеальном случае — за пределы времени жизни системы