Фактически команда проектировщиков сложных систем и сама является сложной системой, организованной по тому же принципу. Давайте рассмотрим разные стратегии проектирования авиалайнера и системы управления им. По одной из них каждый инженер, занятый своей частью проекта, должен понимать, что делают все остальные его коллеги. Затем, когда будут готовы проекты отдельных блоков, надо установить взаимосвязи между всеми компонентами, чтобы они работали правильно, – то есть все должно быть интегрировано последовательно. Иными словами, проектировщику кресла надо знать все о двигателях, подъемной силе и тяге, стеклах иллюминаторов, герметизации и так далее, и учитывать все это при разработке функций кресла. Помимо того, что на создание проекта уйдет больше времени и денег при участии большого штата специалистов, обладающих квалификацией в разных областях, еще и возрастает риск ошибок: ведь не отклоняющееся назад кресло не просто неудобное – из-за него самолет может спикировать носом вниз.
Независимое конструирование компонентов (слоев или модулей) с независимыми функциями – более выгодная стратегия. Разработчики используют только «минимально необходимую» информацию. Все остальное проходит мимо них. В технике такой подход известен как
Однако в сложной системе информация не просто скрыта. У каждого слоя своя специфика. Чтобы перейти из одного слоя в другой, надо виртуализировать необходимую информацию, то есть вывести некие отвлеченные сведения на определенный уровень. В примере с «Боингом» разработчик кресел знает только то, что ему требуется – стандартные параметры, позволяющие предусмотреть подвижность кресла, но ограничивающие процесс проектирования так, чтобы все кресла аккуратно умещались в салоне. Ничего, что касается аэродинамики, топлива, даже количества пассажирских мест, инженер не знает. По своему опыту могу сказать, что конструкторы самолетных кресел явно не подозревают о существовании людей ростом выше 180 см.
В нашем примере кресла – взаимозаменяемые модули. Функционирование кресел не влияет на способность самолета летать. Поэтому конструктор кресел знает о самолете больше, чем вы, но меньше, чем специалист, отвечающий за корпус авиалайнера. Вместе с тем инженерам по турбинам не нужна информация о конструкции кресла, а нужно многое другое.
Природе это известно с незапамятных времен, и в процессе эволюции организмов она задействует ту же стратегию. Различные системы в вашем мозге эволюционировали с расчетом на независимую работу. Например, функции слуховой системы не зависят от обоняния. Слуховая система не получает информации о запахах, да и для обработки слуховой информации она не нужна. Вы можете потерять обоняние и прекрасно слышать жужжание пчелы.
В многослойной структуре каждый слой системы работает автономно, потому что в каждом слое приняты свои специфические