Оценивание проекта
Одной из наиболее важных работ является оценка стоимости проекта. Общая стоимость проекта определяется исходя из стоимости отдельных частей, условий выполнения работ, наличного штата исполнителей, используемых методов и инструментов. В стоимость проекта входит все создает стиль ведения проекта: компьютеры, программное обеспечение, площади, мебель, телефоны, модемы, канцелярские товары и многое другое. Иногда должны быть созданы дополнительные условия (например, безопасность).
К дополнительным расходам относятся системы тестирования, кодирования или другие CASE системы. Центральной оценкой в проекте является оценка затрат на ведение проекта, выражаемая, например, в человеко-днях исполнителей работ в проекте. Эти оценки проводятся на ранней стадии ведения проекта и составления плана. Специалисты с опытом могут первоначально оценить стоимость проекта с погрешностью меньше 10%.
Правильность оценки зависит от компетентности, опыта, объективности и восприятия эксперта. Метод построения оценки может быть «сверху-вниз» или «снизу-вверх».Стоимость старой системы чаще всего экстраполируется на новую с некоторыми корректировками.
Когда такой возможности нет, эксперты проводят пессимистическую (x), оптимистическую, и реальную. Разные методы приближенного оценивания по отношению к реалистическим рассмотрены в [3]. Эксперт проводит опрос всех членов рабочей группы, и в дальнейшем проводит коррекцию каждой оценки, выводя на их основе наиболее правдоподобную.
Во всех приведенных организационных методах оценки работ есть свои недостатки, связанные с трудностью определения степени отличия каждого модуля старой система от новой. Иногда система оценок, которая успешно работает в одной компании, не работает в другой. В некоторых рабочих группа пессимистическая и оптимистическая оценки могут сильно отличаться.
Алгоритмические методы оценки. К ним относятся модель, в которой отображаются связи между затратами в проекте и факторами, которые на них влияют.
Модель – это уравнение, в котором затраты – зависимая переменная, а влияющие факторы – независимые переменные.
Например, стоимость проекта определяется по формуле: E = (a+bSc) m (X), где S - оценка размера системы, а, в, с – эмпирические константы, Х – вектор факторов стоимости размерностью n, m – регулирующий множитель, основанный на затратных факторах. В [3] предлагается модель в виде соотношения, полученного экспериментальным путем: E = 5.25S0.91.
Эта модель применялась при оценке проекта, в котором программные системы имели размер от 4000 до 467000 строк кода, написанных на 28 различных языках программирования высокого уровня для 66 компьютеров и на которые затрачено от 12 до 11758 человека-месяцев.
В [4] предлагается техника моделирования, использующихся в уравнении затрат организации-разработчика:
E = 5.5+0.73S1.16.
В большинстве моделей оценка зависит от размера системы в строках кода. Модель COCOMO Боєма [ ] собрала в себе три техники измерений по проекту. В первых моделях применялись показатели цены, учитывался персонал и свойства проекта, продукта и среды. Модель включает оценку трех стадий ведения проекта. На первой стадии строится прототип для задач повышенного риска (интерфейс пользователя, ПО, система взаимодействия, реализации и др.) и проводится оценка затрат (например, число таблиц в БД, экраны и отчетные формы др.).
На второй стадии ведется оценка затрат на проектирование и реализацию функциональных точек проекта, отраженных в требованиях к проекту.
На третьей стадии оценка относится к завершенному проектированию, когда размер системы может быть определен в терминах готовых строк программы и других факторов.
Базовой моделью оценки служит следующее уравнение: E=bSc m(X), где первичная оценка b Sc корректируется с помощью вектора стоимости m (X). Эта модель развивается с учетом анализа объектов (число старых и новых объектов). Параметр с в уравнении изменяется от 0 до 1.0 для первой стадии и от 1.01 до 1.26 для остальных.
Таким образом, можно сформулировать основные вехи для эффективного и успешного управления программным проектом:
1.Определение границ системы и точек выполнения разработки.
2. Формирование временного плана выполнения работ в точках проекта.
3. Определение структуру рабочей группы, периода, видов работ и ресурсов.
4. Техническое описание планируемой системы (аппаратное и ПО проекта, компиляторы, интерфейсы, оборудование и др.) и ограничений на время, безопасность и т.п.
5. Использование стандартов, процедур, техник и инструментов ведения проекта.
6. Разработка планов достижения качества, управления конфигурацией, подготовки документации.
7. Разработка плана управления данными и источниками информации.
8. Разработка плана тестирования, измерения и оценивания результатов работ.
9. Составления плана обучения пользователей системы.
10. Определения плана безопасности (конфиденциальность, пароли и др.)
11. Составление плана управления рисками.
12. План сопровождения с указанием ответственных за изменение кода, ремонт оборудования, использование документации и др.
13. Описание алгоритмов, инструментов, техники просмотра или инспекции кода, языков ведения проекта, языков кодирования и тестирования.