HIROSHI WATANABE/GETTY IMAGES
В книге «Богатство народов» Адам Смит показывает, как разделение труда становится главным источником повышения производительности. Примером выступает линия сборки завода по производству булавок: «Один рабочий тянет проволоку, другой выпрямляет её, третий обрезает, четвертый заостряет конец, пятый обтачивает другой конец для насаживания головки». Благодаря специализации, ориентированной на определенные функции, каждый работник становится высококвалифицированным специалистом в своей узкой задаче, которая приводит к повышению эффективности процесса. Выпуск на одного работника увеличивается во много раз, а завод становится более эффективным в производстве булавок.
Такое разделение труда по функциональности настолько укоренилось в наших умах даже сегодня, что мы быстро организовали наши команды соответствующим образом. Data Science не является исключением. Комплексные алгоритмические бизнес-возможности требуют множества трудовых функций, поэтому компании обычно создают группы специалистов: исследователей, инженеров по анализу данных, инженеров машинного обучения, ученых, занимающихся причинно-следственными связями, и так далее. Работа специалистов координируется менеджером по продукту с передачей функций таким образом, который напоминает фабрику булавок: «один человек получает данные, другой моделирует их, третий выполняет их, четвертый измеряет» и так далее,
Увы, мы не должны оптимизировать наши Data Science команды для повышения производительности. Впрочем вы это и делаете, когда понимаете, что вы производите: булавки или что-то иное, и просто стремитесь к повышению эффективности. Целью сборочных линий является выполнение задачи. Мы точно знаем, чего мы хотим — это булавки (как в примере Смита), но можно упомянуть любой продукт или услугу, в которых требования полностью описывают все аспекты продукта и его поведение. Роль сотрудников заключается в том, чтобы выполнять эти требования максимально эффективно.
Но цель Data Science не заключается в том, чтобы выполнять задачи. Скорее цель заключается в том, чтобы изучать и развивать новые сильные возможности бизнеса. Алгоритмические продукты и услуги, такие как системы рекомендаций, взаимодействия с клиентами, классификация предпочтений в стиле, подборе размеровов, дизайна одежды, оптимизации логистики, обнаружения сезонных тенденций и многое другое не могут быть разработаны заранее. Они должны быть изучены. Там нет никаких чертежей для воспроизведения, это новые возможности с присущей им неопределенностью. Коэффициенты, модели, типы моделей, гиперпараметры, все необходимые элементы должны быть изучены с помощью экспериментов, проб и ошибок а также повторения. С булавками, обучение и дизайн выполняются заранее, до момента их производства. С Data Science вы учитесь в процессе, а не до него.
На булавочной фабрике, когда обучение стоит на первом месте, мы не ждем и не хотим того, чтобы работники импровизировали на каком-либо свойстве продукта, кроме того, чтобы повысить эффективность производства. Специализация задач имеет смысл, поскольку приводит к эффективности процессов и согласованности производства (без внесения изменений в конечный продукт).
Но когда продукт все еще развивается и цель заключается в обучении, специализация мешает нашим целям в следующих случаях:
1. Это увеличивает затраты на координацию.
То есть тех затрат, которые накапливаются за время, потраченное на общение, обсуждение, обоснование и определение приоритетов работы, которую необходимо выполнить. Эти затраты масштабируются сверхлинейно с количеством вовлеченных людей. (Как учил нас Дж. Ричард Хэкман, число отношений r растет аналогично функции числа членов n в соответствии с этим уравнением: r = (n ^ 2-n) / 2. И каждое отношение раскрывает некоторое количество соотношения затрат). Когда специалисты по анализу данных организованы по функциям, на каждом этапе, с каждым изменением, каждой передачей обслуживания и т. д. Требуется много специалистов, что повышает затраты на координацию. Например, специалистам по статистическому моделированию, которые хотят экспериментировать с новыми функциями, придется координировать свои действия с инженерами по обработке данных, которые дополняют наборы данных каждый раз, когда хотят попробовать что-то новое. Точно так же каждая новая обученная модель означает, что разработчику модели потребуется кто-то, с кем можно было бы координировать свои действия для ввода ее в эксплуатацию. Затраты на координацию выступают в качестве платы за итерацию, что делает их более трудными и дорогостоящими и с большей вероятностью заставляют отказаться от исследования. Это может помешать обучению.
2. Это осложняет время ожидания.
Еще более пугающим, чем затраты на координацию, является время, потерянное между рабочими сменами. В то время как затраты на координацию обычно измеряются в часах: времени, которое требуется для проведения совещаний, обсуждений, проектных обзоров, — время ожидания обычно измеряется в днях, неделях или даже месяцах! Графики функциональных специалистов трудно выровнять, поскольку каждый специалист должен быть распределен по нескольким проектам. Одночасовое собрание для обсуждения изменений может занять несколько недель, чтобы выровнить рабочий процесс. И после согласования изменений необходимо запланировать и саму фактическую работу в контексте множества других проектов, занимающего рабочее время специалистов. Работа, связанная с исправлением кода или исследованиями, для завершения которых требуется всего несколько часов или дней, может занять гораздо больше времени, прежде чем ресурсы станут доступны. До той поры итерация и обучение приостанавливаются.
3. Это сужает контекст.
Разделение труда может искусственно ограничить обучение, вознаграждая людей за то, что они остаются в своей специализации. Например, ученый-исследователь, который должен оставаться в рамках своей функциональности, сосредоточит свою энергию на экспериментах с различными типами алгоритмов: регрессией, нейронными сетями, random forest и так далее. Безусловно, хороший выбор алгоритма может привести к постепенным улучшениям, но, как правило, гораздо больше можно извлечь из других видов деятельности, таких как интеграция новых источников данных. Точно так же это поможет разработать модель, которая использует каждый бит поясняющей способности, присущей данным. Тем не менее, ее сильная сторона может заключаться в изменении целевой функции или ослаблении определенных ограничений. Это трудно увидеть или сделать, когда ее работа ограничена. Поскольку ученый-специалист специализируется на оптимизации алгоритмов, у него гораздо меньше шансов заняться чем-то еще, даже если это приносит существенную выгоду.
Назовем признаки, которые проявляется, когда команды по data science работают как фабрики булавок (например, в простых обновлениях статуса): «ожидание изменений конвейера данных» и «ожидание ресурсов ML Eng», являющиеся общими блокаторами. Тем не менее, я считаю, что более опасное влияние заключается в том, чего вы не замечаете, потому что вы не можете сожалеть о чем еще не знаете. Безупречное выполнение требований и самоуспокоение, достигнутые в результате достижения эффективности процессов, могут скрывать правду о том, что организации не знакомы с преимуществами обучения, которые они упускают.
Решение этой проблемы, конечно же, в избавлении от метода фабричной булавки. Чтобы стимулировать обучение и итерацию, роли data science должны быть общими, но с широкими обязанностями, не зависящими от технической функции, то есть организуйте специалистов по данным так, чтобы они были оптимизированы для обучения. Это означает, что необходимо нанять «специалистов полного стека» — общих специалистов, которые могут выполнять различные функции: от концепции до моделирования, от реализации до измерения. Важно отметить, что я не предполагаю, что при найме специалистов полного стека количество сотрудников должно уменьшиться. Скорее всего, я просто предположу, что когда они организованы по-другому, их стимулы лучше соотносятся с преимуществами обучения и эффективности. Например, у вас есть команда из трех человек, обладающая тремя деловыми качествами. На заводе по производству булавок каждый специалист будет посвящать треть времени каждой профессиональной задачи, поскольку никто другой не сможет выполнить его работу. В полном стеке каждый универсальный сотрудник полностью посвящен всему бизнес-процессу, увеличению масштабов работы и обучению.
С меньшим количеством людей, поддерживающих производственный цикл, координация снижается. Универсал плавно перемещается между функциями, расширяя конвейер данных, для добавления большего объема данных, пробуя новые функции в моделях, развертывая новые версии в производстве для причинных измерений, и повторяет шаги так быстро, как только приходят новые идеи. Конечно, универсал выполняет разные функции последовательно, а не параллельно. В конце концов, это всего лишь один человек. Однако выполнение задачи обычно занимает лишь небольшую часть времени, необходимого для доступа другого специализированного ресурса. Итак, время итерации уменьшается.
Наш универсал, возможно, не так искусен, как специалист в определенной трудовой функции, но мы не стремимся к функциональному совершенству или небольшим постепенным улучшениям. Скорее, мы стремимся изучать и открывать для себя все новые профессиональные задачи с постепенным воздействием. С целостным контекстом для полноценного решения он видит возможности, которые упустит узкий специалист. У него больше идей и больше возможностей. Он тоже терпит неудачу. Тем не менее, цена неудачи мала, а преимущества обучения высоки. Эта асимметрия способствует быстрой итерации и вознаграждает обучение.
Важно отметить, что это масштаб автономии и разнообразия навыков, предоставляемых ученым, работающим с полными стеками, в значительной степени зависит от надежности платформы данных, на которой можно работать. Хорошо сконструированная платформа данных абстрагирует ученых по обработке данных от сложностей контейнеризации, распределенной обработки, автоматического перехода на другой ресурс и других передовых компьютерных концепций. В дополнение к абстракции, надежная платформа данных может обеспечить беспрепятственное подключение к экспериментальной инфраструктуре, автоматизировать мониторинг и систему оповещения, обеспечить автоматическое масштабирование и визуализацию алгоритмических результатов и отладки. Эти компоненты спроектированы и созданы инженерами платформы данных, т.е от специалиста по Data Science они не передаются команде разработчиков платформы данных. Именно специалист по Data Science отвечает за весь код, применяемый для запуска платформы.
Меня тоже однажды заинтересовали функциональным разделением труда с использованием эффективности процессов, но методом проб и ошибок (лучшего способа обучения нет) я обнаружил, что типичные роли лучше способствуют обучению и инновациям и предоставляют верные показатели: обнаружение и построение гораздо большего числа бизнес-возможностей, чем специализированный подход. (Более эффективный способ узнать об этом подходе к организации, чем метод проб и ошибок, через который я прошел, — прочитать книгу Эми Эдмондсон «Взаимодействие в команде: как организации учатся, создают инновации и конкурируют в экономике знаний»).
Есть некоторые важные предположения, которые могут сделать этот подход к организации более или менее надежным в некоторых компаниях. Процесс итерации снижает стоимость проб и ошибок. Если цена ошибки высока, вы можете захотеть их уменьшить (но, это не рекомендуется для медицинских приложений или производства). Кроме того, если вы имеете дело с петабайтами или эксабайтами данных, может потребоваться специализация в области проектирования данных. Точно так же, если поддержание бизнес-возможностей в сети и их доступность важнее, чем их совершенствование, функциональное превосходство может превзойти обучение. Наконец, модель полного стека опирается на мнение разбирающихся в этом людей. Они не единороги; их можно найти или подготовить самим. Однако, они пользуются высоким спросом, и для их привлечения и сохранения в компании потребуется конкурентная материальная компенсация, устойчивые корпоративные ценности и интересная работа. Убедитесь, что ваша корпоративная культура может обеспечить такие условия.
Даже с учетом всего сказанного, я полагаю, что модель полного стека обеспечивает лучшие условия для старта. Начните с них, а затем осознанно двигайтесь к функциональному разделению труда только тогда, когда это точно необходимо.
Есть и другие недостатки функциональной специализации. Это может привести к потере ответственности и пассивности со стороны работников. Сам Смит критикует разделение труда, предполагая, что оно приводит к притуплению таланта, т.е. работники становятся невежественными и замкнутыми, поскольку их роли ограничиваются несколькими повторяющимися задачами. В то время как специализация может обеспечить эффективность процесса, она реже вдохновляет работников.
В свою очередь универсальные роли обеспечивают все то, что стимулирует удовлетворенность работой: автономность, мастерство и целеустремленность. Автономность в том, что они не зависят от чего-то в достижении успеха. Мастерство заключается в сильных конкурентных преимуществах. А целеустремлённость — в возможности оказать влияние на бизнес, который они создают. Если нам удастся заставить людей увлечься своей работой и оказать большое влияние на компанию, то все остальное встанет на свои места.
Автор: Михаил Саклеев