Организационная структура и разделение труда в ИТ-подразделении
При упоминании о труде в сфере информационных технологий, в голове у многих возникает образ «помятого хакера», безвылазно сидящего за компьютером и обладающего исключительными, уникальными знаниями и навыками. Однако это не совсем верно, поскольку подобных единичных специалистов, занимающихся сверхсложными проектами, не так много. Существенная часть работы айтишников имеет постоянно-повторяющийся рутинный характер и, следовательно, поддается формальному описанию.
В двух словах функция ИТ-службы сводится к поддержанию и развитию информационной среды компании. Она в свою очередь включает в себя помимо непосредственно информации, создаваемой внутри организации, также технические средства для ее хранения и обмена. Исходя из этого, ИТ-специалист в организации - это чаще всего не профессионал-универсал во всех сферах деятельности, а узкоспециализированный работник, владеющий достаточным объемом знаний в каком-то одном направлении.
Условно всех работников ИТ-подразделений можно разделить на три категории:
- системные администраторы. Как правило, занимаются организацией сети внутри компании, установкой и настройкой программного обеспечения, различных сервисов.
- специалисты технической поддержки. Привлекаются для установки и настройки компьютеров, телефонов, сетевых подключений, отладки серверов и принтеров. (Данные специалисты могут также организовывать закупку техники, но в крупных организациях эта функция передана отделам снабжения).
- программисты. Сюда входит широкий спектр специалистов, начиная от разработчиков вебсайтов и модулей учетных программ и заканчивая создателями собственных программных продуктов.
В мелких компаниях труд первых двух категорий работников может выполнять один единственный сотрудник, а программирование быть передано в сторонние фирмы. В средних и крупных компаниях создается полноценная ИТ-служба, примерная структура которой, в соответствии с описанными выше направлениями, может выглядеть следующим образом.
В зависимости от рассматриваемой категории специалистов будет существенно отличаться перечень выполняемых ими работ, а соответственно и доступные для применения методы нормирования труда.
Выбор метода нормирования для ИТ-специалистов
Как и для большинства специалистов интеллектуального труда для нормирования ИТ- специалистов можно пойти двумя путями:
1. Использовать прямое нормирование по трудозатратам с применением одного из методов их расчета:
§ Путем проведения хронометража или фотографии рабочего времени;
§ На основе подходящих типовых межотраслевых норм;
§ Посредством экспертной оценки и проведения опросов специалистов, накопленных статистических данных.
2. Использовать косвенный поход, исходя из факторов, оказывающих влияние на норму численности.
При этом если в первом случае сложность заключается в выборе адекватной методики сбора данных и расчета для того или иного перечня работ, во втором наибольшие проблемы будут с корректным выбором влияющих на необходимую численность факторов и накоплении требуемых для расчета статистических данных.
Попробуем определить для каких категорий специалистов, какие методы будут наиболее приемлемыми.
Первые две категории специалистов на 2/3 выполняют рутинные операции, с которыми сталкиваются ежедневно при поддержке пользователей и оборудования. При этом периодически у них возникают нетипичные задачи, например, при поступлении в эксплуатацию нового типа серверов, которые нужно настроить. Для таких случаев и пригодится экспертный метод оценки трудозатрат.
Что касается нормирования программистов, то здесь вопрос довольно неоднозначный. Проводить фотографию рабочего дня для них, дело неблагодарное, да и не нужное. В то же время, говоря о программистах, допустим, в 1С, нельзя сказать, что их работа совсем уж эксклюзивная. Ведь довольно часто они делают отчеты по одному и тому же шаблону, меняя только ссылки на переменные. Однако и им нередко задают нетиповые задачи, требующие новых подходов к решению и значительных затрат времени. Поэтому для программистов все же ближе экспертный и косвенный метод определения трудозатрат. Для определения трудозатрат по эксклюзивным программным проектам существуют наработки специфических методов расчета трудоемкости.
Определение трудоемкости работ по нормам времени, утвержденным Минтруда
Для «рутинной» работы ИТ-подразделений наиболее простым способом расчета трудоемкости будет применение Постановления Министерства труда и социальной защиты Республики Беларусь от 23.03.2011 № 19 «Нормы времени на работы по обслуживанию персональных электронно-вычислительных машин, организационной техники и офисного оборудования» (далее - Постановление №19).
Приведенный в нем перечень работ вполне охватывает большую часть производимых системными администраторами операций, связанных с подключением, настройкой и обслуживанием вычислительной техники. Однако он практически не учитывает возникающую необходимость установки и настройки новых приложений. В целях устранения данного пробела нужно проводить дополнительные исследования затрат времени при загрузке и отладке вновь вводимого программного обеспечения. Для этого можно применять фотографию рабочего дня, хронометраж, либо комбинации этих методов.
Объемы работ в текущем году, под которые необходимо рассчитать численность персонала, целесообразно брать на основе статистики предыдущего года с учетом введения новых рабочих мест и возможных организационных и технических изменений.
Имея на руках плановый перечень работ и полученные статистически данные по их частоте можно прогнозировать трудовые затраты системных администраторов путем умножения количества работ на норму. Этот расчет можно оформить в форме таблицы, например, как приведено ниже.
Наименование работ |
Ед. изм. |
Объем работ на 12 мес. |
Номер таблицы в Постановлении №19 |
Номер нормы |
Норма времени на единицу работ |
Временные затраты всего, минут |
Администрирование активного сетевого оборудования с аппаратно-программной настройкой (коммутаторы) |
устройство |
312 |
19 |
1 |
35 |
10 920 |
Сервисное сопровождение и обслуживание программного обеспечения активного сетевого оборудования |
устройство |
425 |
19 |
2 |
211 |
89 675 |
Сопровождение FTP-сервера |
сервер |
24 |
13 |
2 |
70 |
1 680 |
Всего: |
102 275 |
Таким образом, для выполнения указанного объема работ достаточно иметь одного системного администратора в штате организации либо отдать эти функции на аутсорсинг.
А как же быть с программистами? К счастью, для них также есть свои нормативы - Постановление Министерства труда и социальной защиты Республики Беларусь от 27.06.2007 № 91 «Об утверждении укрупненных норм затрат труда на разработку программного обеспечения» (далее - Укрупненные нормы затрат труда), в котором приведены необходимые нормы. При этом в основу расчетов положен метод функциональных точек, который требует проведения экспертных оценок с целью выявления их количества и последующего корректного применения временных нормативов для каждой из них.
В связи с этим, определение трудоемкости работ программиста, вероятнее всего, потребует от нормировщика более глубокого погружения в тонкости процесса разработки ПО.
Укрупненные нормы затрат труда стандартизирует процесс программирования, разбивая его на следующие стадии:
· техническое задание (ТЗ);
· эскизный проект (ЭП);
· технический проект (ТП);
· рабочий проект (РП);
· ввод в действие (ВН).
Помимо этого предлагается учитывать в качестве влияющих на длительность процесса следующие факторы:
· объема ПО в строках исходного кода (LOC);
· сложности разрабатываемого ПО;
· степени новизны разрабатываемого ПО;
· степени использования в разработке стандартных модулей;
· условий и средств разработки ПО.
При этом для параметра строк исходного кода предлагается таблица их количества для каждой стандартизированной функции (действия, процесса).
Итак имеется задание на разработку проекта ПО на языке Visual С++, которое будет использоваться для накопления информации о работе транспорта в коммерческой (пройденные километры, списанные литры топлива, перевезенные тонны, время работы и т.д.). На основании данных экспертной оценки составляющих функций была получена следующая таблица для подсчета количества строк кода (на основе приложения 1 к Укрупненным нормам затрат труда):
№ п/п |
Код функции |
Содержание функции |
Количество строк исходного кода Vi |
1 |
101 |
Организация ввода информации |
150 |
2 |
109 |
Управление вводом - выводом |
2400 |
3 |
202 |
Формирование баз данных |
2180 |
4 |
203 |
Обработка наборов записей баз данных |
2670 |
5 |
206 |
Манипулирование данными |
9550 |
6 |
207 |
Организация поиска и поиск в базе данных |
5480 |
7 |
403 |
Формирование служебных таблиц |
1070 |
8 |
703 |
Расчет показателей |
460 |
9 |
706 |
Предварительная обработка и печать файлов |
470 |
10 |
707 |
Графический вывод результатов |
590 |
|
|
Итого |
25020 |
Рассматриваемая программа будет отнесена ко 2 категории сложности, поскольку требует моделирование объектов и процессов и обеспечение настройки ПО на изменения структур входных и выходных данных. В связи с этим коэффициент повышения сложности на основе приложения 4 к Укрупненным нормам затрат труда будет равен 1+0,12 = 1,12.
Программа в сущности является развитием уже имеющихся на рынке аналогов и создается на уже известном программном и аппаратном обеспечении, в связи с чем относится к категории новизны «В», в связи с чем коэффициент новизны «В» основе приложения 5 к Укрупненным нормам затрат труда будет равен 0,63.
Количество стандартных модулей при написании ПО составит 50%, поэтому на основе приложения 6 к Укрупненным нормам затрат труда коэффициент Кт будет равен 0,65.
Коэффициент, учитывающий средства разработки ПО (Кур) на основе приложения 7 к Укрупненным нормам затрат труда будет равен 1.
Для программ категории новизны «B» (без применения CASE-технологии) распределение удельных весов стадий разработки следующее: Ктз -0,08;; Кэп =019; Ктп =0,28; ; Крп= 0.,34; Квн= 0,11 (см. приложение 8 к Укрупненным нормам затрат).
Ознакомившись приложением 3 к Укрупненным нормам затрат труда, эксперты пришли к выводу, что для значения 25020 строк приемлемо использовать показатель строки 79 с трудоемкостью 1108 чел.-дней.
Результат расчета трудоемкости разработки программы отразим в таблице:
Показатели |
Этапы проекта |
Всего |
||||
ТЗ |
ЭП |
ТП |
РП |
ВН |
||
Удельные веса этапов |
0,08 |
0,19 |
0,28 |
0,34 |
0,11 |
1 |
Распределение трудоемкости по этапам, человеко-дней |
88,64 |
210,52 |
310,24 |
376,72 |
121,88 |
1108 |
Кс |
1,12 |
1,12 |
1,12 |
1,12 |
1,12 |
|
Кт |
|
|
|
0,65 |
|
|
Кн |
0,63 |
0,63 |
0,63 |
0,63 |
0,63 |
|
Итоговая трудоемкость, человеко-дней |
62,544 |
148,543 |
218,905 |
172,779 |
85,999 |
688,770 |
Таким образом, если задача ставиться на год, для определения необходимой плановой численности нужно будет разделить полученную трудоемкость на количество рабочих дней в году, приходящихся на одного работника. Вот и всё!
При этом никто не отменял метода экспертных оценок, а также применение статистики предыдущих разработок. Поэтому далее рассмотрим альтернативный вариант расчета трудоемкости для программистов.
Проектный метод расчета трудозатрат по написанию программ COCMO II
Для разработки самостоятельных программных продуктов сформировались свои, достаточно специфические подходы к определению трудоемкости. Основная идея в их реализации сводится к тому, что создание программы - это проект. В связи с этим сделана попытка применения в сфере их создания инструментов для определения длительности проекта.
Одним из наиболее распространенных стал, разработанный в начале 80-х годов прошлого столетия метод COCMO, позднее усовершенствованный и получивший название COCMO II. Он предлагает рассчитывать трудоемкость исходя из показателя количества строк (тысяч строк) программного кода.
Для этого предлагается использовать следующую формулу:
Остановимся подробнее на содержании элементов формул:
1. Элемент B имеет значение 0,91;
2. Элемент A - зависит от стадии оценки проекта и принимает значение 2,45 для предварительной оценки и 2,94 для детальной;
3. SF - фактор масштаба, его берут из специализированной таблицы. Есть готовые таблицы, как, например, предлагаемая организацией Software Engineering Institute, США. Таблицу также можно разработать самостоятельно на основе собранных статистических данных;
4. SIZE - плановый объем работ в тысячах строк кода;
5. EAF - произведение множителей трудоемкости (ЕМi), также берущихся из стандартной готовой таблицы, либо из созданной самостоятельно на основе накопленных статистических данных.
Сначала остановимся на описании факторов масштаба, чтобы лучше понимать, что оценивается:
Описание уровней значимости факторов масштаба
Описание |
Уровень значимости фактора |
||||||
Очень низкий |
Низкий |
Средний |
Высокий |
Очень высокий |
Критический |
||
PREC |
Прецедентность, наличие опыта аналогичных разработок |
опыт в продукте и платформе отсутствует |
продукт и платформа немного знакомы |
некоторый опыт в продукте и платформе присутствует |
продукт и платформа в основном известны |
продукт и платформа в большой степени знакомы |
продукт и платформа полностью знакомы |
FLEX |
Гибкость процесса разработки |
процесс строго предопределен |
допускаются некоторые компромиссы |
значительная жесткость процесса |
относительная жесткость процесса |
незначительная жесткость процесса |
определены только общие цели |
RESL |
Архитектура и разрешение рисков |
риски известны/ проанализированы на 20% |
—″— На 40% |
—″— На 60% |
—″— На 75% |
—″— На 90% |
—″— На 100% |
TEAM |
Сработанность команды |
формальные взаимодействия |
тяжелое взаимодействие до некоторой степени |
чаще всего коллективная работа |
в основном коллективная работа |
высокая степень взаимодействия |
полное доверие, взаимозаменяемость и взаимопомощь |
PMAT |
Зрелость процессов |
СММ Уровень 1 ниже среднего |
СММ Уровень 1 выше среднего |
СММ Уровень 2 |
СММ Уровень 3 |
СММ Уровень 4 |
СММ Уровень 5 |
Исходя из уровня значимости указанного фактора, можно выбрать его числовое значение на основе таблицы ниже:
Значение фактора масштаба
Оценка уровня фактора |
||||||
Очень низкий |
Низкий |
Средний |
Высокий |
Очень высокий |
Критический |
|
PREC |
6.20 |
4.96 |
3.72 |
2.48 |
1.24 |
0.00 |
FLEX |
5.07 |
4.05 |
3.04 |
2.03 |
1.01 |
0.00 |
RESL |
7.07 |
5.65 |
4.24 |
2.83 |
1.41 |
0.00 |
TEAM |
5.48 |
4.38 |
3.29 |
2.19 |
1.10 |
0.00 |
PMAT |
7.80 |
6.24 |
4.68 |
3.12 |
1.56 |
0.00 |
Также для расчета нужно будет воспользоваться таблицей значений множителей трудоемкости, которая приведена ниже.
Значения множителей трудоемкости
№ |
Множитель трудоемкости, |
Описание |
Оценка уровня множителя трудоемкости |
||||||
Супернизкий |
Очень низкий |
Низкий |
Нормальный |
Высокий |
Очень высокий |
Супер высокий |
|||
1 |
PERS |
квалификация персонала |
2.12 |
1.62 |
1.26 |
1.00 |
0.83 |
0.63 |
0.50 |
2 |
PREX |
опыт персонала |
1.59 |
1.33 |
1.22 |
1.00 |
0.87 |
0.74 |
0.62 |
3 |
RCPX |
сложность и надежность продукта |
0.49 |
0.60 |
0.83 |
1.00 |
1.33 |
1.91 |
2.72 |
4 |
RUSE |
разработка для повторного использования |
n/a |
n/a |
0.95 |
1.00 |
1.07 |
1.15 |
1.24 |
5 |
PDIF |
сложность платформы разработки |
n/a |
n/a |
0.87 |
1.00 |
1.29 |
1.81 |
2.61 |
6 |
FCIL |
оборудование |
1.43 |
1.30 |
1.10 |
1.00 |
0.87 |
0.73 |
0.62 |
7 |
CSED |
требуемое выполнение графика работ |
n/a |
1.43 |
1.14 |
1.00 |
1.00 |
n/a |
n/a |
Примечание: n/a – соответствующий уровень не оценивается
Парадокс применения описываемого метода заключается в том, что прогнозируемый размер кода определяется экспертным методом или методом функциональных точек. Метод функциональных точек, также относится к формальным алгоритмам, который позволяет использовать табличные значения количества строк для каждой выделенной функциональной точки.
Предположим, что экспертным методом удалось определить, что размер программы (SIZE) будет равен 15 тыс. строк кода. Вначале рассчитаем показатель Е. Для него, в результате совещания были получены оценки вероятных значений факторов масштаба (SF) , для которых взяты соответствующие значения из таблицы.
SF |
Оценка |
Значение |
PREC |
Низкий |
4,96 |
FLEX |
Средний |
3,04 |
RESL |
Высокий |
2,83 |
TEAM |
Низкий |
4,38 |
PMAT |
Средний |
4,68 |
Е = 0,91+0,01 * (4,96+3,04+2,83+4,38+4,68) =1,1089.Подставив их значение в формулу, получим следующее:
Далее определяем показатель EAF, на основе приведенной таблицы трудоемкости, оценка их уровня также происходит на основе мнений специалистов. Предположим, по итогам обсуждения сложились следующие значения:
№ |
Множитель трудоемкости |
Описание |
Оценка экспертов |
Значение |
1 |
PERS |
квалификация персонала |
Нормальный |
1,0 |
2 |
PREX |
опыт персонала |
Низкий |
1,2 |
3 |
RCPX |
сложность и надежность продукта |
Высокий |
1,3 |
4 |
RUSE |
разработка для повторного использования |
Низкий |
1,0 |
5 |
PDIF |
сложность платформы разработки |
Нормальный |
1,0 |
6 |
FCIL |
оборудование |
Очень высокий |
0,7 |
7 |
CSED |
требуемое выполнение графика работ |
Высокий |
1,0 |
Тогда EAF будет равен:
1 * 1,2 * 1,3 * 1 * 1 * 0,7 * 1=1,092.
Далее, применяя основную формулу, получим следующее:
человеко -месяцев.
Таким образом, один сотрудник сможет выполнить указанную работу за 64,68 или почти 65 месяцев. Допустим у нас в штате 10 программистов, тогда они смогут разработать указанный продукт за 64,68 /10 = 6,468 мес., иными словами уложатся в полгода. Если принять в качестве среднего значения 168 рабочих часов в месяц, тогда в часах трудоемкость проекта составит 64,68 * 168 = 10 866,24 человеко -часа.
Данный метод является формальным и в литературных источниках советуют прибегать к нему при недостаточном опыте экспертов или при отсутствии достаточной вводной информации. Кроме того, следует понимать, что он оправдан только при наличии сложных проектов в сфере разработки программного обеспечения.
Метод нормирования численности работников ИТ-подразделения с помощью уравнения регрессии
Такой вариант нормирования численности уже рассматривался в одной из публикаций посвященной нормированию работы офисного персонала. Однако в данном случае требуется рассмотреть частный случай его применения.
Первоначально определим влияющие на численность системных администраторов факторы:
1. Количество серверов на обслуживании;
2. Число пользователей интернета в компании;
3. Количество пользователей баз данных;
4. Объем обслуживаемых файловых хранилищ (в терабайтах).
Примем за оптимальную численность системных администраторов в компании, приходящуюся на 2014-2017 годы. В этот период компания работала стабильно, а потом начались длительные организационные изменения, проблемы с заказами и прочие трудности, преодолеть которые, удалось только к концу 2020 года.
Предположим, что значение перечисленных факторов в этот период принимали следующие значения при указной фактической численности персонала (см. таблицу ниже).
Годы |
Количество серверов на обслуживании |
Число пользователей интернет в компании |
Количество пользователей баз данных |
Объем обслуживаемых файловых хранилищ (в терабайтах) |
Численность персонала (системных администраторов) |
2014 |
65 |
905 |
495 |
214 |
7 |
2015 |
85 |
940 |
475 |
240 |
8 |
2016 |
90 |
960 |
480 |
230 |
8 |
2017 |
104 |
990 |
510 |
260 |
9 |
Сформируем дополнительную матрицу, последовательно сложив 2014 и 2015, 2015 и 2016, 2016 и 2017 годы.
Годы |
Количество серверов на обслуживании |
Число пользователей интернет в компании |
Количество пользователей баз данных |
Объем обслуживаемых файловых хранилищ (в терабайтах) |
Численность персонала |
2014 |
65 |
905 |
495 |
214 |
7 |
2015 |
85 |
940 |
475 |
240 |
8 |
2016 |
90 |
960 |
480 |
230 |
8 |
2017 |
104 |
990 |
510 |
260 |
9 |
2014+2015 |
150 |
1845 |
970 |
454 |
15 |
2015+2016 |
175 |
1900 |
955 |
470 |
16 |
2016+2017 |
194 |
1950 |
990 |
490 |
17 |
Далее, пользуясь средствами Microsoft Excel, составляем требуемое уравнение регрессии, задающее зависимость между факторами и результатом (в нашем случае численностью персонала). Для этого заходим в меню Данные – Анализ данных, в открывшемся окне выбираем регрессия и жмем ОК.
После этого выделяем входные данные значения Y (численность персонала) и значения X (ячейки с факторами).
Получим следующий результат на отдельном листе:
Нас интересуют более всего первые 2 столбца нижней таблицы. Исходя из них, наше искомое уравнение регрессии примет вид:
Y =0,0000000000000017+0,0298Х1+0,0004Х2+0,0023Х3+0,0168Х4,
Как видно, значение пересечения с осью Y столь мало, что его можно смело приравнять к нулю.
Теперь, основываясь на полученном уравнении можно смело прогнозировать численность необходимых специалистов ИТ–подразделения.
Предположим, что в 2021 году планируются следующие параметры загрузки для системных администраторов:
Годы |
Количество серверов на обслуживании |
Число пользователей интернет в компании |
Количество пользователей баз данных |
Объем обслуживаемых файловых хранилищ (в терабайтах) |
2021 |
120 |
1020 |
516 |
300 |
Дополним эту таблицу нашими коэффициентами при переменных и затем перемножим прогнозное значение на коэффициент, получив таким способом нашу плановую численность отдела:
Годы |
Количество серверов на обслуживании |
Число пользователей интернет в компании |
Количество пользователей баз данных |
Объем обслуживаемых файловых хранилищ (в терабайтах) |
Численность персонала (системных администраторов) |
2021 |
120 |
1020 |
516 |
300 |
10 |
Коэффициенты трудовой нагрузки |
0,0298 |
0,0004 |
0,0023 |
0,0168 |
|
На этом, можно было бы остановиться, поскольку искомое значение получено. Тем не менее, полученные результаты следует проанализировать на их соответствие действительному положению дел и только после этого официально утверждать полученный результат.