понедельник, 12 апреля 2010 г.

Основа программирование - полное проектирование

Представьте себе, что Вы просыпаетесь завтра и обнаруживаете, что строительная отрасль сделала огромный прорыв в технологиях.
Миллионы дешевых, невероятно быстрых роботов теперь могут изготовлять материалы из воздуха, имеют практически нулевую стоимость энергии, и могут восстановливать сами себя. Но это еще не все: Учитывая однозначный план строительства, роботы могут выполнить его без вмешательства человека, по незначительной стоимости.

Можно себе представить влияние таких реформ на строительную отрасль в целом, но что будет на вершине айсберга? Как бы изменилась работа архитекторов и дизайнеров, если расходы на строительство были бы незначительны? Сегодня, физические и компьютерные модели строятся и тщательно проверяются, прежде чем начинается вложение денег в строительство. Будем ли мы беспокоиться об этом, если строительство в основном бесплатно? Если конструкция рушится, ничего особенного - просто выяснить, что пошло не так, и наши волшебные роботы построят все заново. Будут и другие отличия. Строения, построенные по устаревшим моделям и дизайну будут совершенствоваться до получения приемлемого результата. У стороннего человека могут возникнуть затруднения с различием полуфабриката и конечного изделия.

Также мы не сможем прогнозировать сроки выполнения проекта. Расходы на строительство гораздо легче вычислить, чем расходы на проектирование и дизайн - мы знаем ориентировочную стоимость постройки фермы, и сколько нам понадобится балок. Соответственно, чем меньше расходы а непосредственное выполнения задачи, тем труднее становится предсказать время разработки. Результаты получается быстрее, но реальные сроки выполнения отдельных частей ускользают.

Конечно, давление конкуренции остается в силе. При минимальной стоимости строительства лидером на рынке станет та компания, которая сможет организовать самое быстрое проектирование. Таким образом, ускорение процесса проектирования становится главной задачей инженеров. Безусловно, некомпетентный в данной области человек при виде непроверенной, но выпущенной раньше других конструкции может сказать: "Это выглядит достаточно хорошо".

Некоторые особенно критичные проекты будут проработаны более тщательно, но во многих случаях потребители научатся обходиться неполным дизайном. Компания всегда можете отправить своих роботов исправить проблемы в построенном здании или станспортном средстве, которое производит. Из этого следует удивительный вывод: Наш единственный принцип заключается в резком сокращении расходов на строительство, в результате чего существенно падает качество продукта.

Нас не должна удивлять и аналогичная проблема при разработке ПО. Если мы признаем, что разработка ПО - это пректирование, творческий процесс, а не механическое кодирование, то сможем объяснить так называемый "кризис ПО". Сейчас у нас кризис проектирования: спрос на качество проектов превышает наши возможности для его обеспечения. Слишком велик соблазн использовать неполное или некачественное проектирование.

К счастью, эта модель также предлагает подсказки о том, каким образом получить лучший результат. Физическое моделирование в данном случае аналогично автоматизированному тестированию; разработки программного обеспечения не является завершенной, пока программный продукт не прошел большое количество строгих тестов. Для того чтобы проводить такие испытания более эффективно, мы находим пути, чтобы обуздать огромное пространство состояний больших систем. Улучшенные языки программирования и методы проектирования дают нам надежду. Наконец, есть один неоспоримый факт: выдающиеся продукты производятся выдающимися проектироввщиками, посвятившими себя оттачиванию своего мастерства. И программирование не является исключением.

Перевод: Протченко Алексей a.k.a Severyanin
Лицензия: [http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3]

Оригинал: Code Is Design
Автор [[Райан Браш]]
Лицензия: [http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3]

1 комментарий: