они должны проголосовать за продолжение или отмену операции.
Самое простое решение, чтобы понять, какой вариант выбрать, — собрать данные с других компьютеров и применить некое правило, например посчитать голоса, чтобы определить предпочтительное решение. Если все машины получают одинаковое количество голосов, они все принимают одно и то же решение. Проблема заключается в том, что компьютер может выйти из строя и не успеть проголосовать. Если такое случается, все остальные компьютеры в сети будут вечно ждать голоса своего «напарника», который перестал функционировать. Поскольку в асинхронной системе срок ожидания не обозначен четко, ожидающие ответа компьютеры не знают, когда прекращать ждать и продолжать оперировать уже имеющимися голосами.
Для начала инженеры, которые изучали эту проблему, предложили очевидное решение. Вместо того чтобы ждать ответа от всех машин, достаточно будет получить обратную связь от большинства из них. Представьте, например, что действует такое правило: если большинство устройств посылают сигнал «продолжить», компьютер, отправивший запрос, тоже решает продолжать. В противном случае он отменяет операцию — на всякий случай. На первый взгляд, правило может способствовать консенсусу — до тех пор, пока отказывает лишь небольшое число машин. Однако, к удивлению многих специалистов этой области, в работе, опубликованной в 1985 году, трое ученых-информатиков — Майкл Фишер, Нэнси Линч (мой научный руководитель в аспирантуре) и Майкл Патерсон, — виртуозно оперируя математической логикой, доказали, что нет такого алгоритма для асинхронной распределенной системы, который мог бы гарантировать, что консенсус будет достигнут всегда, даже если есть уверенность, что из строя может выйти максимум один компьютер [91].
Не буду утомлять вас техническими деталями [92], но становится понятно, как работает алгоритм консенсуса в распределенных системах. Ясно, что в асинхронных системах сложно обеспечить координацию действий, поэтому практически всегда требуются дополнительные затраты, чтобы превратить их в синхронные. Что касается распределенных систем, исследование, проведенное по следам знаменитой работы 1985 года, предложило несколько вариантов синхронизации. Одно из кардинальных решений (например, они используются в системах электродистанционного управления и в работе устойчивого к сбоям оборудования для транзакций кредитных карт) — соединить все компьютеры в общую электрическую сеть, чтобы они работали с одинаковой скоростью. Такой подход поможет избежать непредвиденных задержек при ожидании ответа и позволит оборудованию сразу определить, вышел ли компьютер из строя.
Поскольку создать единую электрическую сеть иногда сложно, популярным решением для превращения систем в синхронные стало специальное программное обеспечение. Оказалось, что, максимально эффективно используя знания о задержках при передаче сообщений и скорости работы процессоров, можно написать программы, которые способны сделать коммуникацию стабильной или смоделировать поведение надежных машин и помочь синхронизировать работу ненадежных станций в системе.
В начале интернет-эры борьба с асинхронностью играла решающую роль, и предложенные варианты в числе прочего помогли управлять огромными базами данных таких компаний, как Amazon и Google. В 2013 году Лесли Лэмпорт, главная фигура в области распределенных систем, получил премию Тьюринга — самую престижную награду в области информатики — за разработку алгоритмов для синхронизации распределенных систем [93].
В этой технической информации о синхронной и асинхронной коммуникации меня поражает то, что она кардинально отличается от представлений деловых людей, которые энергично пытаются решить те же проблемы на своем рабочем месте. Как мы уже знаем, руководители сосредоточились на тех трудозатратах, которых требует синхронная коммуникация, например когда вы не можете до кого-то дозвониться или вам нужно ехать на лифте на другой этаж, чтобы побеседовать с нужным сотрудником. Они были уверены, что если им удастся избежать этих дополнительных трудозатрат с помощью инструмента, подобного электронной почте, то взаимодействие станет более эффективным. Однако ученые-информатики пришли к противоположным выводам. Исследуя асинхронную коммуникацию с точки зрения теории алгоритмов, они обнаружили, что взаимодействие с непредвиденными задержками приводит к возникновению новых проблем. В то время как деловые люди рассматривали синхронность как препятствие, которое нужно преодолеть, специалисты в области вычислительной техники начали понимать, что это необходимый элемент для эффективного взаимодействия.
Разумеется, люди не компьютеры. Но многие факторы, которые усложняют работу асинхронных распределенных систем, в том или ином виде можно обнаружить в среде пытающихся наладить взаимодействие сотрудников. Синхронность может обойтись дорого — это касается как работы людей, так и компьютерных систем. Попытки скоординировать деятельность в отсутствие синхронности тоже обходятся дорого. И эти выводы как нельзя лучше описывают то, что многие ощутили на себе, когда общение по работе было отдано на откуп электронной почте. Сложности, связанные с попытками дозвониться, бесконечными записками и совещаниями, сменились невероятно большим объемом неоднозначных сообщений, которые сотрудники отправляют и получают в течение дня. Как выяснили инженеры, бившиеся над тем, чтобы добиться консенсуса в компьютерной сети, асинхронность — это не улучшенная синхронность, а новые проблемы. Вопрос, который можно было решить в течение нескольких минут посредством телефонного разговора или личной встречи, теперь порождает десятки сообщений, и даже после этого нет гарантии, что стороны придут к удовлетворяющему всех решению. Другими словами, есть вероятность того, что, как только в вашем офисе появится такой стиль общения, вы не сможете избежать влияния гиперактивного коллективного разума.
ВТОРАЯ ПРИЧИНА: ЦИКЛ «ПОСТОЯННО НА СВЯЗИ»
Профессор Гарвардской школы бизнеса Лесли Перлоу — эксперт по сложившейся сейчас культуре на рабочем месте, которая предполагает, что сотрудник постоянно на связи. В своей книге Sleeping with Your Smartphone, выпущенной в 2012 году, Лесли рассказывает, что обратила внимание на эту проблему в ходе исследований, которые проводила с 2006 по 2012 год. В этот период появились смартфоны и гиперактивный коллективный разум начал набирать обороты. Перлоу опросила более 2500 руководителей и специалистов, чья работа отличалась «высокой загруженностью и ответственностью» [94]. Профессор расспрашивала сотрудников о привычках, связанных с работой: сколько часов в неделю они трудятся, часто ли проверяют электронную почту в свободное время, кладут ли телефон рядом с собой, когда ложатся спать. Лесли получила однозначные ответы: сотрудники почти всегда были «на связи».
Но для нас интерес представляет то, что Перлоу не остановилась на этом и стала копать глубже, выясняя, как чувствовали себя люди, находясь в состоянии непрерывной коммуникации. Она обнаружила, что у сотрудников сложился неправильный цикл ответного социального взаимодействия. Лесли назвала это явление «постоянно на связи». Цикл начинается со справедливых посягательств на ваше время. Предположим, сейчас 2010 год. Вы только что приобрели смартфон и понимаете, что теперь можете ответить на вопросы клиента, которые поступили уже после окончания рабочего дня, или быстро ответить коллегам, находящимся в другом часовом поясе. Клиенты и коллеги понимают, что вы доступны в определенные часы, и начинают присылать еще больше запросов и ожидать вашей оперативной реакции. Столкнувшись с возросшим потоком сообщений, вы чаще проверяете свой телефон, чтобы успевать