Оценка трудоёмкости и сроков разработки ПО
DESCRIPTION
Юрий Дайбов - доклад на Software Project Management Conference, 26 ноября 2011, Санкт-ПетербургTRANSCRIPT
![Page 1: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/1.jpg)
Software Estimation
![Page 2: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/2.jpg)
О себе
![Page 3: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/3.jpg)
КО
![Page 4: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/4.jpg)
Зачем?
![Page 5: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/5.jpg)
Давайте на чистоту
![Page 6: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/6.jpg)
![Page 7: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/7.jpg)
![Page 8: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/8.jpg)
![Page 9: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/9.jpg)
![Page 10: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/10.jpg)
“Estimation is not Exactimation!”S. McConnell
![Page 11: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/11.jpg)
![Page 12: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/12.jpg)
Проблемы оценок:
– Погрешность– Разные люди– Предубеждение– Вариация
производительности– Риски– Очень мало времени на оценку
![Page 13: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/13.jpg)
А есть ли выход?
![Page 14: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/14.jpg)
Оцениваем непрерывно Ретроспектива
![Page 15: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/15.jpg)
Как оценивать?
![Page 16: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/16.jpg)
Уменьшаем неопределённость
![Page 17: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/17.jpg)
![Page 18: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/18.jpg)
Ищем, что посчитать
• Количество бизнес-процессов• Количество строк кода• Количество входов-выходов• Количество ХП• Количество подсистем• Количество модулей
![Page 19: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/19.jpg)
Если считать нечего, то см. методы
«Локтём по карте»и
«Вилами по воде»
![Page 20: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/20.jpg)
Этапы оценки
![Page 21: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/21.jpg)
1 этап
Знаем «о чём»
![Page 22: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/22.jpg)
Методы на 1-ом этапе
• «Локтём по карте»• Метод аналогий
![Page 23: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/23.jpg)
2 этап
Знаем, «что»
![Page 24: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/24.jpg)
Методы на 2-ом этапе
• Экспертные оценки• WBS• Use Case Points• Формула Боэма• Классификация• Story Points• Planning Poker• Wideband Delphi
![Page 25: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/25.jpg)
3 этап
Знаем, «как»
![Page 26: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/26.jpg)
Методы на 3-ем этапе
• WBS• PERT• CLOC• Functional Points
![Page 27: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/27.jpg)
4 этап
Знаем, «что получилось»
![Page 28: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/28.jpg)
Методы на 4-ом этапе
• Ретроспектива
![Page 29: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/29.jpg)
Примеры
![Page 30: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/30.jpg)
![Page 31: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/31.jpg)
Исходные данные
• Чужой незнакомый код на Power Builder• Ограниченная экспертиза в Power Builder
![Page 32: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/32.jpg)
Требуется
• Оценить миграцию кода на Java• Минимизировать затраты на оценку
![Page 33: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/33.jpg)
Что можем посчитать
• Количество файлов• Объём кода в Мб• Количество ХП• Количество пунктов меню (вариантов
использования)• Количество экранных форм• Количество печатных форм
![Page 34: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/34.jpg)
Что можем вычислить
• Оценить среднее соотношение строк кода и объёма файлов (файлы содержат ещё и ресурсы)
![Page 35: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/35.jpg)
Что можем позаимствовать
• Статистику перевода строк кода Power Builder в Java
![Page 36: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/36.jpg)
Как можем уточнить
• Анализ наиболее рискованных вариантов использования (экспертный анализ)
![Page 37: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/37.jpg)
Что оцениваем
• Аналитика• Разработка• Тестирование• Управление
![Page 38: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/38.jpg)
Вводим поправки
• Ищем повторяющиеся действия – сокращаем оценки
• Не забываем про фреймворк – базовая архитектура
![Page 39: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/39.jpg)
![Page 40: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/40.jpg)
Исходные данные
• Длительность предыдущей фазы: 15 мес.• Количество старых требований: 502• Команда уменьшилась в 2 раза• Количество новых требований: 250• Время на оценку – 2 дня
Задача – определить стоимость всех работ
![Page 41: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/41.jpg)
Грубая интегральная оценка
1 требование разрабатывалось: 15 мес. / 502 треб. = 0,62 дня
1 требование новой командой: 0,62 дня * 2 = 1,24 дня
Новый scope: 1,24 дня * 250 = 308 дней ~ 15 мес.
![Page 42: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/42.jpg)
Грубая интегральная оценка
Корректировка на проблемы внедрения (эмпирически)308 дней * 1,2 = 370 дней ~ 17,5 мес.
Общая трудоёмкость:17,5 мес * 54 чел = 945 чел*мес
![Page 43: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/43.jpg)
Уточнение оценки
• На самом деле детализация требований изменилась
На сколько?
![Page 44: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/44.jpg)
Ранжирование требованийНовые
требованияДетализация Доля от
общего количества
Коэффициент соответствия
Старых требований в
диапазоне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: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/45.jpg)
Уточнённая оценка
• 250 новых требования соответствуют 74-ём старым требованиям
945 чел*мес * (74 / 250) = 280 чел*мес
![Page 46: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/46.jpg)
Описание результата
• Без технического и функционального анализа задач
• Без учёта проектных факторов (команда, баги, регрессии)
• Без учёта внепроектных факторов (болезни, отпуска и пр.)
• Только на основе предыдущего опыта!• Но закон больших чисел на нашей стороне.
![Page 47: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/47.jpg)
Повышение атомарности задач
Предыдущий этап:• Не позволял манипулировать задачами• Не учитывал специфику «несредних задач»• Был слишком непрозрачен для Заказчика
![Page 48: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/48.jpg)
Оценка индивидуальных задач
• Разбиваем на аналитику, разработку, тестирование
• Ранжируем на уровни сложности:– элементарный– лёгкий– средний– тяжёлый– очень тяжёлый
![Page 49: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/49.jpg)
Оценка индивидуальных задач
Уровень сложности разработки*
% от средней трудоёмкости
Трудоёмкость, чч
Элементарная (1) 25 47
Лёгкая (2) 50 94
Средняя (3) 100 188
Тяжёлая (4) 200 376
Очень тяжёлая (5) 400 752
* То же для аналитики и тестирования
![Page 50: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/50.jpg)
Оценка задач
ЗадачаРазработка Аналитика Тестирование
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: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/51.jpg)
Индивидуальный анализ
• Индивидуальное ревью оценок на предмет явно завышенных или заниженных оценок
![Page 52: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/52.jpg)
Результаты
• Проведена обоснованная оценка• Применена комбинация методов• Точность попадания по ряду задач 10-20 %
![Page 53: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/53.jpg)
Вопросы
• Какие методы были применены в примере?• Какие недостатки у методов?• Какие преимущества у методов?
![Page 54: Оценка трудоёмкости и сроков разработки ПО](https://reader033.vdocuments.us/reader033/viewer/2022061603/55832ff7d8b42a752f8b493a/html5/thumbnails/54.jpg)
Заключение