Типы организационных структур. Структуры

При разработке программ важным является выбор эффективного способа представления данных. Во многих случаях недостаточно объявить простую переменную или массив, а нужна более гибкая форма представления данных. Таким элементом может быть структура, которая позволяет включать в себя разные типы данных, а также другие структуры. Приведем пример, в котором использование структуры позволяет эффективно представить данные. Таким примером будет инвентарный перечень книг, в котором для каждой книги необходимо указывать ее наименование, автора и год издания. Причем количество книг может быть разным, но будем полгать, что не более 100. Для хранения информации об одной книге целесообразно использовать структуру, которая задается в языке С++ с помощью ключевого слова struct, за которым следует ее имя. Само определение структуры, т.е. то, что она будет содержать, записывается в фигурных скобках {}. В данном случае структура будет иметь следующий вид:

struct book {
char author; //автор
int year; //год издания
};

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

struct book lib; //объявляется переменная типа book

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


scanf(“%s”,lib.title);
scanf(“%s”,lib.author);
scanf(“%d”,&lib.year);

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

struct book lib;

В этом случае программу ввода и хранения информации по книгам можно записать в виде:

Листинг 3.5. Инвентарный перечень книг.

#include
struct book {
char title; //наименование книги
char author; //автор
int year; //год издания
};

int main()
{
int cnt_book = 0, ch;
struct book lib;
do
{
printf(“Введите наименование книги: “);
scanf(“%s”,lib.title);
printf(“Введите автора книги: “);
scanf(“%s”,lib.author);
printf(“Введите год издания книги: “);
scanf(“%d”,&lib.year);
printf(“Нажмите q для завершения ввода: ”);
cnt_book++;
}
while(scanf(“%d”,ch) == 1 && cnt_book return 0;
}

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

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

struct bool lib = {
“Евгений Онегин”,
“Пушкин А.С.”,
1995
};

При выполнении данного фрагмента программы в переменные структуры title, author и year будет записана соответственно информация: “Евгений Онегин”, “Пушкин А.С.”, 1995. Здесь следует обратить внимание, что последовательность данных при инициализации должна соответствовать последовательности полей в структуре. Это накладывает определенные ограничения, т.к. при инициализации необходимо помнить последовательность полей в структуре. Стандарт C99 допускает более гибкий механизм инициализации полей структуры:

struct book lib = {.year = 1995,
.author = “Пушкин А.С.”,
.title = “Евгений Онегин” };

struct book lib = { .year = 1995,
.title = “Евгений Онегин” };

struct book lib = {.author = “Пушкин А.С.”,
.title = “Евгений Онегин”,
1995 };

В первом и во втором примерах при инициализации указываются наименования полей через точку. При этом их порядок и число не имеет значения. В третьем примере первые два поля указаны через имена, а последнее инициализируется по порядковому номеру – третьему, который соответствует полю year.

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

struct tag_fio {
char last;
char first;
char otch;
};
struct tag_people {
struct tag_fio fio; //вложенная структура
char job;
int old;
};

Рассмотрим способ инициализации и доступ к полям структуры people на следующем примере.

Листинг 3.6. Работа с вложенными структурами.

int main()
{
struct people man = {
{“Иванов”, “Иван”, “Иванович”},
“Электрик”,
50 };
printf(“Ф.И.О.:%s %s %s\n”,man.fio.last,man.fio.first,
man.fio.otch);
printf(“Профессия: %s \n”,man.job);
return 0;
}

В данном примере показано, что для инициализации структуры внутри другой структуры следует использовать дополнительные фигурные скобки, в которых содержится информация для инициализации полей фамилии, имени и отчества сотрудника. Для того чтобы получить доступ к полям вложенной структуры выполняется сначала обращение к ней по имени man.fio, а затем к ее полям: man.fio.last, man.fio.first и man.fio.otch. Используя данное правило, можно создавать многоуровневые вложения для эффективного хранения и извлечения данных.

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

Листинг 3.7. Передача структур через аргументы функции.

#include
struct tag_people {
char name;
char job;
int old;
};
int main()
{
struct tag_people person = {“Иванов”,”Электрик”,30};
show_struct(person);
return 0;
}
{

printf(“Возраст: %d\n”,man.old);
}

В приведенном примере используется функция с именем show_struct, которая имеет тип аргумента struct tag_people и переменную-структуру man. При передаче структуры функции создается ее копия, которая доступная в теле функции show_struct под именем man. Следовательно, любые изменения полей структуры с именем man никак не повлияют на содержание структуры с именем person. Вместе с тем иногда необходимо выполнять изменение полей структуры функции и возвращать измененные данные вызывающей программе. Для этого можно задать функцию, которая будет возвращать структуру, как показано в листинге 3.8.

Листинг 3.8. Функции, принимающие и возвращающие струткуру.

#include
struct tag_people {
char name;
char job;
int old;
};
void show_struct(struct tag_people man);
struct tag_people get_struct();
int main()
{
struct tag_people person;
person = get_struct();
show_struct(person);
return 0;
}
void show_struct(struct tag_people man)
{
printf(“Имя: %s\n”,man.name);
printf(“Профессия: %s\n”,man.job);
printf(“Возраст: %d\n”,man.old);
}
struct tag_people get_struct()
{
struct tag_people man;
scanf(“%s”,man.name);
scanf(“%s”,man.job);
scanf(“%d”,man.old);
return man;
}

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

Функциям в качестве аргумента можно также передавать массивы структур. Для этого используется следующее определение:

void show_struct(struct people mans, int size);

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

Листинг 3.9. Передача массив структур функции.

#include
#define N 2
struct tag_people {
char name;
char job;
int old;
};
void show_struct(struct people mans, int size);
int main()
{
struct people persons[N] = {
{ “Иванов”, «Электрик», 35 },
{ “Петров”, «Преподаватель», 50 },
};
show_struct(persons, N);
}
void show_struct(struct people mans, int size)
{
for(int i = 0;i printf(“Имя: %s\n”,mans[i].name);
printf(“Профессия: %s\n”,mans[i].job);
printf(“Возраст: %d\n”,mans[i].old);
}
}

При передаче аргумента persons выполняется копирование информации в массив mans и указывается дополнительный параметр size, для определения числа элементов массива mans. Затем в функции show_struct() реализуется цикл, в котором выполняется отображение информации массива структуры на экран монитора.

Структуры управления классифицируют в зависимости от ха-рактера и целей исследований, выделяя на основе разных призна-ков типичные. Широко распространена классификация структур управления по признаку ступенчатости. По каким бы признакам ни выделяли и ни типизировали структуры, все они имеют опре-деленное число ступеней. Выделяются 2, 3, 4-ступенчатые и т. д., а также комбинированные структуры управления. Характеристика структуры с этой стороны исключительно важна при разработке мероприятий по рационализации системы управления, особенно в условиях применения средств механизации и автоматизации уп-равленческого труда.

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

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

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

4-ступенчатая структура управления используется в различного рода агропромышленных объединениях.

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

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


Преимущества линейной структуры управления заключаются в следующем:

Единство и четкость распорядительства исключают дублирова-ние функций, противоречивость и несогласованность;

Повышается ответственность руководителя за результаты дея-тельности возглавляемого им подразделения;

Оперативно принимаются решения.

Недостатки линейной структуры управления сводятся к следу-ющему:

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

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

Линейная структура управления используется мелкими пред-приятиями на несложном производстве.

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

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

Преимущества функциональной структуры управления таковы:

Высокая компетентность специалистов, отвечающих за выпол-нение конкретных функций;

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

К недостаткам функциональных структур относятся:

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

Длительность процедуры принятия решений;

Иерархия во взаимоотношениях;

Нескоординированность действий между работниками функ-циональных служб разной специализации;

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

Каждый функциональный руководитель и специализированные подразделения ставят «свои» вопросы на первое место; в результа-те в одних случаях возникает дублирование, в других — несогласо-ванность указаний и распоряжений, получаемых работниками сверху;

Нарушение принципов единоначалия и единства распоряди-тельства.

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

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

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

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

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

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

Система управления с программно-целевой структурой — наи-более прогрессивна по следующим причинам:

Обеспечивает системное научное управление;

Деятельность временных творческих коллективов можно опера-тивно переориентировать с учетом требований и конъюнктуры рынка;

Организуются кооперативы специалистов, работающих по це-левым программам;

Повышается значимость и расширяются функции службы мар-кетинга.

Матричная структура управления — современный эффективный тип структуры, создаваемый путем совмещения линейной и про-граммно-целевой структур.

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

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

Преимущества матричной структуры управления заключаются в следующем:

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

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

Вовлечение руководителей и специалистов всех уровней в ак-тивную творческую деятельность по техническому совершенство-ванию производства.

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

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

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

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

Рассмотренные структуры не раскрывают ряда качественных параметров управления сельскохозяйственными предприятиями.

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

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

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

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

Рис. 14. Отраслевая структура управления

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

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

Условия, необходимые для внедрения цеховой структуры уп-равления:

Узкая специализация предприятия;

Компактность территории;

Наличие высококвалифицированных специалистов;

Надежные средства связи.

Бригадная структура управления — наиболее простая, находит применение в небольших по размеру хозяйствах (овощеводство закрытого грунта). Может быть построена как на территориаль-ных принципах (комплексные бригады), так и на отраслевых. Однако в любом случае объем управленческих работ резко возрастает (рис. 15).

Рис. 15. Бригадная структура управления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Линейная организационная структура управления имеет свои преимущества и недостатки.

Таблица 1

Преимущества

Недостатки

1) единство и четкость распорядительства

1) высокие требования к руководителю, который должен быть подготовлен всесторонне, чтобы обеспечивать эффективное руководство по всем функциям управления

2) согласованность действия исполнителей

2) отсутствие звеньев по планированию и подготовке решений

3) простота управления (один канал связи)

3) перегрузка информацией, множество контактов с подчиненными, вышестоящими и сменными структурами

4) четко выраженная ответственность

4) затруднительные связи между инстанциями

5) оперативность в принятии решений

5) концентрация власти в управляющей верхушке

6) личная ответственность руководителя за конечные результаты деятельности своего подразделения

Серьезные недостатки линейной структуры в определенной мере могут быть устранены функциональной структурой.

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

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

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

Функциональное управление существует наряду с линейным, что создает двойное подчинение для исполнителей.

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

Как и линейная, функциональная структура имеет свое преимущества и недостатки.

Таблица 2

Преимущества

Недостатки

1) высокая компетентность специалистов, отвечающих за осуществление конкретных функций

1) чрезмерная заинтересованность в реализации целей и задач «своих» подразделений

2) освобождение линейных менеджеров от решения некоторых специальных вопросов

2) трудности в поддержании постоянных взаимосвязей между различными функциональными службами

3) стандартизация, формализация и программирование явлений и процессов

3) появление тенденций чрезмерной централизации

4) исключение дублирования и параллелизма в выполнении управленческих функций

4) длительная процедура принятия решения

5) уменьшение потребности в специалистах широкого профиля

5) относительно застывшая организационная форма, с трудом реагирующая на изменения

Недостатки как линейной, так и функциональной структур управления в значительной степени устраняются линейно-функциональными структурами.

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

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

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

Линейно-функциональная структура также имеет свои положительные моменты и недостатки.

Таблица 3

Преимущества

Недостатки

1) более глубокая подготовка решений и планов, связанных со специализацией работников

1) отсутствие тесных взаимосвязей и взаимодействия на горизонтальном уровне между производственными отделениями

2) освобождение главного линейного менеджера от глубокого анализа проблем

2) недостаточно четкая ответственность, так как готовящий решение как правило не участвуют в его реализации

3) возможность привлечения консультантов и экспертов

3) чрезмерно развитая система взаимодействия по вертикали, а именно: подчинение по иерархии управления, т. е. тенденция к чрезмерной централизации

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

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

В соответствии с линейной структурой (по вертикали) строится управление по отдельным сферам деятельности организации: НИОКР, производство, сбыт, снабжение и т.д.

В рамках программно-целевой структуры (по горизонтали) организуется управление программами (проектами, темами).

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

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

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

Матричная структура также имеет свои преимущества и недостатки.

Таблица 4

Преимущества

Недостатки

1) возможность быстро реагировать и адаптироваться к изменяющимся внутренним и внешним условиям организации

1) сложная структура соподчинения, в результате чего возникают проблемы, связанные с установлением приоритетов заданий и распределением времени на их выполнение

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

2) присутствие «духа» нездорового соперничества между руководителями программ

3) рациональное использование кадров за счет специализации различных видов трудовой деятельности

3) необходимость постоянного контроля за «соотношением» сил между задачами управления по целям

4) увеличение мотивации деятельности за счет децентрализации управления и усиления демократических принципов руководства

4) трудность в приобретении навыков, необходимых для работы по новой программе

5) усиление контроля за отдельными задачами проекта

6) сокращение нагрузки на руководителей высокого уровня за счет делегирования определенной части полномочий

7) повышение личной ответственности за выполнение программы в целом и ее составных элементов

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

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

Последнее обновление: 09.10.2017

Ранее для определения классов мы использовали ключевое слово class . Однако C++ предоставляет еще один способ для определения пользовательских типов, который заключается в использовании структур. Данный способ был унаследован языком С++ еще от языка Си.

Структура в языке C++ представляет собой производный тип данных, который представляет какую-то определенную сущность, также как и класс. Нередко структуры применителько к С++ также называют классами. И в реальности различия между ними не такие большие.

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

Struct имя_структуры { компоненты_структуры };

Имя_структуры представляет произвольный идентификатор, к которому применяются те же правила, что и при наименовании переменных.

После имени структуры в фигурных скобках помещаются Компоненты_структуры , которые представляют набор описаний объектов и функций, которые составляют структуру.

Например, определим простейшую структуру:

#include #include struct person { int age; std::string name; }; int main() { person tom; tom.name = "Tom"; tom.age = 34; std::cout << "Name: " << tom.name << "\tAge: " << tom.age << std::endl; return 0; }

Здесь определена структура person , которая имеет два элемента: age (представляет тип int) и name (представляет тип string).

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

Имя_переменной_структуры.имя_элемента

По сути структура похожа на класс, то есть с помощью структур также можно определять сущности для использования в программе. В то же время все члены структуры, для которых не используется спецификатор доступа (public, private), по умолчанию являются открытыми (public). Тогда как в классе все его члены, для которых не указан спецификатор доступа, являются закрытыми (private).

Кроме того мы можем инициализировать структуру, присвоив ее переменным значения с помощью синтаксиса инициализации:

Person tom = { 34, "Tom" };

Инициализация структур аналогична инициализации массивов: в фигурных скобках передаются значения для элементов структуры по порядку. Так как в структуре person первым определено свойство, которое представляет тип int - число, то в фигурных скобках вначале идет число. И так далее для всех элементов структуры по порядку.

При этом любой класс мы можем представить в виде структуры и наоборот. Возьмем, к примеру, следующий класс:

Class Person { public: Person(std::string n, int a) { name = n; age = a; } void move() { std::cout << name << " is moving" << std::endl; } void setAge(int a) { if (a > 0 && a < 100) age = a; } std::string getName() { return name; } int getAge() { return age; } private: std::string name; int age; };

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

#include #include struct user { public: user(std::string n, int a) { name = n; age = a; } void move() { std::cout << name << " is moving" << std::endl; } void setAge(int a) { if (a > 0 && a < 100) age = a; } std::string getName() { return name; } int getAge() { return age; } private: std::string name; int age; }; int main() { user tom("Tom", 22); std::cout << "Name: " << tom.getName() << "\tAge: " << tom.getAge() << std::endl; tom.setAge(31); std::cout << "Name: " << tom.getName() << "\tAge: " << tom.getAge() << std::endl; return 0; }

И в плане конечного результата программы мы не увидели бы никакой разницы.

Когда использовать структуры? Как правило, структуры используются для описания таких данных, которые имеют только набор публичных атрибутов - открытых переменных. Например, как та же структура person, которая была определена в начале статьи. Иногда подобные сущности еще называют аггрегатными классами (aggregate classes).

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

Рисунок 3.2. Схема линейной структуры управления по принципу "результат - треугольник"

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

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

Рисунок 3.3. Схема линейной организационной структуры управления

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

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

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

Линейная организационная структура управления имеет свои преимущества и недостатки (табл. 3.1).

Таблица 3.1

Преимущества Недостатки
  1. единство и четкость распорядительства
  2. согласованность действий исполнителей
  3. простота управления (один канал связи)
  4. четко выраженная ответственность
  5. оперативность в принятии решений
  6. личная ответственность руководителя за конечные результаты деятельности своего подразделения
  1. высокие требования к руководителю, который должен быть подготовлен всесторонне, чтобы обеспечивать эффективное руководство по всем функциям управления
  2. отсутствие звеньев по планированию и подготовке решений
  3. перегрузка информацией, множество контактов с подчиненными, вышестоящими и сменными структурами
  4. затруднительные связи между инстанциями
  5. концентрация власти в управляющей верхушке

Серьезные недостатки линейной структуры в определенной мере могут быть устранены