Что может преодолеть текущую сложность мира?
Последние несколько недель мне не дает покоя мысль, что многие продукты и услуги, которыми мы пользуемся—простые. В приложении заказа еды/такси/уборки основная механика простая как палка:
- Клиент заказывает сущность из ограниченного одно-двухмерного списка
- Связываем заказ клиента с конечным провайдером услуги
- Следим за тем, чтобы транзакция была совершена с нужным качеством
- Переводим оплату транзакции и откусываем от суммы N% комиссии
Каршеринги/самокатошеринги не сложнее. Бóльшая часть продуктов, которыми мы пользуемся в обычной жизни концептуально просты как палка.
Поиск Яндекса/Гугла, сетевые стеки массовых онлайн-игр, облака, инфраструктура мессенджеров, инфраструктуры фейсбука, zoom'а, нетфликса—вот там хардкор.
Внешняя сложность
Командам Яндекса/Гугла везет, так как эти системы работают со строго детерминированной средой битов, в которой более-менее можно управлять сложностью и хаосом.
А с физическим миром все в разы сложнее.
- В инфраструктуре Uber'а [все размышления я буду строить на примере Uber'а] водитель—это несколько десятков килобайт информации
В реальном мире водитель Uber'а:
- может плохо пахнуть
- может быть обворожительным маньяком
- вышел на работу после суток без сна
- поругался с женой
- ушел громить полицейские участки
- ...
- и еще 100 возможных более-менее типичных ситуаций
А это мегабайты непредсказуемых корнер-кейсов.
И это ТОЛЬКО ОДНО измерение многомерной среды Uber'а. Есть ещё сегменты клиентов, конкуренты, тренды, проникновение технологий, траффик [дорожные работы, парады побед, забастовки, праздники, аварии], профсоюзы...
Внешняя сложность мира в которой оперируют наши продукты колоссальна и команда Убера вынуджена эту внешнюю сложность переваривать.
Внутренняя сложность
При этом, бизнесу приходится нанимать все больше сотрудников, чтобы переваривать растущую внешнюю сложность при масштабировании [выходим во Францию—нанимаем +100 человек]:
- Система усложняется из-за большого уровня взаимодействия сотрудников внутри системы, +1 член небольшой команды увеличивает количество связей в команде в два раза. Сложность коммуникации в команде—2^n, где n—количество людей в команде.
- увеличилось количество взаимодействий людей с внутренними системами
- новая страна =
- новые тарифные планы
- новые способы решать корнер-кейсы
- новые взаимодействия с внешними системами: налоговые, суды, профсоюзы..
- новые цели и фокус внимания у части топ-менеджеров
- ..или новые топ-менеджеры
- ...
Все это приводит к тому, что экспонента сложности бизнеса растет быстрее экспоненты роста 2-3X YoY, который требуют от тебя инвесторы.
Это приводит к неприятным сайдэффектам:
- скорость внедрения новой функциональности в существующих продуктов и запуска новых продуктов снижается. В первый год с точки зрения функциональности в Slack было реализовано в разы больше сценариев, чем за 2019 год.
- Стартап меняет команду три раза, потому что команда запускавшая стартап, в среднем не имеет опыта управления сложностью
- Ошибки при проектировании первой версии приводят к остановке развития продукта на годы [рокетбанк, приветики]
Как Amazon управляет сложностью
Я знаю про три инструмента Amazon, которые помогают Amazon расти при растущей сложности системы [наверняка, их значительно больше]:
- Working Backwards
- коммуникация исключительно письменная
- на большие продукты [цели, которые кладутся в +2 уровня от тебя] пишется формализованный документ на 6 страниц
- обсуждение документа строго регламентировано
- = при увеличении сложности удаётся поддерживать скорость и качество принятия решений
- Leadership Principles
- 70-90% интервью всех новых сотрудников Amazon посвящены соответствию Leadership Principles, остальное—хардксиллы
- Все решения принимаются исходя из Leadership Principles
- = при росте команды, удаётся поддерживать уровень команды на приемлемом уровне, так как все эти люди были проверены на соответствие чёткому списку культурных принципов
- Строгий формат коммуникации всех внутренних сервисов
- все внутренние сервисы коммуницируют исключительно через интерфейсы, без файликов и прямых доступов в базы
- все внутренние сервисы должны быть задизайнены так, чтобы быть готовыми для открытия во внешний мир. Без исключений
Чуть детальнее разберу формат коммуникации внутренних сервисов: Этот формат постулирует следующее: мы лучше дольше будем делать менее функциональную, но более стабильную штуку, которая работает внутри компании в соответствии с четкими правилами общения этой системы. И заодно, сможем ее продать.
Это значит, что на горизонте как минимум полугода сложность всей системы, которая выдает тот же самый результат, будет ниже, чем сложность системы, при создании которой не было таких требований.
Такой подход позволяет более-менее предсказуемо управлять сложностью всей информационной системы, и это решение легло в основу самого прибыльного департамента: Amazon Web Services.
Машинное обучение однажды ворвётся в организационную сложность
Управлять организационной сложностью [бóльшим количеством людей, бóльшим количеством контекстов...]—адски редкий и сложный в освоении навык.
Невыносимо сложно поддерживать сложные системы работающими в течение длительного периода. Еще сложнее увеличивать сложность, не позволяя всей системе сколлапсировать.
Книга The Systems Bible утверждает что сложные системы находятся за пределами человеческого восприятия. Когда-то я слышал легенду [гугление не подтвердило], что архитектор операционной системы OS/2 смог закончить ее архитектуру только в процессе трехдневного трипа под ЛСД. Я не знаю, байка это или нет, но это очень похоже на правду—способности человеческого мозга уже не умещают текущие системы, в которые входят компания, команда, продукт, взаимодействие с клиентами, взаимодействие с разными внешними системами.
Алгоритмы машинного обучения уже сейчас помогают бизнесам оптимизировать некоторые части систем:
- поиск самого оптимального маршрута у Google Maps и Яндекса Карт
- поиск соответствия веб-странички текстовому запросу и истории поиска человека Google и Яндекса
- оптимизация закупок и логистики товаров для сети продуктовых магазинов
- прогнозирование спроса по районам городов Uber'а и Яндекс Такси
То есть компании уже с текущим уровнем развития Narrow AI [узкоспециализированного искуственного интеллекта] могут оперировать на растущей сложности.
У меня есть гипотеза, что с управлением организационной сложностью может помочь искусственный интеллект, у которого [теоретически] нет ограничения на анализ систем любой сложности И у него будет интерфейс работы с организацией.
То есть, как только алгоритмы машинного обучения смогут оперировать задачами:
- прогнозировать поведение конкурентов, траффик [или общаться с узкоспециализированной нейросетью, которая уже сейчас прогнозирует траффик], прогнозировать преступность.. и другими компонентами сложности Uber'а
- ставить цели сотрудникам Uber'а
- контролировать и анализировать выполнение целей
Тогда Uber сможет расти меньшим количеством сотрудников [сложноуправляемых, часто непредсказуемых, нестабильных, болеющих коронавирусами мешками с костями] и осваивать новые пороги сложности.
Вероятно, рост экономики, бизнесов, появление большего количества продуктов, большего количества разных больших сложных систем будут связаны не со способностями и навыками человека создавать такие сущности, а со способностью создать и направить искусственный интеллект решать проблему экспоненциального роста сложности.
Думаю, следующие Microsoft, Google, Facebook и Amazon будут созданы уже не человеком, а связкой человек—искусственный интеллект или, может быть, уже полностью искусственным интеллектом.
Технологизация присутствия в физическом мире
При этом, ОГРОМНАЯ часть нашей жизни еще не почувствовала на себе прелесть оптимизации технологий:
- бОльшая часть людей добираются до работы нетехнологичными способами: общественный транспорт и свои автомобили. Технологический стек 120-летней давности
- бОльшая часть людей готовят себе сами, покупая продукты в сетевых магазинах. Технологический стек готовки 10 000+-летней давности. Технологии оптимизации стоков магазинов 70+ лет
Это связано с тем, что сложность физического мира запредельная, для того, чтобы технологизировать эти среды, нужно много дешевых [=массовых] роботов, а чилавеки их ещё делать не научились.
Представьте, что та же нейросеть, которая ставит цели сотрудникам Uber'а поняла, что сейчас оптимально проверять, что 80%+ автомобилей Uber'а в США должны приятно пахнуть в салоне, перепрограммировала и переоборудовала роботов так, чтобы они могли химчистить салоны и отправила их химчистить.