
Лекция 8. Структура бизнес-процессов разработки программного обеспечения: средства и методы сбора метрик сотрудников
ОСОБЕННОСТИ БИЗНЕС-ПРОЦЕССОВ SOFTWARE-ПРЕДПРИЯТИЙ
Главной особенностью рабочего процесса предприятий, основная деятельность которых заключается в разработке программного обеспечения, является сложность оценки эффективности работы сотрудников. Суть проблемы состоит в том, что на таких предприятиях результат работы отдельного сотрудника чаще всего невозможно измерить в каких-либо материальных единицах – рублях, количестве произведённых деталей, количестве обученных студентов и т.д. Для оценки эффективности деятельности компании в целом, либо какой-то её части, существуют специальные подходы, известные из общей технологии программирования, однако они плохо подходят для всесторонней оценки производительности труда отдельного работника, т.к. даже отдельный этап процесса разработки серьёзного программного обеспечения – это труд по большей части коллективный.
В связи с этим ведущими фирмами – производителями программного обеспечения разрабатываются собственные подходы для оценки результатов работы сотрудников, ориентированные, разумеется, на специфику работы той или иной компании. В силу упомянутого фактора невозможности измерения производительности труда в каких-либо материальных единицах, результаты работы оцениваются посредством сбора информации о затратах времени сотрудника на ту или иную деятельность. Цель таких оценок - контроль затрат времени сотрудников на определённые политикой компании виды деятельности
, сбор метрик по компании в целом и создание базы для генерации различных отчётов руководителями компании.
Недостатком такого подхода является значительная субъективность оценок производительности труда.
Регистрацией времени занимаются, как правило, сами сотрудники посредством заполнения специальных форм, предоставляемых интерфейсом информационной системы.
ОБЩИЕ ЭЛЕМЕНТЫ МЕТОДИКИ РЕГИСТРАЦИИ ВРЕМЕННЫХ ЗАТРАТ
Программный инструментарий, используемый для регистрации времени представляет собой, фактически, базу данных, информация в которую вносится зарегистрированными в ней пользователями. При этом разграничиваются права доступа типа «Руководитель предприятия», «Руководитель подразделения», «Сотрудник». Сотрудник имеет право только на внесение и просмотр собственной информации, руководитель подразделения – на просмотр и изменения информации по подчинённым ему сотрудникам, а также на просмотр отчётов по своему подразделению; руководитель предприятия – на просмотр, изменение информации и формирование отчётов по компании в целом.
В основу регистрации времени положены следующие понятия:
-
Проект – совокупность деятельности компании, результатом которой является отдельный самостоятельный продукт.
-
Вид деятельности – ключевое понятие, характеризующее тип действий сотрудника. Различают виды деятельности в рамках проекта и общеорганизационные виды деятельности (не связанные с конкретным проектом).
-
Тип действий – характер работы в рамках конкретного вида деятельности.
-
Идентификатор проблемы – специальный идентификатор задачи, в рамках работы над которой сотрудник занимается той или иной деятельностью.
В принципе регистрация времени может выполняться с точностью до одной минуты, хотя обычно, из соображений удобства сотрудников, точность регистрации ограничивается получасом.
Конкретные виды деятельности, в разрезах которых ведётся учёт рабочего времени сотрудников, специфичны для каждого отдельного предприятия. На предприятиях, занимающихся разработкой программного обеспечения в рамках концепции, задаваемой известной моделью CMM (Capability Maturity Model
), выделяют следующие виды деятельности.
Проектные виды деятельности
-
Coding (Кодирование)
-
Configuration Management (Деятельность по управлению конфигурацией)
-
Defect Prevention (Деятельность по предотвращению дефектов в рамках проекта)
-
Design (Разработка дизайна)
-
Feasibility Study (Вся деятельность, выполняемая на этапе исследования реализуемости)
-
Field Test (Деятельность, связанная с бета-тестированием продукта заказчиком или пользователем)
-
Integration Test (Деятельность по подготовке и проведению интеграционного тестирования)
-
Intergroup Coordination (Межгрупповая координация в рамках проекта, включая организационный и технический аспекты, в частности, согласование планов требований и способов решения с внешними группами)
-
Knowledge Management (Управление обучением в рамках проекта, включая поиск и оформление знаний, подготовку и проведение занятий)
-
Maintenance (Вся деятельность, выполняемая на этапе поддержки отгруженного программного продукта)
-
Management (Управление проектом, включая планирование и контроль над выполнением проекта, определение и сопровождение процесса проекта, сбор и анализ метрик проекта)
-
Quality Assurance (Деятельность по обеспечению качества)
-
Requirements (Разработка требований)
-
System Test (Деятельность по подготовке и выполнению системного тестирования)
-
Unit Test (Деятельность по подготовке и выполнению модульного тестирования)
-
User Documentation (Разработка пользовательской и эксплуатационной документации)
-
Miscellaneous (Разное)
Непроектные виды деятельности
-
Downtime (Потери времени в рабочие часы, обусловленные сбоями в работе ПО, оборудования, отсутствием необходимых сотруднику для работы ресурсов и т.д.)
-
Miscellaneous (Разное, не предусмотренное иными видами деятельности. Сода может входить чтение почты, консультации, администрирование железа и т.д.)
-
Sick Time (Время болезни сотрудника)
-
Personal (Затраты времени на личные нужды сотрудника в рабочее время)
-
Travel (Затраты времени сотрудника на переезды в ходе командировок и деловых поездок)
-
Vacation (Отпуск сотрудника)
-
Defect Prevention (Деятельность по предотвращению дефектов на уровне организации)
-
Knowledge Management (Определён как для проекта, так и для организации. В данном случае - управление обучением в рамках организации, например, обучение новых сотрудников)
-
Management (Управление на уровне организации)
-
Process Improvement (Деятельность по улучшению рабочего процесса)
Почти для всех перечисленных видов деятельности специфицируются также типы действий, идентифицирующие характер работы
Так, для видов деятельности Coding, Design, Feasibility Study, Maintenance, Requirements, User Documentation определены следующие типы действий
-
Inspection (Инспектирование результатов работы, исправление и верификация замечаний)
-
Miscellaneous
-
New Work (Создание или изменение рабочего продукта, в том числе при изменении требований)
-
Rework (Устранение проблем – дефектов в рабочем продукте)
Такое разделение позволяет вести подсчёт метрик, связанных с качеством.
Для видов деятельности, связанных с тестированием, определены следующие типы действий:
-
Analysis (Анализ проблем, обнаруженных в ходе тестирования)
-
Execution (Прогон тестов)
-
Inspection (Инспекции сценариев тестов)
-
Miscellaneous
-
New Work (Разработка новых тестов)
-
Rework (Переработка тестов при обнаружении в них проблем)
Для вида деятельности Configuration Management (Управление конфигурацией) определены следующие типы действий
-
Consulting (Консультации)
-
Miscellaneous
-
Publish Release (Подготовка и выпуск очередного релиза рабочего продукта)
-
Integration (Подготовка и интеграция изменений кода)
Для вида деятельности Management определены следующие типы действий
-
Analysis (Анализ ситуаций для принятия решений, анализ метрик, причин отклонений и т.п.)
-
Measurement (Выполнение измерений)
-
Miscellaneous
-
Monitoring (Контроль над выполнением проекта согласно плану, включая постановку задач, и необходимую коммуникацию)
-
Planning (Планирование и перепланирование, включая разработку, инспектирование и согласование плановых документов)
-
Process Tailoring (Определение и сопровождение процесса проекта)
-
Reporting (Подготовка и представление отчётов в рамках работы по проекту)
Для вида деятельности Quality Assurance определены следующие типы действий
-
Audit (подготовка и проведение аудитов по обеспечению качества и других формальных проверок)
-
Miscellaneous
-
Monitoring (Контроль над выполнением проекта, включая контроль над инспекциями)
-
Planning (Планирование и перепланирование, включая разработку, инспектирование и согласование плановых документов)
-
Reporting (Подготовка и предоставление отчётов по обеспечению качества на проекте)
Собственно регистрация затрат рабочего времени выполняется в 6 этапов:
-
Задание интервала времени
-
Выбор проекта или общеорганизационного вида деятельности, не связанного с проектом
-
Выбор деятельности в рамках выбранного проекта или общеорганизационного вида деятельности
-
Выбор типа действий, для выбранных ранее опций
-
Указание идентификатора проблемы, в рамках которой регистрируется время
-
Уточнение в виде комментария, что конкретно делалось в это время в рамках решаемой задачи.
Вот как приблизительно может выглядеть форма, заполняемая сотрудником
В
поле «Интервал времени» заносится дата
и регистрируемый интервал времени, в
поле «Логировать время как» автоматически
подставляются выбранные опции из видов
деятельности и вручную записывается
комментарий. Комментарий призван не
только уточнять, чем же конкретно
занимался сотрудник, но и служит для
дублирования информации, в случае, если
сотрудник случайно ошибётся при выборе
опций.
Сводная информация за день представляется в виде календаря типа изображённого на рисунке. При этом различается рабочее и нерабочее время, а также учитываются выходные и праздничные дни. Информация за тот или иной день доступна для просмотра самим сотрудником и его руководством.
ОТЧЁТЫ О ЗАТРАТАХ ВРЕМЕНИ И УВЕДОМЛЕНИЯ
В системах регистрации затрат времени, реализующих описанные выше принципы, доступны следующие виды отчётов о затратах времени сотрудников
-
в разрезе сотрудников
-
в разрезе видов деятельности
-
в разрезе отделов
Такие отчёты позволяют не только собирать метрики по работе над проектом, но и дают информацию руководителям о том, в какое время и чем занимается конкретный сотрудник, сколько времени у него уходит на одну задачу, сколько времени он работает в нерабочее время, выходные и праздничные дни. По результатам этих отчётов наиболее отличившиеся сотрудники поощряются.
Кроме того, для удобства пользователей и проверяющих предусмотрены несколько видов уведомлений (рассылаемых обычно по электронной почте).
Ежедневные уведомления рассылаются тем сотрудникам, у кого не зарегистрировано совсем, или зарегистрировано слишком мало времени за предыдущий день – это даёт им возможность исправиться, если, например, они забыли зарегистрировать время в горячке трудового дня. Кроме того, уведомления приходят тем, у кого есть пересечения или некорректные записи.
Еженедельные уведомления рассылаются сотрудникам и их руководителям, если ими зарегистрировано слишком мало времени за предыдущую неделю.
Для обеспечения правильности регистрации времени предусматриваются периодические выборочные аудиты.