Должен ли специалист по работе с данными разбираться в предметной области?
Внедрение современных технологий требует перехода компаний на новые инструменты, основанные на IT-решениях. И в основе такой цифровизации лежит аналитика данных — процесс преобразования первичных данных в полезные знания, которые можно использовать.
Одним из наиболее востребованных решений при работе с данными является процесс ETL (от англ. extraction, transformation, loading — «извлечение», «преобразование», «загрузка»). К ETL прибегают, когда требуется переместить разнородные данные из одной системы в другую.
Конечным пользователям и разработчикам программного обеспечения бывает трудно найти общий язык. Зачастую клиент не может решить, каким требованиям должны соответствовать специалисты, к которым он обратился для создания проекта ETL. И одним из таких требований является знание предметной области.
Давайте определимся с понятием «предметной области». Википедия дает такое определение: «Знание предметной области — это знание конкретной, специализированной дисциплины или области, в отличие от общих (независимых) знаний. Этот термин часто используется в отношении более общей дисциплины, например, при описании инженера-программиста, который обладает общими знаниями в области программирования, а также предметными знаниями о фармацевтической промышленности…».
Распространено убеждение, что каждый профессионал должен понимать предметную область программируемых им решений. Например, если вы работаете с бухгалтерскими данными, то должны разбираться в бухгалтерии. Определенное знание предметной области необходимо при запуске процесса ETL. Однако на протяжении самого процесса (особенно финальной его части — загрузки данных, Load) разработчик подготавливает данные для какого-то другого использования. Чтобы извлечь из хорошо знакомых клиенту данных что-то новое, необходим творческий подход и отсутствие предвзятости, без типичных паттернов мышления в рамках знакомых приложений, с которыми поставщик программных решений привык работать.
Существуют разные мнения о том, какой уровень знаний необходим в каждой конкретной ситуации. Оппоненты обычно приводят следующие аргументы:
- При недостатке предметных знаний или опыта в процессе создания ETL-системы есть вероятность не разобраться в данных, из-за чего важные части могут быть потеряны, нарушены последовательность и согласованность данных или просто допущены ошибки в процессе ETL на любом из его этапов.
- Переизбыток знаний в конкретной сфере может привести к переоценке собственного опыта и непреднамеренным ошибкам на любом из этапов ETL. То есть, можно ненароком начать «подгонять» данные под имеющееся представление о правильности и не заметить этого…
В конечном счете, решающим фактором при выборе компании-разработчика для реализации ETL станет комфорт клиента. Зачастую это чисто субъективное ощущение.
Говоря об уровнях комфорта, одним из наиболее распространенных психологических барьеров для клиента является наличие незнакомого «технаря» или программиста-разработчика, глубоко «копающегося» в его данных. Клиент может почувствовать себя уязвимым с точки зрения безопасности при предоставлении доступа к своей конфиденциальной информации. Конечно, при работе с известными поставщиками этот фактор сведен до минимума, тем не менее мы не можем его не упомянуть.
В большом ряде случаев глубокие знания в предметной области вообще могут не понадобиться — особенно в ситуациях, когда данные имеют достаточно высокую степень обобщенности или отвлеченности, либо являются интуитивно понятными.
Так все ли специалисты, задействованные в создании ETL-проекта, должны одинаково хорошо разбираться в предметной области? Как и многие другие современные технические востребованные услуги, ETL-проект подразумевает участие целого ряда совместно работающих специалистов. Требуемая от них глубина знаний может отличаться. Много говорится о том, что, например, тестировщики должны разбираться в области того, что они тестируют. Устоявшаяся бизнес-практика программного обеспечения утверждает, что QA-специалисты должны быть экспертами в предметной области — это необходимо при проверке работы, выполненной другими участниками проекта. Вместе с тем, учитывая специфику ETL-проектов, ведущую роль в процессе обеспечения качества обычно берут на себя бизнес-аналитики.
Получается, что знание предметной области требуется, но не всем, и не всегда, и не всем в равной мере… Ведь наука работы с данными — это в большей степени вопрос общей информационной грамотности, являющейся неотъемлемой частью знаний современного IT-специалиста, нежели специфичная особенность конкретной должности или решаемой задачи.
Всегда есть соблазн привлечь специалистов нужной области знаний для конкретного проекта. Он базируется на общих представлениях о том, сколько IT-специалистов и экспертов в предметной области требуется для создания «идеальной» команды. Однако нужно понимать, что стоимость проекта сильно возрастет, а сбор команды таких специалистов потребует времени.
Рассуждая о предметных знаниях, не стоит забывать, что выполнение ETL-проекта требует в первую очередь знаний технических, поэтому они никак не могут цениться ниже экспертных. Оценка требуемого уровня экспертных знаний должна производиться исходя из требований клиента к чистоте данных. В зависимости от того, насколько глубоко исполнители ETL-проекта понимают смысл обрабатываемых ими данных, может меняться точность обработанных данных.
К примеру, кто-то не понял, что «высокая температура» — это не диагноз, а симптом, занес данные не в ту таблицу и обобщил вместе не с теми данными. В результате итоговая статистика, ради которой данные собирались, посчиталась не совсем правильно — погрешность составила не ожидаемый 1%, а 1,1%. Насколько это критично? Для определенных статистических исследований точность измерения ограничена какими-то другими объективными факторами, и в этом случае дополнительная ошибка в 0,1%, возникшая в процессе переноса данных, не окажет влияния на результат. Особенно если представить, что уменьшение процента ошибок до 1% приведет к удорожанию проекта в два раза.
Получается, что в каждой конкретной ситуации следует исходить из конкретной задачи, и общего рецепта тут нет.
В идеале хотелось бы, чтобы ETL-специалистам не требовалось глубокое погружение в предметную область, а сами процессы, связанные с ETL, максимально не зависели от того, какие данные из какой сферы обрабатываются.
Для создания такого универсального подхода необходимо наличие некого посредника — эксперта в предметной области, который сможет подготовить и передать данные в универсальном формате. Задачей такого эксперта будет подготовка и передача данных клиента IT-разработчику в надлежащем формате. Чем лучше проверены первоначальные процессы клиента, чем более структурированы его данные, тем меньше требуется предметной экспертизы со стороны технической команды.
Так насколько же специалисту по данным нужно разбираться в предметной области? Как мы видим, ответы всегда будут различаться в зависимости от клиента, самих данных и ожидаемых результатов.
В конечном счете, вам следует искать надежных поставщиков, имеющих большой опыт в создании ETL-проектов и минимально достаточный для ваших задач уровень знаний в предметной области.