Введение 3
1. Теоретико-методологические основы управления проектами 5
1.2 Определение проекта и его особенности 5
1.3 Жизненный цикл ИТ-проектов 7
1.4 Стадии жизненного цикла ПО 7
1.5 Обзор подходов к управлению ИТ-проектами 10
1.5.1 Каскадная модель (Waterflall model) 10
1.5.2 V- модель (V- model) 11
1.5.3 Спиральная модель 12
1.6 Гибкие методологии в управлении ИТ - проектами 14
3.1 Скрам (Scram) 16
3.2 Канбан (Kanban) 18
3.3 Экстремальное программирование (XP) 18
3.4 Crystal Clear 21
3.5 Бережливая разработка (lean) 22
3.6 Разработка, управляемая функциональностью (fdd) 22
2. Стоимостная оценка на базе анализа Agile методологий 24
2.1 Проект мобильного приложения на базе методология Scrum...24
2.2 Проект веб-приложения на базе методология XP 31
2.3 Проект веб-приложения на базе методология FDD 38
2.4 Анализ результатов 48
3. Анализ проектов в русскоязычном сегменте Рунет 51
3.1 Результаты исследования 54
Интегральные выводы 71
Список использованных источников 75
Несмотря на достаточный богатый накопленный опыт в области разработки программного обеспечения, задача оценки стоимости каждого конкретного проекта является сложной. Разброс стоимостных оценок может составлять порядки на один и тот же проект, т.е. стоимость одного и того же проекта, может значительно отличаться, разные команды разработчиков выходят из положения по-разному. Об актуальности данной проблемы существуют различные публикации в сети интернет .
В соответствии с тем, что оценка стоимости в проектах в области разработки программного обеспечения сопряжена с различными сложностями, нашей целью было разработать некий инструмент проектного менеджера, который он сможет использовать для выбора методологий разработки в конкретном проекте. Мы хотим облегчить ему работу с точки зрения характерных расходов на выполнение разного типа проектов в рамках выбранных методологий разработки.
К вопросу оценки мы подошли с двух сторон, во-первых, мы разработали собственную методику оценки расходов по методологиям, она иллюстрируется во второй главе работы. В процессе оценки методологий было введено понятие плановой стоимости (Т) оценочного времени, которое мы используем в расчетах.
Во-вторых, мы сделали опрос, который позволил нам оценить фактические расходы на проекты, выполненные в рамках различных методологий на пространствах Рунета. После чего, мы сравнили наши два подхода и сделали интегральные выводы.
Объектами исследования дипломной работы являются проекты, разрабатываемые в компаниях по разработке программного обеспечения.
Предметом исследования является методы оценки стоимости проектов, разрабатываемых на базе методология Agile.
Таким образом, целью данной работы является облегчить проектным менеджерам определение стоимости проекта, опираясь на положительные опыты использования методик гибкого управления проектами и их усовершенствования за счет разработки методов оценки и инструмента, разработанного по полученным данным опроса.
В рамках поставленной цели были определены следующие задачи:
• изучение практических методов и результатов гибкого управления проектами;
• разработка модели оценки стоимости проекта для
методологий;
• разработка опроса для проведения полевого
исследования базе компаний разработки ПО;
• проведение опроса в соответствие с разработанным опросом;
• анализ результатов опроса;
• проведение интервью ряда компаний для уточнения
полученных данных и получения более детальной информации;
• разработка инструмента.
Наличие подобной информации позволит сформировать ряд предложений, направленных оптимизацию расходов (издержек) при использовании Agile методик, решений или упрощения имеющихся проблем, облегчит работу проектным-менеджерам для подстройки используемого методология под конкретные проекты компании.
Подобные исследования в пределах Татарстана не совершались, был совершен поиск, но подобные работы не обнаружены.
Следует отметить, что состав разработчиков и специфика проектов отличны для каждого отдельного случая (коммерческий проект разработки мобильного приложения, обучающий open-source проект для сферы образования и коммерческая разработка веб-сайта компании), поэтому для комплексной оценки требуется большее количество выполненных кейсов для четкого выявления наиболее эффективной методологии управления ИТ- проектами. В проекте №2 была возможность сэкономить на материальных ресурсах, а в проекте №3 напротив, была необходимость в закупке компьютерного оборудования и оплаты сопутствующих расходов на организацию рабочего места и трудового процесса команды. Каждая из рассмотренных методологий имеет свои достоинства и недостатки. XP и TDD лучше всего применять при работе над критичными к срокам проектам средней степени сложности, FDD является предпочтительной для более дорогих, но менее срочных проектов, Scrum методология более универсальна и эффективна для средних и крупных команд, процесс работы которых необходимо централизованно контролировать, сохраняя при этом гибкость его функционирования.
Проведенный стоимостной анализ ряда дополнительных проектов позволил выявить существенное влияние различных рисковых факторов на фактическую стоимость проекта и сроки его выполнения. В частности, установлено, что проблемы с человеческим фактором, отсутствие регулярных встреч и совещаний с заказчиком, неэффективная политика менеджмента и контроля качества процесса разработки руководством в проектах №5 и №7 привели к существенным дополнительным затратам и превышению сроков выполнения проектов. Следует заметить, что это является характерной чертой для модели управления ИТ-проектами - Waterfall. При этом, подавляющее большинство проектов, основанных на Agile методологиях, показывают более эффективные результаты, укладываются в бюджет и в сроки. Это связано с гибкостью процесса организации общения между клиентом и командой, отсутствием бюрократических проволочек и инстанций, снижении степени формальности контроля труда разработчиков и проведением регулярных внутренних совещаний (митингов).
Следует, также, отметить, что все перечисленные практики редко применяются в единичном «чистом» виде, т.к. достижение наиболее эффективных результатов возможно лишь в случаях их корректного сочетания. В частности, каждый из рассмотренных проектов на базе Agile состоит из процесса формирования отдельных спринтов, планирования объемов работ и ежедневной фиксации выполненных задач для построения итоговой диаграммы сгорания.
При этом, с нашей точки зрения, лучше всего себя зарекомендовала практика Scrum, в связи с тем, что она поддерживает большее количество инструментов для обеспечения максимальной степени гибкости процесса разработки ПО и имеет меньший порог интеграции на практике, по сравнению с XP, TDD, FDD. Это связано в первую очередь с тем, что команде: легче взаимодействовать; необходимо тратить меньше сил и времени на выполнение рефакторинга и составления проектно-отчетной документации; проще понимать состояние проекта посредством проведения кратких ежедневных Scrum-совещаний; подведения итогов с формированием рекомендаций по улучшению работы над последующими проектами посредством проведения ретроспективного анализа.
Следует отметить, что ряд существующих тенденций и аспектов на рынке разработки ПО в отечественной и зарубежной практике, с учетом специфики управления ИТ-проектами, в целом подтверждается ответами опрошенных респондентов.
Проведенные в рамках данной работы исследования в области практического управления проектами в сфере ИТ, стоимостной анализ трех реальных кейсов и опроса более 80 респондентов, практикующих гибкие методологии разработки ПО, позволили сформировать следующие ключевые рекомендации для повышения эффективности деятельности компаний.
1. Использование комбинированной мотивации членов команды исходя из личностных качеств и профессиональных возможностей. Зарубежный опыт свидетельствует, что при разработке плана мотивации сотрудников целесообразным является применение принципов и концепций соционики - науки об информационном метаболизме человека. В зависимости от результатов типирования (диагностики) каждого сотрудника необходимо комплектовать группы из совместимых и продуктивно взаимодействующих личностей. Кроме финансовой мотивации (премий, надбавок) соционика позволяет дать ответы на возможные варианты не финансовой стимуляции эффективности труда (должности, новые обязанности, креативные направления, возможность смены режима работы на удаленный, участие в мероприятиях обмена опытом и др.).
2. Сочетание различных практик из разных Agile методологий, позволяющих снизить недостатки и сложности отдельных методов. Scrum может сочетаться с элементами Kanban (планирование проекта и контроль), как свидетельствует первый из рассмотренных кейсов. TDD хорошо сочетается с XP, как показывает опыт второй рассмотренный кейс. Подобный синергетический эффект может в последствии приводить к разработке новой методологии, с учетом специфики конкретной организаций, повышающей итоговую производительность команды и способствующей снижению рисков проекта.
3. Снижение материальных затрат на проект и более понятное обоснование необходимости оплаты дополнительных функций по разработке проекта со стороны заказчика может быть достигнуто путем плотного общения с клиентом бизнес-аналитика и архитектора команды. Это позволяет детально, на примерах и с учетом уже выполненных кейсов, обсудить цели и задачи проекта, на базе которых может быть разработано конкретное техническое задание, backlog проекта и дополнительные спецификации. Также, для решения данной задачи полезным будет применение методик быстрого прототипирования (простого или эволюционного) начальных версий интерфейса, разрабатываемого ПО для заказчика. Видя несколько вариантов предложенных командой прототипов, клиент проникается доверием к разработчикам, становиться более склонным к ведению конструктивного диалога.
4. Для снижения рисков проекта, кроме описанных выше подходов по оценке трудоемкости, бюджета, способностей членов команды, необходимым, на наш взгляд, является применение эффективных методов количественной оценки рисков. В число таких подходов следует отнести следующие:
- метод Монте-Карло - направленный на проведение имитационного моделирования исследуемых процессов;
- методы построения нечетко-вероятностных продукционных моделей оценки рисков (на базе алгоритмов Mamdani и Sugeno) - использующих аппарат нечеткой логики для выявления специфики взаимовлияния и взаимозависимости факторов рисков;
- методы кластерного анализа (алгоритмы k-means или c-means) для выделения рисков в отдельные кластера для формирования приоритетов при их закладывании в проект;
- методы построения искусственных нейронных сетей для прогнозирования возможных рисков исходя из заданных входных статистических выборок данных.
Таким образом, представленные результаты, разработанные рекомендации, кейсы, которые были рассмотрены в рамках 2-й главы выполненной работы могут быть полезными и ценными для команд, применяющих Agile методологий. Приведенная методика стоимостного анализа, примененная для описанных кейсов, может быть использована для оценки материальных расходов и для других проектов.