В управлении проектами важная роль отводится разработке организационной структуры проекта.
Организационная структура проекта — соответствующая проекту временная организационная структура, включающая всех его участников и создаваемая для успешного управления и достижения целей проекта.
Необходимость разработки организационной структуры объясняется тем, что для выполнения проекта создается команда проекта — новый временный рабочий коллектив, состоящий из специалистов различных структурных подразделений компаний со стороны Исполнителя и со стороны Заказчика. Как и для любого нового коллектива, для членов команды проекта необходимо определить проектные роли (временные должности), функции, обязанности, ответственность, полномочия и правила взаимодействия, а также организационную схему, отражающую отношения подчиненности . При этом несущественно, на какой период времени будет создаваться команда проекта — на несколько месяцев или на несколько лет. Структура проекта определяется сложностью, масштабностью разработки и внедрения ИС, количеством и специализацией членов команды проекта . В команду проекта могут включаться специалисты, как на полную, так и на частичную занятость.
1.19 Типы организационных структур
Если внедрение информационной системы осуществляется с привлечением сторонней организации — Исполнителя, то для успешного внедрения необходимо сформировать команду проекта не только от Исполнителя, но и от Заказчика, после чего определить допустимые взаимодействия между членами команд Исполнителя и Заказчика (кто, с кем, по каким вопросам взаимодействует), т. е. установить правила взаимодействия.
При формировании организационной структуры проекта и принятии решения о подчиненности следует помнить, что управлять непосредственно более чем десятью членами команды проекта становится затруднительно. Идеальный вариант: пять-семь человек.
Особо отметим, что при создании организационной структуры проекта штатное расписание компании не должно изменяться. Не следует забывать, что проект — временное мероприятие, по окончании которого команда проекта распускается и специалисты приступают к своим функциональным обязанностям в соответствии со штатной организационной структурой компании или переходят на следующий проект, где их функции и полномочия могут быть другими.
Правильно сформированная организационная структура проекта обеспечит его эффективное управление , планирование, исполнение в запланированные сроки, на определенном качественном уровне.
Первая задача в формировании организационной структуры проекта — решить, какой тип структуры наилучшим образом подходит для данного проекта. Различные типы структур имеют определенные преимущества.
Основные типы организационных структур
Функциональная организация (Functional Organization) ( рис. 1.9). Иерархически выстроенная организация, в которой у каждого сотрудника есть один прямой начальник, сотрудники разделены на группы (отделы) по областям специализации. Каждая группа (отдел) управляется одним человеком, имеющим компетенцию в данной области — функциональным руководителем (руководителем отдела).
Типы организационных структур
Рис. 1.9. Линейно-функциональная структура организации
Матричная организация (Matrix Organization) ( рис. 1.10) — любая организационная структура, в которой Руководитель проекта разделяет с функциональными руководителями (руководителями отделов) ответственность по заданию приоритетов и управлению работой лиц, назначенных на исполнение проекта.
Рис. 1.10. Матричная структура организации
Проектная организация (Projectized Organization) — любая организационная структура, в которой Руководитель проекта обладает достаточными полномочиями по установлению приоритетов, использованию ресурсов и руководству работой лиц, назначенных на исполнение проекта, а также финансовыми полномочиями в рамках бюджета проекта .
Для того чтобы понять сущность различных типов организаций, рассмотрим на условном примере, как может быть построена работа по разработке и внедрению ИС при структуре организации , представленной на рис. 1.11.
Основные функции отдела Программирования: программирование алгоритмов расчета, анализа данных, интеграционных решений; разработка форм отчетов, разработка экранных форм, работа с базами данных ИС.
Основные функции отдела Бизнес-аналитики: разработка алгоритмов расчета, анализа данных, интеграционных решений, соответствующих бизнес-правилам, требованиям финансового учета и законодательства.
Основные функции отдела Консультаций и настроек ИС: настройка модулей ИС с использованием готовых алгоритмов, экранных форм и отчетов, оказание консультаций пользователям ИС.
Основные функции отдела Маркетинга и продаж: продажи ИС и услуг по ее внедрению.
Источник: intuit.ru
Организационная структура программы
Для каждого класса рекомендуют иметь два файла: файл заголовков или файл интерфейса и файл кодов или файлом реализации.
В нашей программе будем иметь: для класса ind — файлы index.hpp и index.cpp, для класса akt — akt.hpp и akt.cpp, для класса cena — cena.hpp и cena.cpp, для класса ved — vedom.hpp и vedom.cpp.
Файл управления (upr.cpp) содержит внешние функции (main, menu, podmenu), необходимые для управления программой.
3.3Проектирование файлов интерфейсов классов. Лекция № 13. Файл интерфейса базового класса
Спроектируем базовый класс ind. Поместим index и kol в часть private, т.к. они используется только элементами-функциями данного класса, а im_f и элементы-функции — в часть public, т.к. они используются в классах akt, cena, ved.
Спроектируем прототипы элементов-функций класса ind:
- void init_ind(int,char*); — инициализирует (создает) элемент индексного массива; принимает номер записи и значение ключа записи;
- void init_kol(int); — инициализирует кол-во элементов массива;
- int dob_ind(char*); — поиск номера добавляемой записи; принимает значение ключа записи, возвращает номер записи файла;
- int poisk_ind(char*,int,int — поиск номера искомой записи; принимает значение ключа записи, индекс элемента начала поиска; возвращает номер записи файла и соответствующий индекс элемента;
- void cor_ind(int,char*); — корректирует элемент индексного массива; принимает индекс элемента и значение ключа записи.
//файл интерфейса класса ind-index.hpp
#ifndef index_hpp
#define index_hpp
const int max_mass=100;
const int max_pole=10;
class ind //определение базового класса
private: //закрытые элементы класса
struct tip_index //индексный массив
char kluch[max_pole]; //ключ записи
int nomer; //номер записи в файле данных
> index[max_mass];
int kol; //кол-во элементов индексного массива
public: //защищенные элементы класса
char* imf; //имя файла данных
ind(char* im):imf(im) //конструктор базового класса
void init_ind(int,char*); //инициализация элемента массива
void init_kol(int); //инициализ. количества элементов
int dob_ind(char*); //добавление нового элемента
int poisk_ind(char*,int,int//поиск элемента массива
void cor_ind(int,char*); //корректировка массива
Файлы интерфейсов производных классов
Рассмотрим производные классы akt и cena. Элементы-данные этих классов наследуются классом ved, и поэтому, поместим их в часть protected. Так как элементы-функции formecran, vvod, vyvod вызываются только функциями данного класса, разместим их в части private.
Элементы-функции init, sozdanie, correct будут вызываться из файла управления через объект класса, и, согласно правилам доступа, должны быть расположены в части public. Элементы-функции zapis_zap и chtenie_zap используются функциями этих классов, а также — класса ved. Поэтому, поместим их в часть protected.
//файл интерфейса класса akt — akt.hpp
#ifndef akt_hpp
#define akt_hpp
#include «index.hpp»
class akt : public ind //определение производного класса akt
protected: //защищенные элементы класса
char tabn[10]; //табельный номер рабочего
char fio[30]; //ф.и.о.
char vid[10]; //вид выполненной работы
float objem; //объем выполненной работы
public: //открытые элементы класса
akt(char* im):ind(im) //конструктор производного класса akt
tabn[0]=’