Автоматизированный контроль процесса разработки ПО Вадим Савкин
Slide 2 Сведения об авторе Вадим Савкин Вадим Савкин Инженер по процессам разработки ПО в компании CQG Инженер по процессам разработки ПО в компании CQG Участник CQG SEPG (Software Engineering Process Group) Участник CQG SEPG (Software Engineering Process Group)
Slide 3 О компании CQG Компания CQG является поставщиком данных и сервисов для биржевой торговли на основе разрабатываемых в компании программных систем. Компания CQG является поставщиком данных и сервисов для биржевой торговли на основе разрабатываемых в компании программных систем. Штат департамента разработки насчитывает порядка 300 сотрудников, распределённых между 6 офисами в разных странах. Штат департамента разработки насчитывает порядка 300 сотрудников, распределённых между 6 офисами в разных странах. Разработчики объединены в команды размером от 3 до 7 человек каждая. Разработчики объединены в команды размером от 3 до 7 человек каждая.
Slide 4 План презентации Теория Теория Необходимость контроля процесса Необходимость контроля процесса Инфраструктура для автоматизации контроля процесса Инфраструктура для автоматизации контроля процесса Контроль корректности собираемых данных Контроль корректности собираемых данных Процесс контроля и улучшения процесса разработки Процесс контроля и улучшения процесса разработки Практика опыт автоматизации контроля процесса разработки в компании CQG Практика опыт автоматизации контроля процесса разработки в компании CQG Инфраструктура сбора данных Инфраструктура сбора данных CQG Dashboards demo CQG Dashboards demo Автоматизированный контроль процесса в CQG Автоматизированный контроль процесса в CQG
Slide 5 Необходимость контроля процесса Формальный контроль процесса разработки: гаранти рует выполнени е стандартов и правил установленного процесса разработки ПО гаранти рует выполнени е стандартов и правил установленного процесса разработки ПО помогает оценить эффективность процесса помогает оценить эффективность процесса помогает усовершенствовать процесс и оценить эффект от изменений помогает усовершенствовать процесс и оценить эффект от изменений необходим средним и крупным компаниям- разработчикам ПО необходим средним и крупным компаниям- разработчикам ПО
Slide 6 Структура контроля процесса Контроль соблюдения заданного процесса. Контроль соблюдения заданного процесса. Проверка согласованности, полноты и корректности данных, собираемых различными системами поддержки разработки; Проверка согласованности, полноты и корректности данных, собираемых различными системами поддержки разработки; Проверка соблюдения стандартов процесса разработки, принятого в компании. Проверка соблюдения стандартов процесса разработки, принятого в компании. Контроль эффективности и качества процесса. Контроль эффективности и качества процесса. Оценка качества разрабатываемых продуктов; Оценка качества разрабатываемых продуктов; Оценка продуктивности разработки; Оценка продуктивности разработки; Оценка точности планирования; Оценка точности планирования; Интервьюирование разработчиков и менеджеров относительно процесса. Интервьюирование разработчиков и менеджеров относительно процесса. Принятие решений. Принятие решений. Принятие проектных решений по результатам проверок (в случае проектных аудитов); Принятие проектных решений по результатам проверок (в случае проектных аудитов); Принятие решений о необходимости внесения изменений в процесс разработки. Принятие решений о необходимости внесения изменений в процесс разработки.
Slide 7 Стоимость контроля процесса Формальный контроль процесса разработки ПО: Формальный контроль процесса разработки ПО: эффективен, когда проводится регулярно эффективен, когда проводится регулярно довольно дорогая процедура довольно дорогая процедура Вывод – необходима автоматизация: Вывод – необходима автоматизация: Автоматизированный сбор метрик процесса разработки Автоматизированный сбор метрик процесса разработки Автоматизация формальных проверок Автоматизация формальных проверок
Slide 8 Инфраструктура для автоматизации контроля процесса В первую очередь, инфраструктура, обеспечивающая возможность автоматизации контроля процесса, должна позволять согласованно собирать и накапливать данные обо всех значимых аспектах процесса разработки, которые необходимо анализировать и контролировать В первую очередь, инфраструктура, обеспечивающая возможность автоматизации контроля процесса, должна позволять согласованно собирать и накапливать данные обо всех значимых аспектах процесса разработки, которые необходимо анализировать и контролировать
Slide 9 Содержимое единой базы данных Иерархия департамента разработки ПО с данными обо всех разработчиках и менеджерах. Иерархия департамента разработки ПО с данными обо всех разработчиках и менеджерах. Иерархия продуктов и проектов с разбивкой на задачи. Иерархия продуктов и проектов с разбивкой на задачи. Данные о времени, потраченном разными сотрудниками на ту или иную активность или задачу. Данные о времени, потраченном разными сотрудниками на ту или иную активность или задачу. Данные о созданных артефактах (требования, дизайн, тест- планы, код, проектная документация и т.п.) с подсчитанными размерами (необходимы стандарты оформления и подсчёта) Данные о созданных артефактах (требования, дизайн, тест- планы, код, проектная документация и т.п.) с подсчитанными размерами (необходимы стандарты оформления и подсчёта) Данные о найденных дефектах со всеми необходимыми атрибутами и историей изменений. Данные о найденных дефектах со всеми необходимыми атрибутами и историей изменений. Прочие данные, специфичные для процесса разработки, принятого в компании. Прочие данные, специфичные для процесса разработки, принятого в компании. Вспомогательные данные. Вспомогательные данные.
Slide 10 Организационный Организационный Возложение ответственности на исполнителей за корректность данных, относящихся к их работе Возложение ответственности на исполнителей за корректность данных, относящихся к их работе Автоматизированный Автоматизированный Контроль полноты данных в момент ввода Контроль полноты данных в момент ввода Контроль с помощью автоматических нотификаций Контроль с помощью автоматических нотификаций Периодические проверки с помощью автоматизированных средств при участии независимых экспертов (раз в неделю или несколько недель) Периодические проверки с помощью автоматизированных средств при участии независимых экспертов (раз в неделю или несколько недель) Контроль корректности и полноты собираемых данных
Автоматизация формальных проверок Программный код: analyseActivitiesConsistency "Requirements", "Requirement Records", 2 * 7 analyseActivitiesConsistency "Design", "Model Elements", 2 * 7 analyseActivitiesConsistency "Test Cases Development", "Test Cases", 2 * 7 analyseActivitiesConsistency "Code & Unit Test", "Lines of Code", 2 * 7 If.Cells(i, oCols("Inspection")) = "" And _.Cells(i, oCols("LOCs")) > 20 Then addTaskAnalysisIssue oRawSheet, oCols, i,.Cells(i, oCols("LOCs")) & " LOCs have not been inspected?" End If If GetVal("Integration Testing") < GetVal("System Testing") Then addAnalysisIssue "There were more defects found during End If... Примеры формальных проверок из практики компании CQG: «Каждая активность типа «разработка требований», «проектирование», «разработка тест-плана», «кодирование» приводит к созданию артефактов соответствующего типа с задержкой не более 2-х недель» - пример проверки на полноту и согласованность данных. «Каждая активность типа «разработка требований», «проектирование», «разработка тест-плана», «кодирование» приводит к созданию артефактов соответствующего типа с задержкой не более 2-х недель» - пример проверки на полноту и согласованность данных. «Каждое изменение кода размером, превышающим 20 строк, прошло через формальный процесс инспекций» - пример проверки на соблюдение стандартов процесса. «Каждое изменение кода размером, превышающим 20 строк, прошло через формальный процесс инспекций» - пример проверки на соблюдение стандартов процесса. «Количество дефектов, найденных в ходе системного тестирования, меньше количества дефектов, найдённых в ходе интеграционного тестирования, которое, в свою очередь, меньше количества дефектов, найденных в ходе инспекций» - пример проверки качества процесса. «Количество дефектов, найденных в ходе системного тестирования, меньше количества дефектов, найдённых в ходе интеграционного тестирования, которое, в свою очередь, меньше количества дефектов, найденных в ходе инспекций» - пример проверки качества процесса.
Slide 12 Процесс контроля и улучшения процесса разработки
Опыт автоматизации контроля процессов в компании CQG Вадим Савкин
Slide 14 CQG: Инфраструктура сбора данных о процессе разработки ПО Cреднее суммарное время, которое тратит разработчик на работу со всеми программными инструментами сбора данных в CQG, составляет около 15 минут в день. Cреднее суммарное время, которое тратит разработчик на работу со всеми программными инструментами сбора данных в CQG, составляет около 15 минут в день.
Slide 15 CQG: Инструменты сбора данных PV Tool: Система учёта рабочего времени и размеров произведённых артефактов с привязкой к конкретным проектам (собственная разработка) PV Tool: Система учёта рабочего времени и размеров произведённых артефактов с привязкой к конкретным проектам (собственная разработка) Tracker: Система учёта отдельных задач и поддержки инспекций (собственная разработка, поддерживает методологию PSP) Tracker: Система учёта отдельных задач и поддержки инспекций (собственная разработка, поддерживает методологию PSP) CQGenie: Система bug-tracking и репозиторий требований (разработка на базе Siebel) CQGenie: Система bug-tracking и репозиторий требований (разработка на базе Siebel) CVS: Система контроля версий CVS: Система контроля версий
Slide 16 CQG Dashboards - структура
Slide 17 CQG: Основные метрики процесса Метрики производительности: Метрики производительности: Производительность (число строк кода в неделю) Производительность (число строк кода в неделю) Скорость кодирования Скорость кодирования Метрики качества: Метрики качества: Плотности дефектов разных типов Плотности дефектов разных типов Объём переделок Объём переделок Покрытие кода требованиями Покрытие кода требованиями Метрики формального процесса инспекций: Метрики формального процесса инспекций: Скорость просмотра кода Скорость просмотра кода Плотность найденных замечаний Плотность найденных замечаний Процент дефектов от общего числа замечаний. Процент дефектов от общего числа замечаний. Покрытие кода инспекциями Покрытие кода инспекциями Метрики точности планирования: Метрики точности планирования: Отклонение реальных значений затрат от запланированных Отклонение реальных значений затрат от запланированных Себестоимость проекта Себестоимость проекта
Slide 18 CQG: Project Dashboard (demo)
Slide 19 CQG: Team Dashboard (demo)
Slide 20 CQG: Автоматизированный контроль процесса разработки ПО В компании CQG автоматизированный контроль процесса разработки применяется на нескольких уровнях: В компании CQG автоматизированный контроль процесса разработки применяется на нескольких уровнях: Периодический контроль стандартного процесса разработки в командах (раз в 2-3 недели). Периодический контроль стандартного процесса разработки в командах (раз в 2-3 недели). Периодический аудит проектов (раз в 4-6 недель). Периодический аудит проектов (раз в 4-6 недель). Периодический контроль процесса поддержки (maintenance) продуктов (в зависимости от частоты релизов). Периодический контроль процесса поддержки (maintenance) продуктов (в зависимости от частоты релизов). Контроль проводится независимыми экспертами, которые совмещают роль разработчика с ролью инженера по процессам разработки ПО. Контроль проводится независимыми экспертами, которые совмещают роль разработчика с ролью инженера по процессам разработки ПО.
Slide 21 Заключение Для автоматизации контроля процесса необходимо: Постоянно собирать требуемые данные о процессе всем разработчикам Постоянно собирать требуемые данные о процессе всем разработчикам Накапливать данные в единой базе данных Накапливать данные в единой базе данных Периодически контролировать корректность и полноту данных Периодически контролировать корректность и полноту данных Регулярно подсчитывать метрики на основе собранных данных Регулярно подсчитывать метрики на основе собранных данных При выполнении вышеперечисленных условий Формальные проверки различных показателей процесса могут быть легко автоматизированы Формальные проверки различных показателей процесса могут быть легко автоматизированы