Глава 5 Эффект второй системы
Глава 5 Эффект второй системы
Adde parvum parvo magnus acervus erit. (Складывай малое с малым, и получишь большую кучу.)
ОВИДИЙ
Если ответственность за спецификацию функций отделить от ответственности за быстрое создание недорогого продукта, то чем сдержать изобретательский энтузиазм архитектора?
Принципиальное решение — обеспечение всестороннего, тщательного и доброжелательно обмена информацией между архитектором и разработчиком. Однако имеются и более тонкие решения, которые заслуживают внимания.
Дисциплина взаимодействия для архитектора
Архитектор, строящий здание, действует в рамках сметы, используя методы оценки, которые в последующем подтверждаются или корректируются заявками подрядчиков. Часто случается, что все предложения выходят за рамки сметы. Тогда архитектор пересматривает свои оценки в сторону увеличения сметы, а проект — в сторону сокращения, и цикл повторяется. Иногда он предлагает подрядчикам способы удешевления реализации его проекта в сравнении с избранными ими способами.
Сходные процессы происходят с архитектором компьютерных или программных систем. Однако у него есть то преимущество, что предложения подрядчика можно получить на ранних стадиях проектирования, часто — в любой момент. Недостатком обычно является то, что работа идет с единственным подрядчиком, который может менять цену в зависимости от степени своей удовлетворенности проектом. На практике, процесс общения, начатый на ранних этапах и продолжающийся непрерывно, может дать архитектору верную оценку стоимости, а разработчику — уверенность в проекте, не снимая при этом четкого разграничения сфер ответственности.
У архитектора, когда он сталкивается с неприемлемо высокой стоимостью, есть два выхода: сократить проект или воздействовать на стоимость, предлагая более дешевые способы реализации. Второй способ неизбежно вызывает эмоции, ведь архитектор оспаривает то, как строитель справляется со своим делом. Чтобы успешно справиться с этим, архитектору необходимо:
• помнить, что ответственность за изобретательность и творчество, проявляемые при реализации, несет строитель, поэтому архитектор предлагает, а не требует;
• всегда быть готовым предложить некоторый способ реализации своих замыслов и быть готовым согласиться с любым другим способом, позволяющим решить задачу не хуже;
• выдвигая такие предложения, действовать без шума и огласки;
• не рассчитывать на признательность за сделанные предложения.
Обычно разработчик парирует предложением изменений в архитектуре. Часто он прав — реализация какой-нибудь малосущественной детали может оказаться неожиданно дорогостоящей.
Самодисциплина — эффект второй системы
Первый проект архитектора стремится к скромности и ясности. Архитектор понимает, что не знает, чем занимается, поэтому он занимается этим со старанием и самоограничением.
При работе над первым проектом ему постоянно приходят в голову то одни, то другие «украшения». Они откладываются в сторону для использования «в следующий раз». В конце концов, первая система закончена, и архитектор, с твердой уверенностью в себе и продемонстрированным освоением этого класса систем, готов к созданию нового проекта.
Эта вторая система таит наибольшие опасности для проектировщика. При работе над третьей и последующими системами закрепляется полученный ранее опыт в отношении общих характеристик таких систем, а различия между ними выявляют те части опыта, которые носят частный характер и не могут быть обобщены.
Общая тенденция заключается в перегруженности проекта второй системы идеями и украшательствами, благоразумно отложенными в сторону при работе над первым проектом. В результате получается, говоря словами Овидия, «большая куча». Рассмотрим, например, архитектуру IBM 709, воплощенную позднее в машине 7090. Это — модернизация, вторя система для очень успешной и хорошо скроенной системы 704. Набор команд был настолько богат и изобилен, что регулярно использовалась примерно лишь половина его.
Рассмотрим в качестве более сильного примера архитектуру, разработку и даже реализацию компьютера Stretch, которые дали выход сдерживающимся изобретательским стремлениям многих людей, для большинства которых это было вторая система. Вот что пишет в своем обзоре Стрейчи (Strachey):
У меня создалось впечатление, что некоторым образом Stretch являет собой окончание определенного направления разработок. Как и некоторые ранние компьютерные программы, эта система чрезвычайно изобретательна, чрезвычайно сложна и очень эффективна, но в то же время является сырой, расточительной и неизящной, оставляя ощущение, что эти вещи можно делать лучшим образом.[1]
Operating System/360 была второй системой для большинства своих проектировщиков. Группы проектировщиков пришли после работы над дисковой операционной системой 1410-7010, операционной системой Stretch, системой реального времени Project Mercury и IBSYS для 7090. Едва ли кто-то из них имел опыт работы над двумя предшествующими операционными системами. Поэтому OS/360 является ярким примером эффекта второй системы, аналогом Stretch в искусстве программирования, к которому в полной мере применимы и похвалы, и упреки приведенной критики Стрейчи.
Например, в OS/360 отводится 26 байт для резидентной процедуры преобразования даты, чтобы правильно обрабатывать 31 декабря в високосном году (когда это 366-й день). Это можно было оставить оператору.
Эффект второй системы имеет и другое проявление, кроме простого украшательства функциями. Это — склонность к усовершенствованию методов, само существование которых стало анахронизмом благодаря изменениям в базовых принципах системы. OS/360 содержит многочисленные примеры, подтверждающие это.
Рассмотрим редактор связей, предназначенный для загрузки независимо скомпилированных программ и разрешения их перекрестных ссылок. Помимо этой основной функции он также управляет программными оверлеями. Это одно из лучших когда-либо созданных средств работы с оверлеями. Оно позволяет создавать оверлейную структуру внешним образом при редактировании связей, не трогая исходного кода. Оно позволяет изменять структуру оверлеев без перекомпиляции при каждом прогоне. Оно предоставляет богатый выбор полезных опций и возможностей. В известном смысле, это завершающий итог многолетней разработки технологии статических оверлеев.
И в то же время это последний и совершеннейший динозавр, поскольку входит в систему, в которой многопрограммность является обычным режимом, а динамическое распределение памяти — базовым принципом. Это вступает в прямой конфликт с понятием использования статических оверлеев. Несколько лучше работала бы система, если бы усилия, потраченные на управление оверлеями, были перенаправлены на то, чтобы ускорить работу средств поддержки динамического распределения памяти и перекрестных ссылок!
Более того, редактор связей требует так много памяти, и сам содержит столько оверлеев, что даже при использовании только для редактирования без управления оверлеями уступает в скорости большинству системных компиляторов. Ирония состоит в том, что назначение редактора связей — избежать повторной компиляции. Как у конькобежца корпус оказывается впереди ног, так и усовершенствования продолжались, пока не вышли далеко за рамки системных принципов.
Другим примером этой тенденции является отладчик TESTRAN. Это совершенный пакетный отладчик, предоставляющий действительно элегантные средства получения мгновенных снимков и дампов памяти. В нем используется понятие управляющих разделов и искусная технология генерации, позволяющие осуществлять избирательную трассировку и получение мгновенных снимков без дополнительных расходов на интерпретацию или рекомпиляцию. Здесь пышным цветом расцвели впечатляющие концепции операционной системы Share Operating System[3]для модели 709.
Между тем устарела сама идея пакетной отладки без рекомпиляции. Главный вызов был брошен интерактивным вычислительным системам с интерпретаторами языков программирования и пошаговыми компиляторами. Но даже в системах с пакетной обработкой появление компиляторов с быстрой компиляцией и медленным выполнением сделало более предпочтительной технологию отладки на уровне исходного кода и получения мгновенных снимков. Насколько лучше оказалась бы система, если бы силы, потраченные на проект TESTRAN, были перенаправлены на ускоренное создание лучших средств для интерактивной работы и быстрой компиляции!
Еще один пример — планировщик, предоставляющий действительно отличные возможности для управления потоком фиксированных пакетов заданий. На практике этот планировщик является усовершенствованной, улучшенной и наделенной разными украшениями второй системой, которой предшествовала дисковая операционная система 1410-7010 — система пакетной обработки, не являющаяся многопрограммной, за исключением ввода-вывода, и предназначенной, главным образом, для деловых приложений. В этом качестве планировщик OS/360 хорош. Но на него почти никакого влияния не оказали потребности OS/360 в удаленном вводе заданий, многопрограммности и резидентном размещении интерактивных подсистем. И действительно, проект планировщика затрудняет решение этих задач.
Как архитектору избежать эффекта второй системы? Очевидно, пропустить свою вторую систему он не может. Но он может отдавать себе отчет в особых опасностях, которым она его подвергает, и проявить дополнительную самодисциплину, чтобы избежать функционального украшательства и сохранения функций, нужда в которых отпала ввиду изменений в принципах и целях.
Порядок, способный открыть архитектору глаза, заключается в том, чтобы присвоить численное значение каждой, пусть малой, функции: характеристика x должна обойтись не более чем в m байтов памяти и n микросекунд на один вызов. Эти величины должны служить руководством при принятии начальных решений, а также напоминанием и руководством при реализации.
Как менеджеру проекта избежать эффекта второй системы? Настаивать на том, чтобы его старший архитектор имел опыт разработки хотя бы двух систем. Кроме того, будучи осведомленным о возможных опасностях, он может предъявлять необходимые требования для того, чтобы в детальном проекте нашли полное отражение идеологических концепций и цели.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Глава 3 Эффект Бэйба Рута Частота против величины выигрыша в ожидаемой ценности
Глава 3 Эффект Бэйба Рута Частота против величины выигрыша в ожидаемой ценности В реальном мире нет легкого способа гарантировать финансовую прибыль. По крайней мере, полезно будет осознать тот факт, что мы чаще проигрываем с умом, чем выигрываем по
Глава 3. Эффект Бэйба Рута
Глава 3. Эффект Бэйба Рута 1. Я не приравниванию инвестирование к азартным играм. На самом деле долгосрочное инвестирование противоположно азартной игре. В азартных играх чем дольше вы играете, тем больше у вас шансов проиграть. В инвестировании чем дольше вы
Глава 8 Эффект сожительства
Глава 8 Эффект сожительства Видеть хорошее в своих проблемах – не лучший способ их решения. Моя жизнь – постоянное бегство из этого болота. Роуз Лэйн, писательница и одна из основателей американского либертарианского{15} движения Когда Дженнифер исполнилось тридцать
Глава 15 Переход во второй порядок
Глава 15 Переход во второй порядок Первый порядок человеческого развития, этапы «человек действия» от БЕЖЕВОГО до ЗЕЛЁНОГО цМема, стал кульминацией нашей приматной природы. Слушая вечерние новости, иногда кажется, что мы унаследовали бриз, а не ветер. Несмотря на
Глава пятая. Сетевой эффект
Глава пятая. Сетевой эффект Настолько мощный, что заслуживает отдельной главыМеня всегда поражали люди, которые будто знают всех и каждого. Наверняка и у вас есть компанейские друзья, которым не составляет никакого труда затеять дружескую беседу с незнакомым человеком и
Глава седьмая. Эффект масштаба
Глава седьмая. Эффект масштаба Больше может означать лучше, если только вы знаете, что делаетеБольше — лишь относительно лучше.В отношении ценовых преимуществ, вызываемых эффектом масштаба, важно помнить следующее: не так важен абсолютный масштаб фирмы, как ее размер
Глава 9 Эффект текилы
Глава 9 Эффект текилы Даже активно разворачивая глобальную экспансию, Morgan Stanley готовился к худшему. Руководство фирмы хотело встретить во всеоружии любую финансовую катастрофу. А что, если фондовый рынок рухнет? А что, если большинство крупных компаний прогорит? А что,
Второй признак: наличие разработанной системы культа
Второй признак: наличие разработанной системы культа Имеется в церкви мамоны и свой культ, которого придерживаются ее члены. Что такое культ применительно к религиозной сфере? «Культ религиозный (лат. cultus — почитание, поклонение, от colo — возделываю, почитаю) —
Глава 5. Второй золотой век
Глава 5. Второй золотой век Владеть домом величиной с Тадж-Махал и содержать его — это очень дорого. Керри Делроуз, директор по дизайну интерьеров компании «Jones Footer Margeotes Partners» в Гринвиче любезно рассказал мне, сколько стоит должным образом обставить поместье. «Ковры
Вопрос 10 Реакция потребителя на изменение цены. Эффект замены и эффект дохода.
Вопрос 10 Реакция потребителя на изменение цены. Эффект замены и эффект дохода. ОТВЕТИЗМЕНЕНИЕ ЦЕНЫ на одно благо при фиксированном доходе и неизменных ценах на другие блага вызывает смещение бюджетной линии в точку, более удаленную или более близкую к началу
5. Эффект дохода и эффект замещения
5. Эффект дохода и эффект замещения Закон спроса характеризуется тем, что объемы покупок и благ, предназначенных для потребления, связаны с ценой обратной зависимостью. Сама структура спроса непосредственно зависит от действия рыночного механизма и условий
Глава XVIII Нестабильность и две системы Глава XIX Инфляция и две системы Глава XX Экономическая теория тревоги: проверка
Глава XVIII Нестабильность и две системы Глава XIX Инфляция и две системы Глава XX Экономическая теория тревоги: проверка Часть V. Общая теория
Глава 16 ВТОРОЙ ПЕРЕЛОМНЫЙ
Глава 16 ВТОРОЙ ПЕРЕЛОМНЫЙ Глава о том, что смелость покоряет города и сердца моделей; о разности бизнесового и богемного потенциалов; и о российском факторе в украино-норвежском тандеме.Стив Джобс в своей знаменитой речи перед выпускниками Стэнфордского университета
Глава четвертая Эффект вырождения
Глава четвертая Эффект вырождения В книге британского философа Альфреда Норта Уайтхеда «An Introduction to Mathematics» («Введение в математику»),[16] которая вышла сто лет назад, говорилось: «Цивилизация совершенствуется по мере того, как увеличивается число операций, которые мы