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