Показано, что опытному разработчику понятно, что не нужно решать каждую новую задачу с нуля, а можно использовать найденные решения повторно. Дизайн должен, с одной стороны, соответствовать решаемой задаче, с другой - быть общим, чтобы удалось учесть все требования, которые могут возникнуть в будущем. Должна быть достаточная гибкость. Чтобы добавление новой функциональности в проект не было серьёзной проблемой. Отмечено, что паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений.