ВВЕДЕНИЕ 4
ГЛАВА 1. ПЕРВИЧНЫЙ АНАЛИЗ ИССЛЕДУЕМОЙ ОБЛАСТИ 7
1.1 Анализ жизненных циклов разработки программного обеспечения 8
1.1.1 Каскадная модель 10
1.1.2 Инкрементальная модель 11
1.1.3 Спиральная модель 12
1.1.4 Итеративная модель 15
1.1.5 Результаты анализа моделей жизненного цикла 16
1.2 Анализ методологий управления IT-проектами 19
1.2.1 Scrum 19
1.2.2 Extreme Programming (XP) 21
1.2.3 Rational Unified Process (RUP) 24
1.2.4 Microsoft Solution Framework (MSF) 26
1.2.5 Rapid Application Development (RAD) 30
1.2.6 Результаты анализа методологий 31
1.3 Проекты в B2B и B2G сферах 34
1.3.1 IT-проект в B2C сфере 34
1.3.2 IT-проект в B2B сфере 35
1.3.3 IT-проект в B2G сфере 35
ГЛАВА 2. ПОЛУЧЕНИЕ МАКРОХАРАКТЕРИСТИК ПРОЕКТА 37
2.1 Характеристики проектов и их измерение 37
2.2 Источники сбора данных 42
2.3 Методы и инструменты измерения 42
2.4 Показатели проектов 44
2.4.1. Информационно-аналитическая система отчетов 44
2.4.1.1 Измерения характеристик 45
2.4.1.2 Анализ данных 61
2.4.1.3 Выводы 63
2.4.2 Система для оформления заказов в сфере медицины 64
2.4.2.1 Измерения характеристик 64
2.4.2.2 Анализ данных 71
2.4.2.3 Выводы 72
2.4.3 Корпоративный портал крупного спортивного клуба 72
2.4.3.1 Измерение характеристик 72
2.4.3.2 Анализ данных 78
2.4.3.3 Выводы 78
2.5 Исследование RUP 79
2.5.1 Видение проекта 80
2.5.2 Итерации 80
2.5.3 Контракт 81
2.5.4 Архитектура 82
2.5.5 Выводы 82
ГЛАВА 3. РАЗРАБОТКА РУКОВОДСТВА ПО ВОССТАНОВЛЕНИЮ
МАКРОХАРАКТЕРИСТИК LEGACY-ПРОЕКТОВ 83
ЗАКЛЮЧЕНИЕ 90
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 91
ПРИЛОЖЕНИЕ №1
Большая часть современного технологического мира создана благодаря проектам. Под проектом будет пониматься временное предприятие, направленное на создание уникального продукта, услуги или результата [1]. Проекты, как правило, имеют различные характеристики и могут относиться к определенному типу. В процессе выполнения выпускной квалификационной работы будут рассмотрены характеристики, относящиеся к свойствам проекта, таким как расписание, стоимость, содержание, качество и др.
Особо важное место в проектной деятельности занимает такая область, как управление проектами. Она описывает то, каким образом и какими путями можно достичь цели проекта, балансируя между требуемыми ресурсами, необходимым объемом работ, а также временем, возможными рисками и надлежащим качеством. Данная сфера сформировалась в последние несколько десятилетий, но предпосылки к появлению области управления проектами начали появляться задолго до этого. Методы управления проектами, которые существуют в современности, были сформированы на основе методов критического пути (DuPont Corporation и Remington Rand Corporation) и «Project Evaluation and Review Technique» (PERT) (ВМС США), разработанных в США в конце 1950-ых годов [2]. Данные методы были посвящены структуризации процесса работы, а также структуризации сетевого планирования.
С постепенным развитием технологий, проекты становятся все масштабнее и структурно сложнее. Вследствие чего появляется необходимость в усовершенствовании сферы управления проектами в различных областях. Здесь и далее под термином «проект» будет подразумеваться проект в области программной инженерии.
Изначально для усовершенствования технологий управления проектами были разработаны модели жизненных циклов разработки проектов [3]. Целью их изобретения была необходимость дать команде разработчиков возможность правильно планировать свои действия, рассчитывать оптимальное количество ресурсов и в итоге получать продукт высокого качества. Жизненных циклов существует несколько, выбор нужного основывается на том, какой именно проект рассматривается и зачастую какие требования к процессу разработки согласованы между заказчиком и проектной командой.
В это же время стали зарождаться различные методологии по управлению проектами, такие как Scrum, RUP, MSF, RAD и XP и др. [3] - свода методов, подходов и инструментов управления проектами. Методология разработки выбирается в начале работы проекта. Иногда проект может вестись без явно выбранной методологии. Подробнее методологии будут рассмотрены в разделе «Анализ методологий управления IT-проектами».
Часто за все время работы над проектом работает не один руководитель и не одна команда, и может возникнуть ситуация, когда новый менеджер принимает проект, уже выполнявшийся продолжительное время до его прихода. Такой проект будем называть legacy-проектом.
Термин «legacy»в программной инженерии применяют к артефактам разработки с большим временем жизни, изменение которых даже в целях оптимизации или рефакторинга нежелательно, поскольку может повлечь непредвиденные последствия [4].
Говоря о legacy-проекте, стоит отметить, что некоторые специалисты в индустрии разработки противопоставляют понятия нового проекта и legacy- проекта [5].
Более подробно, в данной работе под термином legacy-проект будет пониматься такой проект, который успел накопить большой объем документации и данных в трекерах, поверхностный анализ которых не даст необходимых сведений о том, как развивался проект, какая была его специфика в смысле политики работы с требованиями, управления версиями, логики принятия решений менеджером, а также другими аспектами.
Возникает вопрос о том, как новому менеджеру за короткий срок получить о проекте более глубокую информацию - использованную методологию, жизненный цикл разработки и другие, упомянутые выше макрохарактеристики проекта, которые помогли бы новому менеджеру приступить к работе максимально эффективно.
Была поставлена цель - описать механизм получения такой информации и оформить это в соответствующем документе, который был назван «руководством по восстановлению макрохарактеристик legacy-проектов». Для решения этой цели необходимо было ввести характеристики проекта, на основе которых будет собираться информация, разработать подходы к их измерению (возможно с использованием дополнительных инструментов), а также описать способ получения необходимой о проекте информации на основе полученных результатов измерений, осуществив фактически т.н. реверсивный инжиниринг знаний о проекте.
В рамках работы были исследованы ряд проектов в секторах B2B и B2G, на основе которых были выделен ряд дополнительных характеристик, позволивших конкретизировать сделанные в работе выводы.
В ходе выполнения выпускной квалификационной работы были рассмотрены и проанализированы различные методологии и жизненные циклы разработки программного обеспечения. На основе изученного материала были выявлены их различия и определены характеристики, описывающие их.
Введенные характеристики проекта были классифицированы по группам, описывающим области проекта. Для каждой из характеристик определена мера измерения.
В рамках работы были исследованы ряд таких проектов в секторах B2B и B2G, как информационно-аналитическая система отчетов, система для оформления заказов в сфере медицины и корпоративный портал спортивного клуба уровня высшей лиги. На их основе был выделен ряд дополнительных интеграционных характеристик, позволивших конкретизировать сделанные в работе выводы.
На основе проведенной исследовательской работы был разработан руководство по восстановлению макрохарактеристик legacy-проектов. Благодаря этому появляется возможность выявлять макрохарактеристики, используя его характеристики. Данный документ полезен в первую очередь руководителям проектов, но, тем не менее, использовать его может любое заинтересованное в управление проектом лицо.
1. Руководство к своду знаний по управлению проектами. Четвертое издание (Руководство PMBOK®) [Текст]. Project Management Institute. 2008.
2. Анисимов В.В. Модели жизненного цикла информационных систем [Электронный ресурс]. - Режим доступа: http://edu.dvgups.ru/METDOC/GDTRAN/YAT/ITIS/PROEK_INF_SIS/MET OD/UMK_DO/frame/UMK_DO/M1/L3 .htm, свободный.
3. Elliott G. Strachan J. Global Business Information Technology [Текст] / Elliott G., Strachan J. // - 2005. № 2 (23). - С. 87.
4. J. Bisbal, D. Lawless, Bing Wu, J. Grimson. Legacy information systems: issues and directions // IEEE Software (Volume: 16, Issue: 5), 1999, pp. 103 - 111, ISSN : 0740-7459
5. Перевод legacy-проекта на Dependency Injection [Электронный ресурс]. - 2014. - Режим доступа: https://habrahabr.ru/post/217523/
6. Software Project Measurement - CS2 Software Engineering note 5 [Электронный ресурс]. - 2004. - Режим доступа: http://www.inf.ed.ac.uk/teaching/courses/cs2/LectureNotes/CS2Ah/SoftEng/se 05.pdf, свободный.
7. Коситцын. Модели жизненного цикла разработки программного обеспечения [Электронный ресурс]. - Петрозаводск. - Режим доступа: http://pmik.petrsu.ru/pub/kositsyn/UP/2011/LifeCircles.pdf, свободный.
8. Исайченко Д. Измерение процессов управления ИТ [Текст] // «Открытые системы». № 07, 2011
9. Сорока Т. Обзор процессов разработки ПО [Электронный ресурс]. - Режим доступа: http://cppbuilder.rU/articles/0043.php#part55, свободный.
10. Карпов Д.В. Гибкие методологии разработки программного обеспечения [Электронный ресурс]. - 2011. - Нижний Новгород. -Режим доступа: http://www.unn.ru/pages/issues/vestnik/99999999_West_2011_3(2)/36.pdf, свободный.
11. Хаф Л. Методологии разработки программного обеспечения [Электронный ресурс]. - 2003. - Режим доступа: http://compress.ru/article.aspx?id=11321#01, свободный.
12. Закис А. RUP и другие методологии разработки ПО [Электронный ресурс]. - 2006. - Режим доступа: http://cmcons.com/articles/obshhie_stati_rup/rup_i_drugie_metodologii_razra botki_po/, свободный.
13. Колесов А. Введение в методологию Microsoft Solutions Framework [Текст] // BYTE Россия. - 2004. № 7 (71). - С. 1-5.
14. Йордон Э. Обзор моделей жизненного цикла разработки программного обеспечения [Электронный ресурс]. - 2005. Украина. - Режим доступа: http://itc.ua/articles/razrabotka_po_modeli_zhiznennogo_cikla_21072/, свободный.
15. Вольфсон Б. Гибкие методологии разработки [Электронный ресурс]. - 2012. Режим доступа: http://adm-lib.ru/books/10/Gibkie-metodologii.pdf, свободный.
16. Вершинина Е.В. Обзор моделей жизненного цикла разработки программного обеспечения [Электронный ресурс] / Вершинина Е.В., Гонченко М.С. - Нижний Новгород. - Режим доступа: http://www.itlab.unn.ru/MiniProjects/LCM/Conspect.doc, свободный.
17. Брагина Т. И. Сравнительный анализ итеративных моделей разработки программного обеспечения [Текст] / Брагина Т. И., Табунщик Г. В. // Радюелектрошка, шформатика, управлшня. - 2010. № 2 (23). - С. 130¬139.
18. Книберг Х. Scrum и XP: заметки с передовой [Электронный ресурс]. - Электрон. текстовые дан. - 2010. - Стокгольм - Режим доступа:
http: //scrum.org.ua/wp-content/uploads/ScrumAndKanbanRuF inal. pdf, свободный.
19. Леоненков А. Введение в IBM Rational Unified Process [Электронный ресурс]. - Режим доступа: http://www.intuit.ru/studies/courses/652/508/infb, свободный.
20. Madsen S., Kautz K. Applying system development methods in practice - The RUP example [Электронный ресурс]. - 2000. - Режим доступа:
http: //www.sims. monash. edu/subj ects/ims5024/lectures/ABRUP. pdf, свободный.