Шрифт:
Изобретение стремян позволило империи Каролингов создать новый вид ударных войск, без которого она не смогла бы выжить. Это вылилось в отъем земель и, в свою очередь, в формирование совершенно новой системы правления. Вот так весьма полезное в своей сфере изобретение привело к пышному расцвету феодализма. Только что я привел аргументы в пользу того, что больше чем тысячу лет спустя внедрение весьма полезного в определенной сфере инструмента — электронной почты — привело к тому, что в современных офисах правит гиперактивный коллективный разум. Чтобы обосновать это заявление, давайте поближе познакомимся со сложными лежащими в основе факторами. Вероятно, именно они привели к тому, что от рационального использования электронной почты мы перешли к менее рациональной работе под влиянием гиперактивного коллективного разума. Можно выделить по меньшей мере три основные причины произошедшей трансформации.
ПЕРВАЯ ПРИЧИНА: СКРЫТЫЕ ЗАТРАТЫ АСИНХРОННОСТИ
Как я уже говорил, электронная почта помогла решить практическую проблему, вызванную увеличением размера офисов. Возникла потребность в эффективной асинхронной коммуникации. Иными словами, требовался быстрый обмен сообщениями, притом что отправителю и получателю необязательно было одновременно находиться на своих рабочих местах. Вместо того чтобы играть в телефонные кошки-мышки с коллегой, который сидит в другой части здания, можно было в любое время отправить короткое сообщение. А получатель мог прочитать его, когда у него будет возможность.
Многим казалось, что подобная асинхронная коммуникация намного эффективнее. Один из тех людей, с кем я общался в ходе своего исследования, сравнил синхронную коммуникацию (те виды общения, когда вам нужно беседовать с другими людьми) с устаревшими бизнес-технологиями вроде факса. Он написал, что это древнее ископаемое «позабавит ваших внуков», когда вы будете вспоминать, как люди работали раньше [89] .
Однако проблема в том, что электронная почта не стала волшебной палочкой, способной повысить продуктивность. Выяснилось, что короткое послание не всегда способно заменить непродолжительный телефонный разговор. Для установления контакта сотрудники иногда отправляют десятки неоднозначных сообщений. Если вы помножите те многочисленные взаимодействия в реальном времени, которые были раньше, на несметное количество текстовых сообщений, станет понятно, почему сотрудники, занимающиеся научной работой, в среднем отправляют и получают по 126 писем в день [90] .
89
Blake Thorne, “Asynchronous Communication Is the Future of Work,” I Done This (blog), June 30, 2020, http://blog.idonethis.com/asynchronous-сommunication/.
90
Radicati Group, Inc., Email Statistics Report, 2015–2019, Palo Alto, CA, March 2015.
Однако не всех удивило, что затянувшая коммуникация усложнила жизнь. Когда в современный деловой мир пришла электронная почта, ученые, занимающиеся теорией распределенных систем (раздел информатики, которому я уделяю внимание в своей научно-исследовательской работе), наряду с прочими вопросами начали изучать плюсы и минусы синхронного и асинхронного общения. Как это бывает, выводы, к которым они пришли, были совершенно противоположны тому мнению, которое сложилось у сотрудников.
Сравнение синхронной и асинхронной коммуникации лежит в основе информатики. В первые двадцать лет компьютерной революции программисты создавали продукты, которые должны были работать на одном компьютере. Позже, с развитием компьютерных сетей, стали писать программы, которые можно запускать на нескольких машинах и работать совместно при помощи сети. Так возникли распределенные вычислительные системы. Когда ученые начали выяснять, как скоординировать работу компьютеров, составляющих сеть, они взвесили все плюсы и минусы разных видов коммуникации.
По умолчанию компьютеры, связанные между собой в единую сеть, работают асинхронно. Пользователь за машиной А посылает сообщение пользователю за машиной Б в надежде, что оно будет прочитано и обработано. Но пользователь за машиной А не знает, сколько потребуется времени пользователю за машиной Б, чтобы прочесть сообщение. Быстрота взаимодействия зависит от многих факторов. Например, компьютеры могут работать с разной скоростью. Если на машине Б запущены и другие процессы, может пройти определенное время, пока она проверит, есть ли входящие сообщения. Случаются и непредсказуемые сетевые задержки и поломки оборудования.
Написание алгоритмов для работы распределенных систем оказалось куда более сложной задачей, чем изначально полагали многие специалисты. Например, весьма впечатляющее научное открытие в области информатики, относящееся к этому периоду, — так называемая проблема консенсуса.
Представьте, например, что каждый компьютер в распределенной сети начинает какую-то операцию — например, пользователь производит транзакцию. Машина должна решить, продолжать операцию или прекратить ее. Для этого компьютеру нужно получить согласие других машин — все они должны проголосовать за продолжение или отмену операции.
Самое простое решение, чтобы понять, какой вариант выбрать, — собрать данные с других компьютеров и применить некое правило, например посчитать голоса, чтобы определить предпочтительное решение. Если все машины получают одинаковое количество голосов, они все принимают одно и то же решение. Проблема заключается в том, что компьютер может выйти из строя и не успеть проголосовать. Если такое случается, все остальные компьютеры в сети будут вечно ждать голоса своего «напарника», который перестал функционировать. Поскольку в асинхронной системе срок ожидания не обозначен четко, ожидающие ответа компьютеры не знают, когда прекращать ждать и продолжать оперировать уже имеющимися голосами.
Для начала инженеры, которые изучали эту проблему, предложили очевидное решение. Вместо того чтобы ждать ответа от всех машин, достаточно будет получить обратную связь от большинства из них. Представьте, например, что действует такое правило: если большинство устройств посылают сигнал «продолжить», компьютер, отправивший запрос, тоже решает продолжать. В противном случае он отменяет операцию — на всякий случай. На первый взгляд, правило может способствовать консенсусу — до тех пор, пока отказывает лишь небольшое число машин. Однако, к удивлению многих специалистов этой области, в работе, опубликованной в 1985 году, трое ученых-информатиков — Майкл Фишер, Нэнси Линч (мой научный руководитель в аспирантуре) и Майкл Патерсон, — виртуозно оперируя математической логикой, доказали, что нет такого алгоритма для асинхронной распределенной системы, который мог бы гарантировать, что консенсус будет достигнут всегда, даже если есть уверенность, что из строя может выйти максимум один компьютер [91] .
91
Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson, “Impossibility of Distributed Consensus with One Faulty Process,” Journal of the ACM 32, no. 2 (April 1985): 374–382.