Чтение онлайн

ЖАНРЫ

Мифический человеко-месяц или как создаются программные системы
Шрифт:

• достаточно дешевы, чтобы быть доступными практически каждому;

• пригодны для небольших приложений;

• соответствуют потребности человека в творческой деятельности.[21]

Это как раз те замечательные свойства, которые микрокомпьютерная революция дала компьютерной промышленности и ее потребителям, которыми теперь стала широкая публика. Средний американец может сегодня позволить себе не только собственный компьютер, но и набор программных средств, для покупки которого 20 лет назад потребовалось бы королевское жалованье. Каждую из целей, поставленных Шумахером, стоит рассмотреть отдельно. Представляет также интерес, в какой мере они достигнуты — особенно последняя. В одной области за

другой обычным людям и профессионалам становятся доступны все новые средства самовыражения.

Отчасти, развитие в других областях происходит так же, как в создании программ — благодаря устранению побочных трудностей. Побочные ограничения на рукописи накладывались длительностью и стоимостью перепечатывания для внесения исправлений. Работу объемом в 300 страниц иногда приходилось перепечатывать каждые три или шесть месяцев, а в перерыве чиркать в рукописи. Трудно было оценить влияние внесенных изменений на общий ход мысли и ритм слов. Сейчас чудесным образом рукописи стали постоянно меняющимися.[22]

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

Творческие возможности усилились также благодаря новым гибким вспомогательным инструментам. Один пример — сочинение прозы, при котором мы пользуемся проверкой орфографии, грамматики, стилистическими подсказками, системами библиографии и замечательной возможностью одновременно видеть страницы в окончательно отформатированном виде. Мы еще не оценили значения мгновенного доступа к энциклопедиям и безграничным ресурсам всемирной паутины для использования писателем импровизированного поиска.

Самое главное, обретенная изменчивость материала упрощает изучение многих в корне различных возможностей, когда творческая работа только обретает форму. Вот другой пример, когда порядок величины в количественном параметре — в данном случае, времени, необходимом для внесения изменений, — производит качественный скачок в подходе к задаче.

Инструменты для черчения позволяют проектировщикам зданий за час творческой работы исследовать гораздо больше вариантов. Подключение компьютеров к синтезаторам и программы, позволяющие автоматически записывать или проигрывать ноты, значительно облегчают фиксацию бренчания по клавишам. Цифровая обработка фотографий, как в Adobe Photoshop, позволяет в течение считанных минут провести эксперименты, для которых потребовались часы работы в фотолаборатории. Электронные таблицы позволяют легко исследовать десятки альтернативных сценариев типа «что, если».

Наконец, благодаря вездесущести персональных компьютеров создается совершенно новый материал. Гипертексты, предложенные Ванневаром Бушем в 1945 году, осуществимы только с помощью компьютеров.[23]Мультимедийные презентации и опыты были сложнейшими задачами — слишком много хлопот — до того, как стало возможным проводить их с помощью компьютеров и соответствующего богатого программного обеспечения. Системы виртуальной реальности, пока еще дорогие и не широко распространенные, в будущем станут такими и создадут новый материал для творчества.

Микрокомпьютерная революция изменила характер разработки программного обеспечения. Технологии разработки программного обеспечения 1970-х сами изменились в результате

микрокомпьютерной революции и вызвавших ее технических достижений. Устранена значительная часть второстепенных сложностей технологий разработки программного обеспечения. Быстрые персональные компьютеры стали обычным инструментом разработчика, и время оборачиваемости стало почти устаревшим понятием. Сегодняшний персональный компьютер быстрее не только суперкомпьютера 60-го года, но и Unix-станции 1985-го. Это значит, что компиляция быстро осуществляется даже на скромных по мощности машинах, а благодаря большому объему памяти отпали задержки при компоновке с использованием дисков. Большая память позволяет также хранить в памяти таблицы символических имен вместе с объектным кодом, в результате чего становится обычной высокоуровневая отладка без перекомпиляции.

За последние 20 лет мы почти покончили с использованием разделения времени как методологией разработки программного обеспечения. В 1975 году разделение времени только-только вытеснило пакетную обработку в качестве наиболее распространенной технологии. Сеть использовалась для того, чтобы дать разработчику программного обеспечения доступ как к общим файлам, так и к большим вычислительным мощностям для компиляции, компоновки и тестирования. Сегодня вычислительную мощность обеспечивает персональная рабочая станция, а сеть используется в основном для обеспечения совместного доступа к файлам бригады, разрабатывающей продукт. Клиент-серверные системы меняют и упрощают технологию общего доступа для загрузки, сборки и выполнения контрольных примеров.

Сходный прогресс произошел с пользовательскими интерфейсами. Интерфейс WIMP обеспечивает гораздо большие удобства при редактировании текстов программ и текстов на естественном языке. Экран размером 24 строки на 72 колонки сменился полностраничным или даже двухстраничным экраном, поэтому программисты могут видеть изменения, которые они делают, в значительно более широком контексте.

Целая новая программная отрасль — коробочные пакеты

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

Классическая программная индустрия. В 1975 году программная индустрия имела несколько отдельных и до некоторой степени различных составных частей, существующих по сей день:

• Производители компьютеров, поставляющие также операционные системы, компиляторы и утилиты для своих продуктов.

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

• Разработчики заказных программ, работающие по контракту с пользователем. Многие из этих подрядчиков специализируются на приложениях для военной сферы, где требования, стандарты и маркетинговые процедуры носят специфический характер.

• Разработчики коммерческих пакетов, в то время разрабатывавшие, в основном, большие приложения для специфических рынков, такие как пакеты статистического анализа и автоматического проектирования.

Том Демарко отмечает фрагментацию классической индустрии разработки программного обеспечения, особенно в части пользователей приложений:

Я не ожидал, что эта область распадется на отдельные ниши. Приемы работы в большей степени определяются нишей, чем использованием общих методов анализа систем, языков программирования и технологий тестирования. Ada был последним из языков общего назначения, и он стал языков ниши.

Поделиться с друзьями: