Это слагаемые эволюционного подхода к созданию комплексных систем. Подобные системы не являются исключительно плодами нашего воображения, они — результат продвижения вперед небольшими шагами, когда мы пробуем идеи и реагируем на результат их реализации. Это те инструменты, с помощью которых мы осуществляем исследования и делаем открытия.
Чтобы стать экспертами в познании, нам придется освоить пять техник:
• итерации;
• сбор и анализ обратной связи;
• инкрементализм;
• экспериментирование;
• эмпиризм.
программная инженерия — это эмпирический научный подход к поиску эффективных, экономичных решений практических задач разработки ПО.
неформальном применении базовых научных принципов; другими словами, она описывает инженерию.
Принципы научного метода познания, которые большинство из вас изучали еще в школе, в Википедии описаны так.
• Описание. Понаблюдайте за текущим состоянием и опишите его.
• Гипотеза. Создайте теорию, которая может объяснить ваше наблюдение.
• Предположение. Сформулируйте предположение на основе гипотезы.
• Эксперимент. Протестируйте свое предположение.
Программная инженерия — это эмпирический научный подход к поиску эффективных, экономичных решений практических задач при разработке ПО.
Эта книга рассказывает о дисциплинах, процессах и идеях, которые нужно применять, чтобы постоянно создавать лучший продукт.
Итак, что необходимо, чтобы применять итеративный подход? Прежде всего, разделить задачу на небольшие этапы. Необходимо сократить область влияния каждого изменения и делать изменения небольшими порциями — чем они меньше, тем лучше.
Команды, работающие по принципам agile, исходят из того, что они совершают ошибки, и тем самым снижают стоимость этих ошибок.
Если вы работаете над простой и не очень значимой системой, качество проектирования не столь важно. Если же вы создаете что-то более сложное, необходимо разделить задачу на составные части и работать с каждой по отдельности, чтобы контролировать ее сложность.