Дублирование функций

Пары

Наше погружение в последовательности мы начнём с того, что проработаем уровень абстракции для работы со списками. Давайте вспомним, как работают пары. С помощью пар, а конкретно функции-конструктора cons, мы можем соединять, например, числа:

<?php use function Php\Pairs\Pairs\cons; use function Php\Pairs\Pairs\toString; cons(5, 8); $pair = cons(5, cons(2, 9));

Также можем соединять любые объекты данных, включая те же пары. В данном примере мы соединяем 5 как число и другую пару. Если мы распечатаем, то увидим, что у пары такое представление:

<?php toString($pair); // (5, (2, 9))

Способы соединить 1, 2, 3 и 4

Существует более одного способа соединять различные числа, т.е. представлять их разными структурами данных. Например, числа 1, 2, 3, 4 можно соединить в единую иерархическую конструкцию, как на примере слева на так называемой стрелочной диаграмме. Мы видим, что в паре на самом верху левый элемент является парой, правый — тоже пара и в каждой из этих пар элементы представлены конкретными числами.

При этом может быть и совершенно другой вариант, в котором левый элемент является парой, а правый, например, является числом 4. Левый элемент в свою очередь делится на элемент, в котором есть число и элемент, являющийся парой и т.д. Мы можем это делать бесконечно много раз.

Под диаграммами описано представление в виде кода с помощью вложенных cons. Причём слева симметричное вложение, а справа немного сдвинутое.

То, что мы получили, называется — иерархической структурой. Её создание обеспечивается возможностью, которая называется — свойство замыкания (множества). Чтобы понять, что это обозначает, давайте познакомимся с понятием множества.

Что такое множество

Множество — это довольно интуитивное понятие. Для математики оно является одним из ключевых. Через множество определено множество вещей. Определение чистых математических функций, с которыми мы работаем, полностью построено на теоретико-множественном подходе. Так вот, что такое множество? Множество — это какой-то набор. Мы можем сказать, что это совокупность объектов данных. Например, в данном случае мы видим, что это числа. Различные типы чисел. При этом видно, что здесь множества вложены друг в друга, т.е. у множеств есть отношения друг с другом, существуют операции над множествами, например, пересечение, объединение и т.д. Причём это не просто какая-то математическая теория. Множества очень активно используются в практике программирования. Те же самые базы данных SQL основаны на реляционной алгебре, которая очень тесно связанна с теорией множеств. И те же джойны, которые используются в SQL следует воспринимать и анализировать именно на основе понимания теории множеств.

Кроме этого, поскольку мы говорим о парах, мы можем себе вообразить некоторое множество, которое называется множество всех пар. Сейчас нам это понадобится.

Замыкание (абстрактная алгебра)

Это не то замыкание, про которое мы уже говорили, связанное с запоминанием контекста. Это замыкание из математики, из абстрактной алгебры и звучит оно примерно так:

Множество замкнуто относительно операции, если применение операции к элементам этого множества даёт результат, который так же является элементом этого множества.

Возможно, это слишком формальное определение, которое звучит очень абстрактно. На самом деле оно крайне простое. Всё, что оно означает: используя функцию cons, множество всех пар замкнуто относительно функции cons. Почему? Потому что когда вы с помощью функции cons что-либо объединяете, вы снова получаете пару. Если полученную пару снова объединить функцией cons в ещё одну пару, получится, опять же, пара. Но как мы помним, множество всех пар включает все возможные виды пар. Какую бы пару вы ни создали, она будет туда включена, т.е. функция cons всегда порождает пару. Если бы в какой-то момент она порождала что-то другое, то не существовало бы замкнутости. Замкнутость присутствует именно потому, что применение этой функции к абсолютно любым элементам этого множества порождает элемент этого же множества. А свойство замыкания является ключевым фактором в возможности построения иерархических структур.

Иерархические структуры — это такие структуры, части которых содержат в себе ещё более элементарные части, которые в свою очередь содержат ещё более элементарные части.

<?php cons(cons(3, 5), cons(2, 9));

В примере выше cons соединяет не просто какие-то элементарные части. Она соединяет пары, которые в свою очередь состоят из частей и так далее. Это может происходить бесконечно, опять же, благодаря свойству замыкания.

Последовательности

Как же всё-таки проще всего представить последовательности? Мы используем стрелочную диаграмму, которая показывает самый простой, но не единственный способ представления последовательностей. На верхнем уровне у нас будет пара, первый элемент которой объект данных, например, число, второй элемент — это фактически ссылка на другую пару, в которой опять же первый элемент — объект данных и дальше опять ссылка на следующую пару. И так далее до самой последней вложенной пары, где первый элемент — также данные, а второй элемент — специальный маркер, который обозначает, что список закончился, и дальше смотреть не нужно.

Как это записывается кодом? По сути — это последовательность cons’ов, которые вложены друг в друга.

<?php cons(1, cons(2, cons(3, cons(4, null))));

Мы приняли за аксиоматический факт, что у последнего элемента маркер окончания списка это null. Если мы его встречаем значит дальше проверять и смотреть не нужно, список закончился.

Интерфейс

В современной управленческой литературе и периодике достаточно большое внимание уделяется вопросам совершенствования системы управления предприятиями, организационного развития, бизнес-инжиниринга и реинжиниринга бизнес-процессов.

В условиях обостряющейся конкуренции у предприятия рано или поздно возникает потребность в повышении эффективности деятельности. Возможности для этого повышения за счет материальных затрат ограниченны, в связи с этим менеджмент рано или поздно обращается к совершенствованию системы управления, стремясь повысить эффективность использования ресурсов. Одним из ключевых ресурсов системы управления являются человеческие ресурсы.

Если руководитель принимает решения о сокращении управленческого персонала, то в этом случае возникают вопросы о сохранении или отказе от выполнения тех или иных функций, наличии на предприятии лишних функций или, наоборот, их недостаточности для нормального функционирования, особенно когда регламенты системы управления не позволяют однозначно определить границы сфер ответственности.

При применение современных технологий управления, таких, как аутсорсинга, в том числе его разновидности, связанной с аутсорсингом персонала, — аутстаффинга, также требуется формализация процессов, процедур и функций. В отсутствие четко ограниченных полномочий и сфер ответственности должностных лиц и подразделений трудно определить численность персонала, занятого выполнением той или иной функции, сформировать функциональные бюджеты, оценить стратегическую значимость функций и процессов.

Методика, предлагаемая в данной статье, не претендует на революционность. Она создана в результате попытки применить описанные в литературе подходы к системе управления в одной из крупнейших автомобилестроительных компаний России.

Функционально-структурный подход к описанию функций подразделений

С точки зрения выполняемых функций крупное предприятие отличается от среднего и малого степенью специализации подразделений. Крупный масштаб, как увеличительное стекло, выявляет и делает явной специализацию в рамках выполнения одной и той же функции, для которой требуются регламентация и описание, позволяющее избежать дублирования, либо его (дублирование) выявление, если оно было допущено.

Детальное регламентирование средствами естественного языка неизбежно приводит к росту объема документов, дополнительным трудозатратам по их составлению, согласованию и контролю за исполнением. Перечень функций, исполняемых подразделением, достигает полусотни, поэтому при наличии нескольких десятков подразделений система становится слишком сложной и практически не поддается описанию.

Попытка анализа структуры управления (структуры функций, прав, ответственности, взаимоотношений, в том числе отношений подчинения) становится излишне трудоемкой, если не утопической.

Для эффективного функционирования системы управления предприятием необходимо однозначное описание, наличие которого позволяет:

определить границы полномочий и ответственности;

провести реструктуризацию, в том числе вывести непрофильные функции в аутсорсинг;

сформировать показатели, адекватно оценивающие деятельность подразделений;

контролировать целостность и непротиворечивость системы управления.

Для решения данных задач нужен инструмент, который бы обеспечил:

описание системы управления с необходимой степенью детализации;

выявление возможного дублирования функций или разрывов в их выполнении;

сохранение естественного языка описания функций, не критичного к уровню квалификации исполнителя в области организационного развития.

Описанный принцип построения функциональной структуры направлен на повышение технологичности управления организационными изменениями. Он позволяет эксплицировать функциональную структуру из действующей организационной структуры, проводить ее анализ и проектировать на его основе необходимые организационные изменения.

В основу методики положен нормативный подход, т.е. функция считается выполняемой, если она отражена в нормативных документах. Актуальность нормативных документов не оценивается, и по умолчанию предполагается, что документы актуальны. Материалом для анализа служит положение о подразделении, т.е. функции, закрепленные за подразделением существующими нормативными документами.

Несмотря на то что исследование «реально исполняемой» деятельности подразделений является более точным, в крупной компании неизбежно возникающий бюрократический механизм управления приводит к тому, что отсутствие регламента на какое-либо выполняемое действие означает отсутствие корректного функционального бюджета и, как следствие, прекращение выполнения деятельности либо фактическое управление работой экономической службы, сформировавшей данный бюджет.

В большинстве работ, посвященных процессному подходу к управлению, он изображается как некая «панацея» для решения всех организационных проблем и противопоставляется функциональному как более прогрессивный и эффективный.

Однако, по нашему мнению, для анализа процессов, протекающих в рамках одной организационной единицы, функциональный подход сохраняет свою актуальность, поскольку процесс, не выходящий за пределы подразделения, можно рассматривать как функцию данного подразделения.

При разработке методики мы эмпирически пришли к методу структурирования при описании функции, который в литературе описан как фунционально-структурный подход (ФСП) и является методической основой экспликации и анализа функциональной структуры компании. Его основные положения заключаются в следующем:

компания должна быть ориентирована в первую очередь на решение задач с учетом существующих процессов и закономерностей их развития;

в своей деятельности ей следует опираться на представлении о нормативном характере функций компании (ее подсистем и элементов) и «сквозном» функциональном подходе к их анализу и синтезу;

функциональное назначение организационной единицы первично, структура вторична. Структура компании определяется совокупностью реализуемых функций, а также условиями ее существования и функционирования;

любая функция подчинена цели существования и функционирования компании;

взаимодействие функции и структуры компании в процессе развития характеризуется противоречивым единством. Согласованность и соответствие их друг другу являются временными, преходящими и имеют циклический характер. На каждом цикле развития первопричиной изменений могут выступать как функции компании, так и ее структура. Удачная структура может стимулировать новые потребности и соответственно «вызвать к жизни» новые функции.

Правила структурирования положения о подразделении

Чтобы понимать деятельность, осуществляемую в структурных подразделениях, необходимо обеспечить формализацию и учет выполняемых функций, которые невозможно организовать без их структурированного описания.

Для структурированного описания функции предлагается следующая форма:

F = (D, G, Н), где F — функция;

D — указание действия, производимого рассматриваемой организационной единицей и приводящего к желаемому результату;

G — указание объекта (объектов), на который направлено действие;

Н — указание особых условий и ограничений, при которых выполняется действие.

На основании данной формы были сформулированы правила описания функций естественным языком, которые закреплены в стандарте компании, регламентирующем процесс формирования положения о подразделении:

для отражения качественной стороны функции используется конструкция «глагол + существительное»;

под объектом в описании функции понимается все то, о чем можно спросить «что это?», «кто это?»;

описание условий и ограничений служит для повышения полноты, точности и детальности описания функции;

функция более высокого уровня имеет такое описание, в котором действие и объект имеют наиболее общее выражение, а компонент «условия и ограничения» отсутствует.

В разработанной нами методике описание функций, выполняемых подразделением, предполагает три уровня описания, отраженных в трех разделах положения о подразделении: «Цель подразделения», «Задачи подразделения», «Функции подразделения». Каждый раздел соответствует одному из уровней описания.

Мы сознательно отказались от описания раздела «Цель подразделения» в терминах S.M.A.R.T. В этом разделе описывается целевая функция подразделения (функция верхнего уровня, задающая контекст), для осуществления которой оно создавалось или создается.

В разделе «Задачи подразделения» объект функции подразделения декомпозируется на более частные объекты, при этом создается иерархия объектов компании.

В разделе «Функции подразделения» действие, описанное в целевой функции, декомпозируется на его составляющие элементы, таким образом порождается иерархия действий. Действующими в компании правилами допускается иерархическое описание этого раздела, имеющего на каждом уровне иерархии не более шести действий, причем принцип, положенный в основу декомпозиции, на каждом уровне должен сохраняться (рис. 1).

В регламентных документах в настоящее время разрешены два принципа декомпозиции действий — по фазам цикла управления (планирование, организация, контроль и т.д.) и по последовательным фазам процесса (например, конструировать, обеспечивать, изготавливать, отгружать, обслуживать).

Таким образом, система функций компании может быть описана как совокупность трех классификаторов: действий, объектов, условий и ограничений, ключевыми из которых являются классификаторы действий и объектов.

Функциональная структура может быть представлена как совокупность элементарных функций, каждая из которых однозначно описывается двумя классификаторами: классификатором действий и иерархическим классификатором объектов. Верхним уровнем классификатора объектов является перечень основных продуктов, процессов и ресурсов компании.

В случае если описание функций выполнено в соответствии с принципами функционально-структурного подхода, структура функций может быть выделена из существующей организационной структуры. В этом случае иерархия объектов извлекается из целей подразделения, а действия — из раздела «Функции».

Данная методика позволяет представить положения о подразделениях в виде матриц (таблиц), у которых нет недостатков естественного языка описания (неоднозначность, вариативность и т.д.). На их основе можно построить структуру функций на уровне компании.

Структура функций может быть представлена в виде двумерной матрицы (таблицы) либо системы матриц (для каждого уровня иерархии). Поле матрицы представляет собой элементарную функцию (рис. 2).

В случае если наименования объектов различных организационных структур и действия полностью совпадают, это позволяет сделать вывод о дублировании функций. Если по отношению к объекту отсутствует часть фаз деятельности, то имеется разрыв выполнения функции. Выявленное дублирование и разрывы в выполнении функций служат основанием для организационных изменений.

На основе матрицы может быть построен классификатор функций, предназначенный для использования в ЕRР-системах и контроля за закреплением функций.

Для формирования и ведения классификаторов, установления связей между действиями и объектами, проектирования функций подразделения следует использовать программные продукты класса OrgWare, а еще лучше ВРМ, например «Инталев: Навигатор», в котором достаточно удобно устанавливать связи между классификаторами объектов и действий, формировать отчеты и проводить анализ дублирования функций и функциональных разрывов.

Данный подход также облегчает проектирование организационной структуры компании: формулируется целевая функция подразделения, а затем на основе существующих классификаторов или путем декомпозиции по описанным выше правилам создаются объекты и элементы цикла деятельности. Их комбинация дает целевые функции для внутриструктурных подразделений, причем при выделении организационных единиц приоритет отдается выделению по объекту (рис. 3).

На основе структурирования описываются функции, выполняемые подразделением (рис. 4).

Заключение

Развитие менеджмента как прикладной научной дисциплины требует формирования единых правил и языка для описания системы управления. Сегодня наличие подобных правил и языка для описания технических и технологических систем воспринимается всеми как естественное явление. При проектировании любой технической системы существует набор стандартов — ЕСКД (единая система конструкторской документации) и ЕСТД (единая система технологической документации), которые позволяют ее однозначно описывать.

Однако назрела необходимость создать подобный стандарт и для проектирования управленческих систем. Существующие сейчас стандарты серии ИСО и другие стандарты в области управления, внедряемые предприятиями на территории России, носят, скорее, рамочный концептуальный характер. Описанную в данной статье методику можно рассматривать как один из элементов будущей единой системы управленческой документации (ЕСУД).

Д. ЕГОРОВ, консультант группы компаний ИНТАЛЕВ

А. СТАНИН, начальник отдела организационного развития ОАО «КАМАЗ»