33
Александр Самбук 1 Управление процессами разработки программного обеспечения

Управление процессами разработки ПО

Embed Size (px)

DESCRIPTION

Выступление Александра Самбука в раках Весенней школы ГУ-ВШЭ 2009 «Softwarу Project Management»

Citation preview

Page 1: Управление процессами разработки ПО

Александр Самбук 1

Управление процессами разработки программного обеспечения

Page 2: Управление процессами разработки ПО

Александр Самбук 2

Что такое процесс

Процесс – последовательность шагов, выполняемых ради достижения установленной цели; серия действий или операций, приводящих к логическому завершению (Словарь Вебстера)

Процесс разработки ПО – последовательность шагов, выполняемых ради достижения установленной цели, которая имеет отношение к созданию и/или поддержке программного обеспечения

Page 3: Управление процессами разработки ПО

Александр Самбук 3

Примеры процессов 1

Процессы, относящиеся непосредственно к разрабатываемому продукту: Управление требованиями Проектирование Кодирование Тестирование Документирование продукта Управление выпуском (release management)

Процессы, относящиеся к управлению проектом: Планирование Отслеживание хода проекта Управление рисками Управление конфигурациями Управление ресурсами

Page 4: Управление процессами разработки ПО

Александр Самбук 4

Примеры процессов 2

Процессы, относящиеся к управлению процессами:Разработка и улучшение процессовАнализ эффективности процессовКонтроль степени следования процессам

Процессы, относящиеся к управлению организацией:Определение целей и выработка стратегии

организацииАнализ эффективности работы организацииУправление ресурсамиУправление финансами

Page 5: Управление процессами разработки ПО

Александр Самбук 5

Определение управления процессом

Управление процессом – комплекс мероприятий, направленных на достижение повторяемости процесса и максимизацию его эффективности в рамках и в объеме, необходимых для решения задач организации

Page 6: Управление процессами разработки ПО

Александр Самбук 6

Атрибуты зрелости процесса

Осознанность Документированность Переносимость Конкретность области применимости Пригодность к анализу Наличие ресурсов для поддержки и развития

Page 7: Управление процессами разработки ПО

Александр Самбук 7

Что такое «определенный процесс» Определенный процесс – это процесс:

Который систематизирован и описан Который осознан и понят Для которого проведено обучение Который используется на практике

Организация должна взять на себя обязательства (commitment) следовать определенному процессу Выделяются ресурсы на поддержание процесса

Page 8: Управление процессами разработки ПО

Александр Самбук 8

Почему полезно определять процесс Лучшее осознание

Формальное описание чего-либо – хороший способ для индивидуального и коллективного осознания

Фиксация и повторное использование знаний Изучение с нуля того, как делаются определенные вещи, очень дорого (по

времени и деньгам) Уменьшение вероятности пропуска или искажения шагов

Некоторые шаги процесса могут быть пропущены или искажены по забывчивости или по незнанию

Обучение Для того, чтобы обучать других тому, что мы делаем, мы должны знать, что мы

делаем, а для этого необходимо описание Измерения

Мы не сможем узнать, есть ли какие-то улучшения, если мы не знаем, что мы делаем

Согласованность Мы будем действовать более согласованно, если мы все будем играть по одним

правилам Удовлетворение требований клиентов

Клиенты, как правило, отдают предпочтение исполнителям, у которых определены процессы

Page 9: Управление процессами разработки ПО

Александр Самбук 9

Почему это не всегда делается Непонимание необходимости

«У нас и так все работает» «Нам не нужна бюрократия»

Нет времени или людей Лень Отсутствие знаний Отсутствие опыта ... иногда процессы описываются «для

галочки»

Page 10: Управление процессами разработки ПО

Александр Самбук 10

Атрибуты определенного процесса

Описание шагов

Входные критерии

В какой момент и при соблюдении

каких условий начинать

исполнение?

Выходные критерии

Какой результат должен быть

достигнут, чтобы исполнение

процесса можно было считать

завершенным?

Входные данные Выходные данные

В чем состоит суть шага?

Кто должен его выполнить?

В какой момент его нужно выполнить?

Назначение процесса Метрики, определяющие эффективность и/или качество Способы сбора и анализа метрик Описание основного результата Описание способов его верификации

Page 11: Управление процессами разработки ПО

Александр Самбук 11

Уровни определения процесса

Глобальный корпоративный уровень Процессы, которые охватывают все корпоративные виды

деятельности на всех уровнях Локальный корпоративный уровень

Процессы, которые затрагивают единственное подразделение

Уровень программы Процессы, характерные для всех проектов

Уровень проекта Процессы, специфичные для конкретного проекта

Page 12: Управление процессами разработки ПО

Александр Самбук 12

Адаптация процессов (tailoring)

Более высокий уровень

Более конкретный уровень

Детал

иза

ци

я

Появл

ение с

пец

иф

ичны

х п

роц

ессов

Отказ

от н

епр

им

ени

мы

х и

нец

ел

есообр

азны

х п

роц

ессов

Изм

енени

е п

роц

ессов д

ля о

тр

аж

ени

я

спец

иф

ики

Адаптация – необходимый элемент управления процессами

Возможно любое изменение, если оно обосновано... ...тем не менее, рамки должны существовать

Page 13: Управление процессами разработки ПО

Александр Самбук 13

Мифы о процессах и злоупотребления процессами – 1

Вера в то, что какая-либо из моделей является «серебряной пулей» (панацеей)

Неверие в целесообразность описания и совершенствования процессов

Насаждение процессов без вовлечения задействованных в них лиц

Начало работ по совершенствованию процессов без предварительного измерения базового состояния, характеризующего результативность текущих практик

Page 14: Управление процессами разработки ПО

Александр Самбук 14

Мифы о процессах и злоупотребления процессами - 2

Грубое обхождение с благоразумием и здравым смыслом

Да

Нет

Да Нет

Качество Творческий хаос

Безумная бюрократияКатастрофа

Документированный процесс

Зд

равы

й с

мы

сл

Page 15: Управление процессами разработки ПО

Александр Самбук 15

Мифы о процессах и злоупотребления процессами - 3

Непредрасположенность или неспособность увязать процессы с бизнес-потребностямиСовершенствование процессов без учета

бизнес-целейСледование «букве закона» вместо той

цели, достижению которой служат законы

Page 16: Управление процессами разработки ПО

Александр Самбук 16

Методология

Методология – свод методов, правил и постулатов, применяемых в дисциплине; конкретная процедура или набор процедур (Merriam Webster online)

... нечто более детально проработанное, комплексное и «научно обоснованное», чем процесс

Page 17: Управление процессами разработки ПО

Александр Самбук 17

Методология в разработке ПО

Полная совокупность процессов, применяемых в проекте разработки ПО или в какой-либо его самодостаточной части

Правила адаптации процессов Общий глоссарий Ясные интерфейсы между процессами Привязка к временной оси Поддерживающие материалы:

шаблоны документов технические руководства рекомендации (guidelines)

Как и процесс, методология может быть более или менее зрелой

Page 18: Управление процессами разработки ПО

Александр Самбук 18

Процессная документация

Политики и описания

процессов

Описание

методологии

Поддерживающие материалы

Page 19: Управление процессами разработки ПО

Александр Самбук 19

Организация работы по управлению процессами Требует инициативы и продвижения со

стороны руководства Необходимы выделенные ресурсы (занятые

полностью или частично) Задачи группы по управлению процессами:

анализ эффективности процессов и качества результата сопоставление фокуса процессов с целями организации предложение и реализация мер по улучшению процессов пропаганда идеи улучшения процессов пилотирование новых процессов обучение

Page 20: Управление процессами разработки ПО

Александр Самбук 20

Цикл Деминга

Page 21: Управление процессами разработки ПО

Александр Самбук 21

Целевые характеристики качества и эффективности Целевые характеристики качества и

эффективности (quality and process performance objectives) – значения показателей качества и производительности, ожидаемые в рамках организации

Откуда можно взять эти значения?

Page 22: Управление процессами разработки ПО

Александр Самбук 22

Отображение на бизнес-цели организации

Доход

Объем продаж

Качество

Объем производства

Себестоимость

Расходы

Производительность

Page 23: Управление процессами разработки ПО

Александр Самбук 23

Взаимосвязь бизнес-целей организации и целей процессов (1/2)Пример 1:Потребности организации:Захватить большую долю рынка для нового продуктас целью привлечения дополнительного финансированияЦели процессов: Короткое время выхода на рынок Высокое качествоМетрики: Длительность цикла разработки Количество дефектов

Page 24: Управление процессами разработки ПО

Александр Самбук 24

Взаимосвязь потребностей организации и целей процессов (2/2)Пример 2:

Потребности организации:Работать с договорами с фиксированной стоимостью

Цели процессов:Точные предварительные оценки

Метрики процессов:Степень «недооценки» проектов

Page 25: Управление процессами разработки ПО

Александр Самбук 25

Базовый набор характеристик качества и эффективности Базовый набор характеристик качества и

эффективности (process capability baseline, PCB) – набор значений этих характеристик, достигаемых в реальной деятельности организации

Цель использования – постановка реалистичных целей

Как можно определить эти значения? PCB и KPI – не одно и то же

Page 26: Управление процессами разработки ПО

Александр Самбук 26

Модель характеристик качества и эффективности Модель характеристик качества и

эффективности (quality and process performance model) – описание функциональной зависимости одной характеристики от другой

Цель – оценка ожиданий в отношении целей, которые не могут быть измерены «сейчас»

Частный случай модели – эволюция значения какой-либо характеристики во времени

Примеры моделей: зависимость количества дефектов от трудозатрат,

потраченных на тестирование распределение количества реализованной

функциональности в зависимости от этапа проекта взаимосвязь между количеством обнаруженных и

необнаруженных дефектов

Page 27: Управление процессами разработки ПО

Александр Самбук 27

Количественное управление процессами Количественное управление процессами

(quantitative process management) – принятие управленческих решений, постоянно базирующееся на анализе количественных характеристик процессов

Такой анализ также позволяет выявлять проблемы и слабые места процесса, если таковые существуют

Статистическое управление процессами (statistical process management) – количественное управление процессами, базирующееся на анализе статистически обработанных данных

Практически невозможно без соответствующего измерительного инструментария

Page 28: Управление процессами разработки ПО

Александр Самбук 28

Потребности

организации

Цели процессов

Метрики

процессов

Текущие

измерения

процессов

Целевые значения

Результаты

совершенствования

процессов

Мероприятия по

совершенствованию

процессов

анализируются с целью выработки

определяют выбор

сравниваются с

применяются для

представления

применяются для проверки

являются

эталонами для

приводят к

начинаются с

разрабатываются для

достижения

Подход к измерению процессов

Page 29: Управление процессами разработки ПО

Александр Самбук 29

Количественное управление на практике Определить набор метрик, характеризующих

достижение целей Дать однозначные определения всем метрикам Внедрить инструменты, с помощью которых можно

получать эти метрики Собрать историческую информацию по этим метрикам Статистически ее обработать, в результате чего

разработать PCB Ставить количественные цели для процессов на

уровне проекта и организации На регулярной основе проводить мониторинг и анализ

метрик на уровне проекта и организации Регулярно пересматривать PCB

Page 30: Управление процессами разработки ПО

Александр Самбук 30

Примеры метрик

Измеряемая сущность

Возможная метрика

Объем продукта Количество логических строк компилируемого кода, входящего в продукт

Трудозатраты проекта

Количество человеко-часов, потраченных назначенными на проект сотрудниками, на работы, входящие в план-график проекта

Качество продукта Сумма количества дефектов, обнаруженных пользователями после ввода в эксплуатацию, и количества известных неисправленных дефектов, деленная на объем продукта

Удовлетворенность клиента

Оценка, выставленная клиентом продукту по определенному опросному листу

Page 31: Управление процессами разработки ПО

Александр Самбук 31

Сбор исторической информации по метрикам Необходимо произвести измерения и рассчитать

метрики в достаточном количестве проектов (или за достаточный период времени), чтобы при статистической обработке данных получить реально существующую картину (это могут быть закрытые проекты, релизы, при длительных проектах – измерения за длительный промежуток времени).

Достаточное количество проектов для получения статистически достоверных исторических данных – не менее 10 проектов.

При сборе исторической информации за период времени достаточным считается временной отрезок в 1 год.

Page 32: Управление процессами разработки ПО

Александр Самбук 32

Возможные причины дестабилизации процесса

Некорректные измерения Пренебрежение регламентами Недостаток квалификации «Избыток» квалификации Использование других

технологий или инструментов разработки

Производимые изменения в процессе

Page 33: Управление процессами разработки ПО

Александр Самбук 33

Спасибо