В статье приводится попытка определения сверхзадач аналитической работы, возникающих при решении формальных задач. В начале статьи даётся описание сложности, как фактора решения аналитических задач, и предлагается модель сложности аналитики. Далее рассматриваются методы познания, в т. ч. система познания Г. Пирса и диалектический материализм К. Маркса, и предлагается общая модель их сочетания для аналитики. Затем на примере литературного образа детектива Шерлока Холмса выделяются сомнение, абдукция и индукция как основное отличие аналитической работы от прочих. Наконец, на аналитику проецируется философия Убунту, как обоснование для перманентного рефакторинга. В статье демонстрируется применение описанных методов мышления: абдукции, дедукции, индукции, аналогии, диалектики. В ходе рассуждения аналитика рассматривается как сочетание аналогий программирования и общества, что позволило синтезировать в сверхзадачах программистские принципы рефакторинга и социальные принципы Убунту.
Ключевые слова: модель сложности аналитики, аналитика, программирование, рефакторинг, метод познания, Шерлок Холмс, Убунту.
В настоящее время аналитика представляет наиболее модное профессиональное направление, как объединение компетенций экономических специальностей для решения наиболее сложных деловых задач, связанных с обработкой данных. Далее процесс достижения возможности обработки нами определяется как освоение. Однако, кроме задач по непосредственному освоению, можно выделить сверхзадачи, не всегда устанавливаемые явно, но оказывающие долгосрочное влияние. Определение и решение данных сверхзадач будет способствовать повышению эффективности аналитической работы. Но начать исследование целесообразно с противоположного влияния сложности задач.
Можно отметить три основных фактора сложности:
1) рост объёма данных (решаемый с помощью баз данных и Big Data);
2) усложнение алгоритмов обработки (решаемый методами Business Intelligence и бизнес-анализа);
3) рост разнообразия данных, в частности, добавление к показателям финансовой деятельности — операционных (частично, данная проблема решается в области управленческого учёта и Data Science);
Указанные факторы могут осваиваться аналитиком как самостоятельно (если их проявление не превышает способностей и инструментов), так и совместно с другими отделами (в этом случае требуется развитие переговорных и командных навыков). Для определения границы между данными режимами решения задач полезно применить законы программирования, наиболее весомые среди которых:
1) Закон Голла о том, что простые работающие системы эволюционируют — в сложные, но сложные, построенные с нуля, неработоспособны [2];
2) Закон Теслера о минимальной неизбежной сложности, которую невозможно устранить, а дальнейшие попытки минимизации приводят к переносу в другие отделы [2];
3) Закон Брукса о задерживающем влиянии дополнительного человеческого ресурса на опаздывающий проект в виде необходимости дополнительных трат времени на ввод в курс дела и общение [2];
4) Закон Кернигана о большей сложности отладки кода по сравнению с написанием с нуля [2];
5) Закон Рэя Оззи о негативном воздействии сложности на разработчиков посредством перенапряжения внимания, памяти и сил [6, c. 181].
Из рассмотрения данных законов следует два важных тезиса о выборе способов освоения:
1) Основной объективный фактор выбора — «сложность» предмета;
2) Аналитику можно рассматривать, как аналогию программирования бизнес-правил, весомой частью которой неизбежно являются люди, для осуществления процессов, которые легче для человека, чем для алгоритмизированной среды.
Таким образом, аналитика, воплощая роль посредника между программами и бизнес-операциями, впитывает в себя наиболее сложные процессы, объединяет их в систему и её сложность пытается освоить. Можно выделить два основных результата данной попытки: специализация человека на рутине и его освобождение посредством автоматизации. Тогда важным признаком развития аналитики является баланс между закреплением простых операций в «ручном» режиме и их переносом в различные программные среды, что освобождает человеческий ресурс для решения более нестандартных задач. Проще говоря, развитие аналитики сопровождается освобождением человеческого ресурса от наработанных рутин и перехода к новым, а его замедление — консервацией существующих «ручных» процессов. Также усложняющее влияние оказывает явление «технического долга» — когда пропуск оптимизации системы ради ускорения решения приводит к инерционному росту сложности системы, а также трудоёмкости рефакторинга [8, c. 23].
На текущий момент может быть предложена следующая модель сложности аналитики, в зависимости от возможности её освоения (Рисунок 1):
Рис. 1. Модель сложности аналитики (Составлено автором)
На рисунке показано, что способы освоения сложности зависят от её величины, и временной фактор, как правило, способствует её росту и переходу на другие уровни. Поэтому, можно выделить следующие виды сложности:
1) Простая автоматизируемая сложность — простые задачи, легко и даже рутинно выполняемые человеком. Могут быть автоматизированы, например, формулами Excel, средствами Power Query или простыми программами на VBA или Python;
2) Обучающая сложность — средней сложности задачи, решение которых способствует развитию компетенций;
3) Оптимизируемая сложность — сложные задачи, которые можно облегчить после рефакторинга — переработки алгоритмов с целью повышения читаемости и надёжности, уменьшения «шума», разблокирования направлений развития анализа;
4) Распределяемая сложность — сложные задачи, решаемые совместно с сотрудниками смежных специальностей — в их решении для освоения сложности необходимы переговорные практики;
5) Блокирующая сложность — невыполнимые задачи, сложность которых настолько велика, что при текущем уровне технологической поддержки их выполнение невозможно — это задачи, отложенные на будущее.
Из данной модели и изложенных выше законов программирования следует, что для простых задач базовым режимом является самостоятельное освоение в виде «обучающей сложности». Если со временем сложность задачи стабильна, возможна её автоматизация. Если же сложность увеличивается — данные и алгоритмы со временем «перерастают» действующий способ освоения. Пока сложность не достигла уровня «блокирующей» — её возможно освоить, но после — решение возможно только с развитием доступных технологий.
В случае технологического развития наблюдается обратный сценарий: сложная задача сначала решается совместно со специалистами-смежниками, а потом, в процессе освоения и отработки — упрощается для самостоятельного, и далее, автоматизированного решения.
В связи с тем, что программирование представляет собой полностью формализованную и алгоритмизированную дисциплину с наработанными принципами освоения и минимизации сложности задач, отдельный интерес вызывают логические методы познания на противоположном полюсе — в той области, где аналитика, подобно управлению, превращается из ремесла в искусство.
Основными логическими методами познания являются дедуктивный и индуктивный. Если дедукция — это конкретизация подтверждённых посылок о классе явлений или их перенос от общего к общему и частного к частному, то индукция — обратный процесс обобщения частных знаний, как правило, основанных на результатах экспериментов и наблюдений [11]. Из объяснений О. Тягнибединой следует, что хотя индукция за счёт недоступности всех возможных фактов приводит к вероятностному характеру выводов, изначально она поставляет посылки, развиваемые дедукцией, а потому в научном познании методы взаимно обогащают друг друга [11]. В продолжение рассуждения, можно добавить, что индукция накапливает частные наблюдения до критического уровня, после которого становится возможным их обобщение и дедуктивное распространение. Для анализа важно, что первый этап любого продолжительного исследования, начинается с индуктивного обобщения первичных данных.
Более сложная система познания приводится в исследовании Ч. Пирса, в котором оно представляет движение от сомнения в убеждении до его улучшения [9, c. 165]. Сам процесс раскладывается на 3 стадии [9, c. 171]:
1) Абдукция — выдвижение гипотезы для объяснения;
2) Дедукция — выведение из гипотезы наблюдаемых следствий для верификации;
3) Индукция — эмпирическое испытание гипотезы для коррекции.
Данные методы также являются взаимозависимыми. Причём, индукция может реализовываться в трёх формах [9, c. 178]:
1) Грубая — основанная на отдельных наблюдениях и отвергаемая единичным контрпримером;
2) Статистическая — самая сильная, основанная на законе больших чисел, согласно которому, чем больше наблюдений, тем ближе наблюдаемая статистическая зависимость к вероятностной;
3) Качественная — согласование со всем имеющимся опытом.
Обобщённо, система познания Ч. Пирса определяется, как «процесс самокоррекции научного знания..., в которой все его части — абдукция, дедукция и индукция — взаимно обусловливают и исправляют друг друга» [9, c. 188]. На наш взгляд, наиболее важным элементом теории Пирса является весомая роль сомнения, как мотивационного фактора для самокоррекции. В таком случае, считается естественным промежуточное положение между истинностью и ложностью с сохранением стремления к улучшению.
Наконец, отдельного внимания заслуживает диалектический материализм — способ мышления из философии Г. Гегеля, развитый К. Марксом и Ф. Энгельсом до политэкономического метода и позже развитый их последователями В. Лениным и Г. Плехановым в философию, повлиявшую на развитие культуры и образования СССР [7]. Его основу составляет гегелянская триада «Тезис-антитезис-синтез», описывающая процесс развития знания или состояния системы, когда утверждение встречается со своей противоположностью, и их противоборство переходит в компромиссное объединение. Для данной теории можно отметить ценность принятия разногласий и противоположностей как временного состояния, предшествующего синтезу. Также можно предположить сходство между антитезисом и сомнением в теории познания Ч. Пирса.
К представленным выше методам познания также можно добавить аналогию, как отдельный вид нестрогой гипотезы. В частности, можно встретить обоснование метода аналогии «от частного к частному» в юридической практике прецедентного права, о чём указывает С. Манжосов [5].
Если снять противоречия в терминологии, то можно предложить следующую модель методов познания, объединяющую указанные выше взгляды (рисунок 2):
Рис. 2. Модель сочетания методов познания (Составлено автором)
Представленная модель, как и описанные указанными выше исследователями, предполагает взаимосвязанность нескольких методов в непрерывном процессе познания. Тогда можно определить следующие методы:
1) Абдукция — выдвижение гипотезы для устранения сомнения, возникшего в знании;
2) Дедукция — конкретизация гипотезы или общего знания для последующей верификации;
3) Диалектика — синтезирование общего знания (тезис) и сомнения (антитезис) к новому компромиссному состоянию (синтез);
4) Аналогия — развитие частного знания посредством мягких гипотез о подобии с другими явлениями;
5) Индукция — эмпирическая проверка гипотез путём обобщения наблюдаемых данных или согласования с наблюдаемым опытом (три вида: грубая, статистическая, качественная).
При этом в системе можно выделить два вида последовательностей — переход между частным и общим, а также движение в границах только общего и частного знания. Для обоих видов справедлива мотивирующая роль сомнения как начала следующего шага в исследовании. И также важно отметить, что индукция в модели представлена по Пирсу — т. е. в трёх вариантах различной силы убедительности. Из этого следует, что несмотря на силу сомнения уверенность очередного этапа исследования зависит от выбранного индуктивного метода.
В качестве примера можно привести сэмплирование в digital-аналитике: расчёт по части выборки (сэмплу) с последующей экстраполяцией до масштаба массива данных, из-за чего с уменьшением величины сэмпла падает точность и упускаются частные и редкие события [1]. Для частых явлений данный приём продолжит представлять статистическую индукцию, но для редких — нет. Данный пример может подтверждать важность методологии — взаимосвязанности метода и предмета исследования [10]. С точки зрения модели на рисунке двумя ключевыми вопросами методологии становятся способы обнаружения сомнения, дальнейшего его развития и индуктивной проверки. А с точки зрения модели на рисунке 1 можно добавить вопрос о сложности, необходимой для освоения. Но если сложность предмета со временем или усилиями аналитика может меняться между простой автоматизируемой и блокирующей, то вслед за ней будет меняться и методология. Тогда можно предположить в способностях аналитика — сочетание средств освоения сложности различных уровней, а также определение на основе исследуемого предмета способов обнаружения сомнения, его развития и индуктивной проверки как элементов адекватной методологии. Проще говоря, сверхзадачей аналитики становится умение по изучаемому предмету определять наиболее эффективную методологию, предвидеть сценарий её изменения и, по возможности, управлять ей.
Для дальнейшего развития темы интересно рассмотреть пример литературного персонажа Шерлока Холмса как популярный образ применения дедуктивного метода, описанный в сборнике рассказов Артура Конан Дойла «Записки о Шерлоке Холмсе», являющегося основоположником детективного жанра [10].
Основой жанра детектива является повествование интеллектуального расследования в будничной истории с оценкой поступающих фактов и формированием версий с целью раскрыть тайну, а не сбить с толку [10]. Данное описание похоже на модели познания, описанные выше, за исключением неизбежной законченности движения в литературе, в отличие от бесконечности анализа реальных процессов.
В своём исследовании А. Скрябина описывает значение персонажей Ш. Холмса и Д. Ватсона, как «образ справедливого правосудия…подвига, служения, отваги в противопоставлении серой будничной жизни» [10]. Согласно её оценке, знаменитый детектив воплощает наблюдательного человека, способного разгадать сложную ситуацию и объяснить казавшееся необъяснимым, в частности, запутанные дела, от которых отказываются прочие сыщики и полицейские [10]. А сам Шерлок — первый персонаж, главным подвигом которого является мыслительная работа, в противоположность профессиональному полицейскому сыщику Скотланд-Ярда Лестрейду, приписывающему себе его успехи [10]. Как объяснял сам персонаж секрет своей проницательности: «Вы смотрите, но вы не наблюдаете, а это большая разница» [3, с. 36]. На наш взгляд, наблюдательность Шерлока совпадает с описываемыми ранее методами познания — абдукцией и индукцией. Тогда с точки зрения модели сочетания методов познания на рисунке 2 отличие Шерлока от антипода Лейстрейда — способность ощущать сомнение и при его устранении выдвигать и эмпирически проверять гипотезы, и тем самым переходить от частного к общему, тем самым корректируя его.
Таким образом, на примере Шерлока Холмса можно выделить сверхзадачу аналитики, как открытость сомнениям и усилие в наблюдении за развитием сложности предмета, а также соответствием ему методологии.
Наконец, тему важно рассмотреть с точки зрения философии Убунту, нашедшей воплощение в программировании. Это Африканское этическое учение «Убунту — «человечность по отношению к другим» и на разных диалектах оно означает великодушие, вежливость и человечность по отношению к другим» [4]. В реализации Убунту можно выделить два тезиса: «подтвердить свою человечность, признавая человечность в других как основу уважительных человеческих отношений с другими», «в выборе между богатством и сохранением жизни другого — выбор в пользу сохранения жизни».
В программировании Убунту находит воплощение, как «Создание программ — одновременно и техническое, и социальное занятие…Личность — это личность через (другие) личности…разработчик — это разработчик через (других) разработчиков…код — это код через (другой) код…Следующий человек, который каким-либо образом прикоснется к вашему коду, станет лучше как личность и как разработчик» [12, c. 194]. Если автор статьи находит приложение Убунту в практике программирования, и в частности, перманентного рефакторинга, то эту философию также можно применить к исследованию аналитики. В частности, тезис о том, что люди и программы — взаимно влияют друг на друга и делают лучше или хуже.
Применительно к модели сложности аналитики на рисунке 1 Убунту может означать, что способ освоения сложности и аналитик влияют друг на друга в сторону ухудшения или улучшения. Причём, временной фактор увеличения сложности работает, скорее, в сторону ухудшения, а усилия аналитика по рефакторингу — в сторону улучшения. Причём, частными случаями взаимовлияния являются:
1) положительная и отрицательная обратная связь;
2) распространение вовне и концентрация;
3) влияние сложности программ на людей и людей — на программы.
Применительно к модели сочетания методов познания на рисунке 2 — Убунту показывает, что взаимовлияние происходит в процессе познания: отдельные акты взаимодействия вызывают сомнения, либо индуцируются. Учитывая, что к наблюдательности Шерлока Холмса также относятся абдукция-индукция, то именно в этих процессах можно заметить и оценить Убунту или взаимовлияние аналитиков и их расчётов.
В итоге рассуждения можем выделить следующие сверхзадачи аналитики:
1) Наблюдать за сложностью исследуемого предмета;
2) Оценивать сценарии изменения сложности и влияния на неё времени, рефакторинга и других факторов;
3) Поддерживать в исследованиях наблюдательности, сочетающую методы абдукции и индукции — для непрерывной самокоррекции исследования;
4) Определять методологию, наиболее эффективную для исследуемого предмета;
5) Поддерживать открытость сомнениям и усилие в наблюдении за развитием сложности предмета и соответствием ему методологии;
6) Наблюдать за взаимовлиянием программ, расчётов и людей, участвующих в аналитике;
7) Тормозить ухудшающие и поддерживать улучшающие влияния программ, расчётов и людей друг на друга.
Описанные выше модели сложности аналитики и сочетания методов познания показывают, что со временем сложность большинства задач неизбежно растёт — программы и расчёты «ухудшаются» и без рефакторинга оказывают негативное влияние на аналитиков. Главный отрицательный эффект от такого влияния — потеря наблюдательности и остановка самокоррекции системы знания посредством сомнения, абдукции и индукции. И если аналитику представлять, как синтез двух объектов — программирования и общества — то и отрицательный эффект наблюдается двойной: ухудшение программ и расчётов, и отношений между людьми.
Поэтому описанные выше сверхзадачи аналитики, в общем, сводятся к детективному наблюдению за предметом исследования и способами освоения его сложности, чтобы найти возможности остановки отрицательного и поддержки положительного взаимовлияния — Убунту, также проявляющегося на двух уровнях — в виде рефакторинга программ и расчётов, а также налаживания отношений между людьми. И если, в практике рефакторинга целью является — чистый код, который легко читать и поддерживать, «очистить от шума», блокирующего пути развития, то и налаживание отношений и методов познания также представляет «рефакторинг» коммуникаций, открывающий путь к новому сотрудничеству.
Литература:
1. Борисов, Е. Сэмплирование и точность вычислений / Е. Борисов. — Текст: электронный // Хабр: [сайт]. — URL: https://habr.com/ru/post/458890/ (дата обращения: 08.11.2020).
2. Голованов, В. Законы программирования / В. Голованов. — Текст: электронный // Хабр: [сайт]. — URL: https://habr.com/ru/post/491946/ (дата обращения: 08.11.2020).
3. Джалагония В. День рождения Шерлока Холмса [Текст] / В. Джалагония // Эхо планеты. — 2007.
4. Карелин, В. Убунту: я существую, потому что мы существуем / В. Карелин. — Текст: электронный // Человек без границ: [сайт]. — URL: https://www.bez-granic.ru/index.php/all-texts/520-ubuntu (дата обращения: 08.11.2020).https://dialectics.ru/394.html
5. Манжосов, С. А. Умозаключение на основе прецедента: аналогия, индукция или дедукция? // Право и политика. 2018. № 8. URL: https://cyberleninka.ru/article/n/umozaklyuchenie-na-osnove-pretsedenta-analogiya-induktsiya-ili-deduktsiya (дата обращения: 06.11.2020).
6. Мартин, Р. Чистый код: создание, анализ и рефакторинг / Р. Мартин. — СПб.: Питер, 2020. — 464 с. c. — Текст: непосредственный
7. Муравьёв Андрей Николаевич, Осипов Игорь Дмитриевич Диалектический материализм Карла Маркса и философия в современном мире // Вестник СПбГУ. Философия и конфликтология. 2019. № 1. URL: https://cyberleninka.ru/article/n/dialekticheskiy-materializm-karla-marksa-i-filosofiya-v-sovremennom-mire (дата обращения: 07.11.2020).
8. Роуз, С. Будьте благоразумны / С. Роуз. — Текст: непосредственный // 97 этюдов для программистов. Опыт ведущих экспертов. — СПб.: Симвло-Плюс, 2020. — с. 22–23
9. Светлова, В. А. Методологическая концепция научного знания Чарльза Пирса: единство абдукции, дедукции и индукции / В. А. Светлова. — Текст: непосредственный // ЛОГИКО-ФИЛОСОФСКИЕ ШТУДИИ. — 2008. — № 5. — С. 165–187., с. 165
10. Скрябина, А. М. Дедуктивная логика К. Дойла в сборнике рассказов «Записки о Шерлоке Холмсе» и научная проблема «Предмет и метод» // Вестник СВФУ. 2017. № 4 (60). URL: https://cyberleninka.ru/article/n/deduktivnaya-logika-k-doyla-v-sbornike-rasskazov-zapiski-o-sherloke-holmse-i-nauchnaya-problema-predmet-i-metod (дата обращения: 07.11.2020).
11. Тягнибедина, О. С. Дедуктивный и индуктивный методы познания / О. С. Тягнибедина. — Текст: электронный // rusnauka.com: [сайт]. — URL: http://rusnauka.com/ONG/Philosophia/6_tjagnibedina. %20tezisy.doc.htm (дата обращения: 08.11.2020).
12. Хан, А. Написание кода в духе Убунту для друзей / А. Хан. — Текст: непосредственный // 97 этюдов для программистов. Опыт ведущих экспертов. — СПб.: Симвло-Плюс, 2020. — С. 194–195.