Плюсы и минусы Agile подходов к разработке современного ПО, включающего модели науки о данных, в обзоре от SeattleDataGuy
5 минут чтения
Фото Маттео Вистокко на Unsplash
Agile – это общий термин, который относится к нескольким методологиям, характерных итеративностью и быстрым созданием готового продукта или функции в результате того, что часто называют спринтами . Эта структура была адаптирована для нескольких областей, включая программирование и дизайн. Аналогичным образом, наука о данных также выиграла от того, что брала кусочки из Agile-концепций.
Agile в Data Science по сравнению с программированием
Наука о данных и разработка программного обеспечения – две очень разные области. Попытка использовать методологию Agile таким же образом, как и в программном проекте для проекта по науке о данных, на самом деле не работает. Когда дело доходит до науки о данных, то здесь много исследований, проб, тестирования и настройки. В науке о данных вы имеете дело с неизвестными данными, которые могут привести к неизвестному результату. С другой стороны, разработка программного обеспечения структурирует данные с известными результатами; программисты знают заранее, что они хотят построить (хотя их клиенты могут и не знать).
Преимущества Agile методологии в науке о данных
Так что же с Agile и наукой о данных ? В случае науки о данных, мы имеем дело с извлечением полезной информации из необработанных данных и реализации моделей машинного обучения. Этот процесс требует большей креативности и, честно говоря, неудач. Это приводит к нелинейности процесса и высокой степени неопределенности. Это причина, почему Agile методологии все же могут быть успешными и популярными среди команд по науке о данных. Давайте обсудим некоторые моменты:
1. Планирование и расстановка приоритетов
Начиная с взаимодействия с заинтересованными сторонами, методология Agile дает ученым, работающим с данными, возможность расставлять приоритеты и создавать дорожные карты на основе требований и целей.
Это также позволяет техническим командам предоставлять заинтересованным сторонам обзор и понимание общих затрат, связанных с каждой поставленной целью. Таким образом, весь процесс создает лучшую согласованность между учеными в области данных и заинтересованными сторонами, создавая постоянные каналы связи.
2. Соотнесение науки о данных с инженерией
Agile – это не только работа с программным обеспечением и моделями; это также согласование работы аналитиков данных с остальной частью организации. Иногда между инженерами и исследователями данных может возникать несогласованность, когда ученые ожидают развертывания модели, в то время как инженеры задаются вопросом, а что ученые будут делать с прикладными исследованиями и анализом данных.
В этом сценарии Agile устраняет разрыв между обеими командами, координируя их цели. Причина в том, что Agile методологии как раз и справляются с непредсказуемыми реалиями при масштабировании приложений для анализа необработанных данных.
3. Больше исследований, меньше разработок
В отличие от разработки программного обеспечения, проекты в области науки о данных не могут быть прописаны или разработаны с самого начала, поскольку невозможно заранее знать наиболее эффективные методы для проекта. Как правило, каждый проект в науке о данных требует, чтобы вы шли разными путями и пробовали разные методы. Таким образом, эти проекты, как правило, итеративны, поэтому Agile, как правило, идеально подходит для проектов по науке о данных.
Может возникнуть проблема с постоянной итерацией, когда модель может работать один день, а на следующий день она может сломаться, потому что не все группы по науке используют контроль версий. К счастью, есть такие инструменты, как SaturnCloud.io, которые можно настроить автоматически на использование Git и тем самым позволить вам вернуться к предыдущим версиям вашего ноутбука Jupyter .
Небольшие улучшения, подобные этому, могут существенно помочь вам проводить исследования, а не быть предопределенным, как при разработке.
4. Непрерывное развертывание модели
Когда компании используют такие подходы, как непрерывное внедрение, они быстро внедряют новые функциональные возможности приложений и производственные изменения. В традиционных моделях данных это развертывание представляет собой многоэтапный процесс, который в конечном итоге переходит к инженерам. Затем инженеры переписывают и тестируют модель науки о данных, прежде чем ее развернуть. Весь этот процесс занимает месяцы после первоначального внедрения.
С течением времени компании поняли, что исследователи данных ограничены из-за мощности, которой обладают локальные машины, и не могут обучать модели, которые должны быть внедрены в производство. Используя гибкие методологии, ведущие фирмы в настоящее время создают платформы машинного обучения, которые разделяют обучающие данные для переобучения и развертывания на моделях через API.
5. Создание ценности
Когда дело доходит до планирования и создания ценности от необработанных данных до итеративных прогнозов, команды по науке о данных могут получить помощь от пирамид ценности данных. Это в основном обеспечивает концептуальную структуру для создания визуализации прогресса проекта. Используя пирамиды ценности данных, команды по науке о данных могут представлять последовательные результаты в логической форме. Эта пирамида ценности данных является одной из функций, предлагаемых Agile методологией. Таким образом, с каждым жизненным циклом разработки появляется лучшее представление и, следовательно, лучшая производительность.
Проблемы в Agile Data Science
1. Исследования и гибкость
Scrum и Agile реализации могут не подходить для каждой команды по науке о данных. Почему? Исследования – это искусство и наука, и порой они используют более творческий подход, чем строгость процесса разработки. Исследования в области науки о данных требуют творческих методов решения проблем с использованием руководящих принципов, а не строгих правил.
Не существует правильного способа выполнить и управлять этим исследованием, потому что каждый проект требует испытания различных методов. Кроме того, задачи не всегда такие четкие. Ответ на один вопрос может привести только к большему количеству вопросов, что может привести к тому, что анализ будет продолжаться вечно.
2. Синхронизация модели с участием пользователя
При проверке результатов любого алгоритма, как правило, существует много разных уровней правильности и / или точности . Например, часто легко получить модель с точностью 70%, 80% или даже 95%. Однако для получения последних 5–25% точности могут потребоваться недели или месяцы работы.
Agile методология предпочитает реальные решения. Проблема заключается в том, что команда по науке о данных может сдерживать Agile разработку команды разработчиков программного обеспечения, потому что они так долго перебирают возможные модели. Постоянная настройка модели может иногда сдерживать ощутимый прогресс.
Заключение
Работа в области науки о данных обеспечивает ценность благодаря пониманию и моделям, которые они способны представить. Для этого важно позволить командам работать над исследованиями совместно и итеративно со всеми заинтересованными сторонами. Если вы потратите слишком много времени на то, чтобы все заинтересованные стороны договорились, что представляет собой конечный продукт, то продукт никогда не появится. Таким образом, мы приходим к Agile методологии.
Методология Agile развивалась с течением времени, предлагая наиболее подходящие методы для нескольких областей. Речь идет не только об упорядочении жизненного цикла разработки в области науки о данных. Речь идет о согласовании работы команды по науке о данных с различными заинтересованными сторонами, обеспечивая надлежащую обратную связь для соответствия бизнес-целям.