Мифический человеко-час / Хабр
Что такое человеко-час, человеко-месяц и человеко-год? Как правильно ими пользоваться при планировании и выполнении программных проектов? Какие типичные ошибки допускают проектные менеджеры и руководители групп программистов?
Меня зовут Гелий Шаров, и я работаю тим-лидом в Orion Innovation. Проработав 24 года в IT-компании на разных должностях, включая менеджерские, я понял, что существует путаница в понятии человеко-час и в том, как им можно манипулировать в IT-проектах. Эта статья поможет развеять мифы и подскажет как правильно планировать работы в проектах. От правильной оценки проекта зависит очень многое. И то, согласится ли с ней ваш клиент и даст ли проекту старт. И то, насколько сложно вам будет делать коррекцию этой оценки в процессе, что неизбежно, и сможете ли вы эту коррекцию обосновать, и то, как вы будете выстраивать бизнес-процессы в управлении проектом. Поэтому в оценке IT-проекта задействована масса факторов, шкал и расчетов. Тем не менее, основная масса клиентов ориентируется на очень понятную и четкую единицу измерения – человеко-час.
И разумеется, это палка о двух концах. С одной стороны – это предельна простая базовая единица. С другой стороны, нередко задача по адекватной оценке сложного проекта в столь простых единицах похожа на попытку измерить расстояния в нелинейной системе в попугаях.
Человеко-час — это единица измерения, которой пользуются в проектах для двух разных целей:
Оценки объёма/сложности разработки программного продукта/компонента – то есть оценки необходимых усилий на его создание и тестирование.
Подсчёта стоимости работ по проекту.
Например, если пять человек выполняют работу в течение рабочей недели, то это составляет 5 * 40 = 200 человеко-часов. Человеко-часы — это удобный инструмент, который широко используется в аутсорсинговых организациях по разработке ПО.
Если сравнить человеко-месяц и человеко-час, то в разных проектах ситуация может отличаться. Чаще всего человеко-месяц это 20 рабочих дней * 8 часов = 160 человеко-часов, но в некоторых проектах может быть 21 рабочий день. Если работы по проекту начались 1 февраля и закончились в конце месяца, то это не то же самое, что с 1 марта до конца марта, так как количество рабочих дней разное. Поэтому термин человеко-месяц нужно употреблять аккуратно при оценке и планировании работ, лучше использовать человеко-часы. Более того в разных странах отличается длительность рабочей недели. Например, во Франции она составляет 35 часов, то есть во Франции термин человеко-месяц может содержать меньшее количество человеко-часов, чем в России.
Ещё больше сложностей в определении термина человеко-год. Для подсчёта суммарного количества человеко-часов в одном человеко-годе необходимо взять количество календарных дней – 365 для невисокосного года и 366 для високосного, вычесть из него количество выходных дней в этом году и количество праздничных нерабочих дней. Также стоит вычесть длительность отпуска, что составляет в России 28 календарных дней или 20 рабочих.
Очевидно, что в разные календарные года объём человеко-года будет разный. Это зависит от страны, в которой выполняются работы по проекту, от количества выходных дней, попавших в календарный год и других условий.
Дополнительным преимуществом человеко-часа перед человеко-месяцем и человеко-годом является его точность. Так если программист работает параллельно в двух проектах, его отработанные часы легко поделить между проектами пропорционально отработанному времени.
Планирование и учёт человеко-часов
Теперь давайте рассмотрим человеко-час как инструмент оценки объёма работ по будущему проекту. В первую очередь работы разбиваются до уровня задач, каждую из которых может выполнить один инженер в ограниченное количество времени. Выполнение этих задач оценивается в человеко-часах, они суммируются, добавляются административные задачи, оцениваются риски и усилия по их минимизации, после чего всё суммируется для оценки будущей стоимости всего проекта. Также составляется календарный график работ по проекту, в котором наибольшее внимание следует уделить задачам на критическом пути.
Но оценки объёма работ могут оказаться неточными и Вам могут потребоваться дополнительные усилия для завершения задач по проекту. Предположим, до финальной отсылки кода осталось два месяца. У Вас в проекте работают два инженера, а оставшаяся работа оценена в 14 человеко-месяцев. Тогда напрашивается решение о добавлении в проект ещё пяти инженеров на два месяца, чтобы успеть в срок. Сработает ли такое решение на практике? Да или нет – это зависит от многих условий. Во-первых, оставшиеся в проекте задачи должны быть разбиваемыми на подзадачи, чтобы их можно было выполнять параллельно. Во-вторых, новые инженеры должны иметь достаточно времени, чтобы вникнуть в проект и свои задачи. В-третьих, необходимо заложить время на коммуникации между семью инженерами, а также на интеграцию их кода в единый продукт. Если хотя бы одно из этих условий не выполнено, то проект не будет завершён в срок. Добавление же ещё большего числа инженеров может даже привести к увеличению сроков, а не к уменьшению.
Фредерик Брукс в своей книге «Мифический человеко-месяц» писал:
Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше. Это развенчивает миф о человеко-месяце. Продолжительность осуществления проекта зависит от ограничений, накладываемых последовательностью работ. Максимальное количество разработчиков зависит от числа независимых подзадач. Эти две величины позволяют получить график работ, в котором будет меньше занятых разработчиков и больше месяцев.
Производительность программистов
Термин человеко-час удобен для планирования работ, но важно понимать, что разные инженеры работают с разной производительностью.
В одном из исследований Сакман (Sackman), Эриксон (Erikson) и Грант (Grant) измеряли производительность труда в группе опытных программистов. Внутри одной лишь этой группы соотношение между лучшими и худшими результатами составило примерно 10:1. Это означает, что какие-то задачи в проекте будут выполнены быстрее чем ранее сделанные оценки по объёму работ, а другие наоборот будут задержаны. Поэтому самых опытных программистов нужно планировать на выполнение задач на критическом пути проекта, от выполнения которого зависят сроки отсылки кода и продукта заказчику. Самый ценный ресурс в любом проекте – это календарное время. Если оно упущено, обратно его уже не вернуть, в то время как другие ресурсы проекта восполнимы в течение жизненного цикла проекта.
Тестирование продукта
Для разработки конечного программного продукта требуется оценить и запланировать человеко-часы на тестирование, что является одной из важнейших задач в практически любом проекте. В каждой компании по разработке ПО желательно иметь независимую команду инженеров по тестированию, которая верифицирует выполнение всех проектных требований в программном продукте. Планирование тестов должно учитывать возможные дефекты в продукте, которые необходимо устранить в коде продукта и перевыполнить соответствующие тесты – на что начинающие менеджеры иногда забывают запланировать соответствующие человеко-часы. Существует такой подход к тестированию, когда объём часов на эти задачи выделяется как некий фиксированный процент от объёма часов на разработку продукта. Такой подход излишне упрощает проблему планирования, ведь разные программные продукты отличаются по сложности выполнения функциональных и регрессионных тестов.
К счастью, процесс тестирования в IT проектах довольно стандартизирован и подсчитать трудозатраты QA немного проще. Обычно при таких расчётах учитываются требования заказчика к видам тестирования, которые довольно несложно собрать уже перед началом проекта. Есть мнение, что в среднем трудозатраты в человеко-часах на тестирование в среднем составляют 0.7 от трудозатрат на разработку. Можно сказать, что если расчеты очень сильно отклоняются от этого показателя, то это как минимум повод провести их еще раз.
Выполнение крупных проектов
Существует мнение что объём потраченных человеко-часов в ИТ-проектах линейно зависит от объёма написанного кода. График ниже демонстрирует результаты, полученные в исследовании, проведенном Нанусом (Nanus) и Фарром (Farr) в System Development Corporation. В нем выявляется зависимость с показателем степени 1,5. На графике по горизонтали указан объём написанного кода, по вертикали – объём потраченных человеко-месяцев, в виде жирных точек приведена статистика из реальных проектов. Пунктиром изображена линейная зависимость. Сплошной кривой изображена степенная зависимость.
Объем работы = (константа) × (количество команд)1,5
То есть в проектах по разработке сложных объёмных продуктов средняя производительность инженеров в машинных командах в единицу времени ниже, чем в небольших проектах, что необходимо учитывать при планировании таких проектов.
Fixed cost vs T&M
Планирование работ в человеко-часах зависит от используемой бизнес-модели. Существуют две основные бизнес-модели оплаты услуг аутсорсинговых организаций Fixed Cost и Time&Material. Давайте их рассмотрим поподробнее:
В модели Fixed Cost оценивается стоимость всех работ по проекту, которую указывают в контракте вместе со списком основных требований к программному продукту. Заказчик оплачивает работу после получения предварительных версий продукта и финальной версии. В случае изменений требований к продукту пересматривается контракт для согласования новой стоимости. В этой модели для заказчика не важно, сколько инженеров и на какой срок привлечено в реализацию проекта. Для компании-исполнителя важно построить такую команду, чтобы выполнить обязательства в полном объёме и не превысить планируемые расходы на проект. В этом случае от грамотного расчёта исполнителя будет зависеть то, реализует ли он проект в срок и заранее рассчитанным количеством человек, или, если расчет окажется неверным, будет ли работать себе в убыток, превысив бюджет и/или выйдя за дедлайн.
В модели Time&Material также оценивается объём работ по проекту в человеко-часах, но в контракте указывается стоимость одного человеко-часа и базовые принципы по их планированию, отчётности и оплате. После привлечения сотрудников в проект в конце каждого месяца отсылается отчёт по проделанной работе и затраченным человеко-часам. Оплата происходит ежемесячно при условии, что исполнитель не превышает заранее установленных планов и критериев по суммарным человеко-часам. В этой модели заказчик видит часы каждого сотрудника, вовлечённого в проект. В случае изменения проектных требований они оцениваются и бюджет может быть увеличен для вовлечения дополнительных сотрудников.
В проектах, где есть устойчивые требования к разрабатываемому программному продукту, модель Fixed Cost обладает преимуществами как для заказчика, так и для исполнителя. В других проектах, включая Agile, T&M модель более предпочтительна так как эта модель не требует пересматривать контракт при изменении требований.
Заключение
Инструмент планирования «человеко-час» удобен для сложения, деления, переноса и других математических операций, в то время как в реальных проектах перепланирование работ требует более глубокого анализа планируемых работ по проекту и учёта многих факторов. Я имел опыт работы с проектами размером более 30000 человеко-часов и могу сказать, что собственный опыт является ключевым фактором в правильном планировании и выполнении IT-проектов. А что говорит Ваш опыт? – жду Ваших комментариев к этой статье.
В заключение я бы хотел процитировать слова Фредерика Брукса:
Программные проекты чаще проваливаются из-за нехватки календарного времени, чем по всем остальным причинам вместе взятым.
Форма п-4 статистика — Клерк.Консультации
ev2306 (Ev2306) 1
Здравствуйте! Если у меня в декабре работали 15 человек, в январе 16 человек — отчитываться по форме п-4 ежемесячно нужно начинать с января?
Над.К (Надежда К) 2
Добрый вечер
В расчет берется средняя численность работников за предыдущий год. Если она превышает 15 человек, значит сдаете ежемесячно (есть еще условие по выручке). Если не превышает — ежеквартально. Исключение — зарегистрированные в предыдущем году организации.
И это если ваша организация не субъект малого предпринимательства. Субъекты МП форму не сдают.
ev2306 (Ev2306) 3
Спасибо большое! у меня в ЗУП по нескольким сотрудникам, у которых в течение года график работы поменялся, неправильно человеко-часы подтягиваются. Причем, когда формирую табель (по форме Т-13) отработанные часы формируются правильно, значит откуда-то из другого документа информация тянется. Что проверить, где подправить? Можно со специалистом по ЗУП проконсультироваться?
Над.К (Надежда К)
4Давайте в понедельник позовем консультанта по 1С и он вам что-нибудь подскажет
1 лайк
ev2306 (Ev2306) 5
да, конечно, спасибо
ev2306 (Ev2306) 6
Подскажите по п-4 еще такой вопрос: для расчета человеко-часов и человеко-дней я беру данные из табеля, а чтобы посчитать среднюю численность для внешних совместителей и работающих неполный рабочий день — ставку? т.е. при расчете средней численности дни отпуска (в том числе за свой счет), больничного будут попадать, а при расчете человеко-часов — нет? я правильно поняла?
Над.
ev2306:
для расчета человеко-часов и человеко-дней я беру данные из табеля, а чтобы посчитать среднюю численность для внешних совместителей и работающих неполный рабочий день — ставку?
Вообще для расчета средней численности таких работников данные тоже берутся из табеля. Просто включаются дни болезни и отпуска.
По табелю считаете, сколько часов отработал сотрудник в месяце, это человеко-часы. Выходные и нерабочие праздничные дни не считаются. Если работник болел или был в отпуске (отсутствовал по другим причинам) берутся данные по человеко-часам за его предшествующий рабочий день.
Потом делите человеко-часы на продолжительность рабочего времени ваших совместителей, получаете человеко-дни. Человеко-дни делите на число рабочих дней в месяце. Получаете среднюю численность таких работников
1 лайк
ev2306 (Ev2306) 8
Здравствуйте!
“Потом делите человеко-часы на продолжительность рабочего времени ваших совместителей, получаете человеко-дни. Человеко-дни делите на число рабочих дней в месяце. Получаете среднюю численность таких работников”
Делить нужно на продолжительность рабочего времени совместителей или на 8 (при 40-часовой рабочей неделе)?
ev2306 (Ev2306) 9
Как мне консультанта по ЗУП позвать на помощь?
Над.К (Надежда К) 10
Добрый день
Вчера статью опубликовали по расчету ССЧ Считаем среднесписочную численность за 2021 год
Эксперту по 1С я отправила, ждем.
kot (Соболевский Константин) 11
День добрый
ev2306:
у которых в течение года график работы поменялся, неправильно человеко-часы подтягиваются.
Это я как понимаю понимаете из документа “Начисление ЗП и взносов”?
Тут рекомендую проверить как заполнен “График”, т.е. проставлены часы, для какого года.
ps: скриншотики можно)
ev2306 (Ev2306) 12
часы работы в графике проставлены правильно, в табеле тоже все формируется правильно, начисляется тоже правильно, а вот в форме П-4, где идет подсчет человеко-часов не учитываются изменения. У меня сотрудник пол месяца работал на 0,5 ставки, а еще половину на 0,3 ставки, считается весь месяц как 0,5 ставки.
Скрин чего скинуть?
kot (Соболевский Константин)
ev2306:
а вот в форме П-4, где идет подсчет человеко-часов не учитываются изменения
если так, то возможна ошибка в расчетах конфигурации.
Рекомендация написать в саму 1С, с описанием ошибки (это возможно сделать из самой программы) .
Но тут нужно учитывать № релиза, также возможно это исправлено в актуальном релизе.
35 рабочих работали по 8 часов в день, а остальные 15 рабочих работали по 9 часов в день — Как мы можем рассчитать человеко-дни?
сакибхсе
1
Уважаемый сэр, Пожалуйста, скажите мне, что в моей компании 50 сотрудников, и их рабочее время составляет 8 часов. но иногда некоторые из них работают больше, то есть не более одного часа каждый … так что некоторые из них работают 9 часов, что считается их сверхурочной работой. предположим, что 35 рабочих работали 8 часов в день, а остальные 15 рабочих работали 9 часов в день.часов в день, чем как мы можем рассчитать человеко-дни?
Добавить ответ → Начать новый →
ПРОФЕССИОНАЛЫ И ПРЕДПРИЯТИЯ, УЧАСТВУЮЩИЕ В ОБСУЖДЕНИИ
KK!4HR6 Management Consultancy
6
Аббасити
Помощник инженера , Indian Telephone Industries,
Saqibhse
Hse Officer
аббасити
517
2
Уважаемый Saqibhse, Если 35 человек работали по 8 часов, это 35 человеко-дней. Если 15 человек работали 9 часов, это 15×9/8 = 16,875 человеко-дней. (Всего 35 + 16,875 = 51,875 человеко-дней). Аббас.П.С.
Из Индии, Бангалор
3
Расчет человеко-дней за годовые. В случае работы в 35 штатах означает, сколько человеко-дней
Из Индии, Бангалора
KK!HR
1440
4
Восемь часов работы считаются человеко-днями, поэтому, подсчитав общее количество часов и разделив его на восемь, можно рассчитать человеко-дни.
Из Индии, Мумбаи
skhr07
6
5
вам нужно будет рассчитать mandays, как показано ниже
Прибытие в количество дней, отработанных компанией: общее количество дней в месяце-выходные-государственные праздники
Например: 31 день в январе 22-10 выходной-1 национальный праздник= 20 рабочих дней
Мандней=20*1200-700= 23300
Из Индии, Ченнаи
Если вы осведомлены о каких-либо фактах, ресурсах или опыте, связанных с этой темой, и хотите участвовать в таких обсуждениях в будущем, пожалуйста, зарегистрируйтесь и войдите в Cite Community.
Руководство по расчету человеко-дней и невыходов на работу?
неш_праджапати
1
Пожалуйста, дайте мне руководство по расчету Mandays и Absentisim.
Из Индии, Сурат
Добавить ответ → Начать новый →
ПРОФЕССИОНАЛЫ И ПРЕДПРИЯТИЯ, УЧАСТВУЮЩИЕ В ОБСУЖДЕНИИ
Msrinivashr Payroll4 9
+1 Другое
LINGARAJU.N
9
Привет, Чтобы рассчитать человеко-дни, 1. No. рабочих дней в месяце, кроме выходных и оплачиваемых выходных (заявленных компанией) 2.Количество. рабочих дней за месяц 2.
Из Индии, Нью-Дели
Mandays.xls (15,0 КБ, 7366 просмотров) |
мсринивашр
2
3
Уважаемые пенсионеры
Приведу один пример. Пожалуйста, рассчитайте использование рабочей силы в %
Работа I категории Человеко-дней в месяц за 31 день 286 человеко-дней
Работа II категории Человеко-дней в месяц за 27 (без воскресенья) 486 человеко-дней
По I категории в день предполагается 10 человеко-дней в течение 31 полного дня
По II категории в день выдается 20 человек личного состава для развертывания на 27 дней (воскресенье не работает)
Прошу рассчитать использование рабочей силы в %.
Результат может быть в листах Excel.
M Шринивас
Из Индии, Хайдарабад
surenderk447
2
4
1 № сотрудника Рабочие дни Рабочие дни Менеджер/руководитель Другой сотрудник Штатный работник M/F
Apr-13 33 25 7 14 12
май-13 31 27 7 11 13
июнь-13 31 26 7 12 12
июль-13 33 26 7 13 13
авг-13 29 26 6 11 12
Сен-13 29 25 6 10 13
Октябрь-13 28 25 6 11 11
Ноябрь-13 29 24 6 11 12
Декабрь-13 29 26 6 11 12
Янв-14 25 25 6 10 9
Фев-14 23 24 4 10 9
Март-14 24 25 4 9 11
Из Индии, Шимла
маниш-бандуни
5
Hpw для расчета 1 рабочего дня в месяц
Из Индии, Фаридабад
маниш-бандуни
6
Как рассчитать количество человеко-дней на 1 сотрудника в месяц
Из Индии, Фаридабад
Р.Н.Хола
355
7
При подсчете общего количества человеко-дней месяца любого сотрудника/рабочего следует учитывать как общее количество дней месяца. Р Н ХОЛА
Из Индии, Дели
аюшджа
8
как рассчитать прогулы в месяц
Из Индии
, Gurgaon