Оценка трудоёмкости и сроков разработки ПО

54
Software Estimation

Upload: sqalab

Post on 19-Jun-2015

2.229 views

Category:

Education


6 download

DESCRIPTION

Юрий Дайбов - доклад на Software Project Management Conference, 26 ноября 2011, Санкт-Петербург

TRANSCRIPT

Page 1: Оценка трудоёмкости и сроков разработки ПО

Software Estimation

Page 2: Оценка трудоёмкости и сроков разработки ПО

О себе

Page 3: Оценка трудоёмкости и сроков разработки ПО

КО

Page 4: Оценка трудоёмкости и сроков разработки ПО

Зачем?

Page 5: Оценка трудоёмкости и сроков разработки ПО

Давайте на чистоту

Page 6: Оценка трудоёмкости и сроков разработки ПО
Page 7: Оценка трудоёмкости и сроков разработки ПО
Page 8: Оценка трудоёмкости и сроков разработки ПО
Page 9: Оценка трудоёмкости и сроков разработки ПО
Page 10: Оценка трудоёмкости и сроков разработки ПО

“Estimation is not Exactimation!”S. McConnell

Page 11: Оценка трудоёмкости и сроков разработки ПО
Page 12: Оценка трудоёмкости и сроков разработки ПО

Проблемы оценок:

– Погрешность– Разные люди– Предубеждение– Вариация

производительности– Риски– Очень мало времени на оценку

Page 13: Оценка трудоёмкости и сроков разработки ПО

А есть ли выход?

Page 14: Оценка трудоёмкости и сроков разработки ПО

Оцениваем непрерывно Ретроспектива

Page 15: Оценка трудоёмкости и сроков разработки ПО

Как оценивать?

Page 16: Оценка трудоёмкости и сроков разработки ПО

Уменьшаем неопределённость

Page 17: Оценка трудоёмкости и сроков разработки ПО
Page 18: Оценка трудоёмкости и сроков разработки ПО

Ищем, что посчитать

• Количество бизнес-процессов• Количество строк кода• Количество входов-выходов• Количество ХП• Количество подсистем• Количество модулей

Page 19: Оценка трудоёмкости и сроков разработки ПО

Если считать нечего, то см. методы

«Локтём по карте»и

«Вилами по воде»

Page 20: Оценка трудоёмкости и сроков разработки ПО

Этапы оценки

Page 21: Оценка трудоёмкости и сроков разработки ПО

1 этап

Знаем «о чём»

Page 22: Оценка трудоёмкости и сроков разработки ПО

Методы на 1-ом этапе

• «Локтём по карте»• Метод аналогий

Page 23: Оценка трудоёмкости и сроков разработки ПО

2 этап

Знаем, «что»

Page 24: Оценка трудоёмкости и сроков разработки ПО

Методы на 2-ом этапе

• Экспертные оценки• WBS• Use Case Points• Формула Боэма• Классификация• Story Points• Planning Poker• Wideband Delphi

Page 25: Оценка трудоёмкости и сроков разработки ПО

3 этап

Знаем, «как»

Page 26: Оценка трудоёмкости и сроков разработки ПО

Методы на 3-ем этапе

• WBS• PERT• CLOC• Functional Points

Page 27: Оценка трудоёмкости и сроков разработки ПО

4 этап

Знаем, «что получилось»

Page 28: Оценка трудоёмкости и сроков разработки ПО

Методы на 4-ом этапе

• Ретроспектива

Page 29: Оценка трудоёмкости и сроков разработки ПО

Примеры

Page 30: Оценка трудоёмкости и сроков разработки ПО
Page 31: Оценка трудоёмкости и сроков разработки ПО

Исходные данные

• Чужой незнакомый код на Power Builder• Ограниченная экспертиза в Power Builder

Page 32: Оценка трудоёмкости и сроков разработки ПО

Требуется

• Оценить миграцию кода на Java• Минимизировать затраты на оценку

Page 33: Оценка трудоёмкости и сроков разработки ПО

Что можем посчитать

• Количество файлов• Объём кода в Мб• Количество ХП• Количество пунктов меню (вариантов

использования)• Количество экранных форм• Количество печатных форм

Page 34: Оценка трудоёмкости и сроков разработки ПО

Что можем вычислить

• Оценить среднее соотношение строк кода и объёма файлов (файлы содержат ещё и ресурсы)

Page 35: Оценка трудоёмкости и сроков разработки ПО

Что можем позаимствовать

• Статистику перевода строк кода Power Builder в Java

Page 36: Оценка трудоёмкости и сроков разработки ПО

Как можем уточнить

• Анализ наиболее рискованных вариантов использования (экспертный анализ)

Page 37: Оценка трудоёмкости и сроков разработки ПО

Что оцениваем

• Аналитика• Разработка• Тестирование• Управление

Page 38: Оценка трудоёмкости и сроков разработки ПО

Вводим поправки

• Ищем повторяющиеся действия – сокращаем оценки

• Не забываем про фреймворк – базовая архитектура

Page 39: Оценка трудоёмкости и сроков разработки ПО
Page 40: Оценка трудоёмкости и сроков разработки ПО

Исходные данные

• Длительность предыдущей фазы: 15 мес.• Количество старых требований: 502• Команда уменьшилась в 2 раза• Количество новых требований: 250• Время на оценку – 2 дня

Задача – определить стоимость всех работ

Page 41: Оценка трудоёмкости и сроков разработки ПО

Грубая интегральная оценка

1 требование разрабатывалось: 15 мес. / 502 треб. = 0,62 дня

1 требование новой командой: 0,62 дня * 2 = 1,24 дня

Новый scope: 1,24 дня * 250 = 308 дней ~ 15 мес.

Page 42: Оценка трудоёмкости и сроков разработки ПО

Грубая интегральная оценка

Корректировка на проблемы внедрения (эмпирически)308 дней * 1,2 = 370 дней ~ 17,5 мес.

Общая трудоёмкость:17,5 мес * 54 чел = 945 чел*мес

Page 43: Оценка трудоёмкости и сроков разработки ПО

Уточнение оценки

• На самом деле детализация требований изменилась

На сколько?

Page 44: Оценка трудоёмкости и сроков разработки ПО

Ранжирование требованийНовые

требованияДетализация Доля от

общего количества

Коэффициент соответствия

Старых требований в

диапазоне166 высокая 65% 0.13 12

23 не очень 9% 0.17 4

36 средняя 14% 0.67 25

9 более среднего

5% 0.56 5

11 сильно общие 5% 2.07 22

5 абстрактные 2% 1.11 6

Page 45: Оценка трудоёмкости и сроков разработки ПО

Уточнённая оценка

• 250 новых требования соответствуют 74-ём старым требованиям

945 чел*мес * (74 / 250) = 280 чел*мес

Page 46: Оценка трудоёмкости и сроков разработки ПО

Описание результата

• Без технического и функционального анализа задач

• Без учёта проектных факторов (команда, баги, регрессии)

• Без учёта внепроектных факторов (болезни, отпуска и пр.)

• Только на основе предыдущего опыта!• Но закон больших чисел на нашей стороне.

Page 47: Оценка трудоёмкости и сроков разработки ПО

Повышение атомарности задач

Предыдущий этап:• Не позволял манипулировать задачами• Не учитывал специфику «несредних задач»• Был слишком непрозрачен для Заказчика

Page 48: Оценка трудоёмкости и сроков разработки ПО

Оценка индивидуальных задач

• Разбиваем на аналитику, разработку, тестирование

• Ранжируем на уровни сложности:– элементарный– лёгкий– средний– тяжёлый– очень тяжёлый

Page 49: Оценка трудоёмкости и сроков разработки ПО

Оценка индивидуальных задач

Уровень сложности разработки*

% от средней трудоёмкости

Трудоёмкость, чч

Элементарная (1) 25 47

Лёгкая (2) 50 94

Средняя (3) 100 188

Тяжёлая (4) 200 376

Очень тяжёлая (5) 400 752

* То же для аналитики и тестирования

Page 50: Оценка трудоёмкости и сроков разработки ПО

Оценка задач

ЗадачаРазработка Аналитика Тестирование

R E, чч R E, чч R E, ччЗадача 1 1 47 1 4 1 47

Задача 2 2 94 2 16 2 94

Задача 3 1 47 4 28 1 47

Задача 4 3 188 3 20 3 188

Задача 5 3 188 2 16 2 188

Задача 6 3 188 4 28 2 188

Задача 7 4 376 4 28 3 376

Задача 8 0 0 2 16 0 0

Page 51: Оценка трудоёмкости и сроков разработки ПО

Индивидуальный анализ

• Индивидуальное ревью оценок на предмет явно завышенных или заниженных оценок

Page 52: Оценка трудоёмкости и сроков разработки ПО

Результаты

• Проведена обоснованная оценка• Применена комбинация методов• Точность попадания по ряду задач 10-20 %

Page 53: Оценка трудоёмкости и сроков разработки ПО

Вопросы

• Какие методы были применены в примере?• Какие недостатки у методов?• Какие преимущества у методов?

Page 54: Оценка трудоёмкости и сроков разработки ПО

Заключение