В сложном мире, где конечные пользователи не совсем уверены, чего они хотят от программного продукта, а среда, в которой они работают, изменяется в процессе разработки ПО, нам необходим упорядоченный (смею ли я сказать «структурированный»?) подход к разработке программных продуктов — и все равно многие детали любого проекта остаются неизвестными и непредсказуемыми, если только эмерджентный подход не позволяет выявить их в нужное время