УДК 658.51
ПРИМЕНЕНИЕ ГИБКИХ МЕТОДОВ УПРАВЛЕНИЯ ПРОГРАММНЫМИ ПРОЕКТАМИ
В РАМКАХ УЧЕБНОГО ПРОЦЕССА
Раева Татьяна Дмитриевна (raevatd@gmail.com) ФГБОУ ВО «Ивановский государственный энергетический университет им. В.И. Ленина» Обоснована возможность применения гибких методов управления проектами в рамках учебного процесса. Представлены результаты применения гибкой методологии Scrum при реализации программного проекта.
Ключевые слова: управление проектами, гибкие методы управления проектами, скрам, оценка программного проекта.
IT-отрасль является одной из самых динамичных и перспективных отраслей в экономике, спрос на профессионалов в этой сфере постоянно растет. Именно поэтому многие вузы выпускают бакалавров по направлениям подготовки, связанным с информационными технологиями. В ИГЭУ реализуется образовательная программа подготовки бакалавров по направлению 09.03.04 «Программная инженерия». Федеральный государственный образовательный стандарт по данному направлению подготовки предполагает наряду с производственно-технологической и аналитической деятельностью, умение вести организационно-управленческую и проектную деятельности.
В ИГЭУ в рамках учебного процесса был проведен эксперимент по реализации междисциплинарного проекта, связанного с разработкой интернет-приложения по заказу одного из предприятий г. Иваново. В данном проекте студенты должны были отработать не только навыки проектирования, разработки, тестирования и внедрения программного обеспечения, но и применения методов и инструментальных средств управления деятельностью и процессами жизненного цикла разработки программного обеспечения. При этом студенты должны были самостоятельно подобрать подходящие методы и инструменты, освоить их и применить в реализуемом проекте.
В управлении проектами по разработке программного обеспечения существует большое количество методов и моделей, среди которых каскадная модель (waterfall), V-модель, инкре-ментная модель, итеративная модель, спиральная модель, RAD, Scrum, Kanban, RUP, MSF, XP и др. [1].
Все многообразие инструментария управления разработкой программного обеспечения (ПО) можно разделить на две группы: прогнозируемые (жесткие) и адаптивные (гибкие). Жесткие методы фокусируются на детальном планировании проекта, они применяются в детерминированных проектах с известными и стабильными требованиями. А гибкие методы используются в проектах с неизвестными или нестабильными требованиями, для которых характерна высокая степень неопределенности.
Так как реализуемый проект представлял собой небольшую задачу с плавающими требо-
ваниями, поэтому было решено применить гибкие методы разработки. Такое решение было обусловлено также и тем, что жесткие методы довольно хорошо освоены студентами за время учебного процесса, а современный конкурентный рынок требует применения гибкого подхода. Необходимо понимать также то, что рынок интернет-приложений является весьма специфичным и отличается от рынка крупных настольных приложений. Проекты по разработке таких приложений всегда реализуются в очень сжатые сроки, обычно 2-3 месяца, 6 месяцев для таких проектов слишком долгий срок. При этом требования к функционалу могут меняться очень быстро. Все это накладывает определенные требования на методы управления проектами по разработке подобных приложений.
Таким образом, для управления реализацией описываемого проекта были выбраны следующие инструменты. Для управления разработкой была выбрана методология Scrum, для определения функциональных требований к продукту был использован метод пользовательских историй, оценка временных затрат производилась с помощью методики Story Points, а для текущего планирования применялась техника покер планирования.
Scrum - это методология итеративной разработки, которая помогает решать различные технические и организационные проблемы создания ПО небольшими командами разработчиков [2]. В данном проекте приняли участие 6 человек, а проблемы носили не технический, а в большей степени организационный характер.
Согласно методологии Scrum процесс разработки ПО делится на итерации - спринты, затрагивающие все этапы от определения архитектуры ПО до тестирования. Длина спринта может варьироваться от 1 недели до 1 месяца. На спринт ставится конкретная задача реализации определенной части функционала продукта. В конце спринта команда разработки должна представить законченную версию программы, готовую к использованию. Цели спринта не могут быть изменены в процессе работы, а время спринта не может быть увеличено. Для данного проекта была установлена длина спринта в одну неделю, разработка была осуществлена за 4 спринта, 2 недели в начале ушло на организационные вопросы и выяснение
№04(30)/2016
Известия ВУЗов. Серия «Экономика, финансы и управление производством»
требований заказчика и еще две в конце - на завершение проекта, оформление и подписание различной документации. Таким образом, проект был реализован за 2 месяца.
Скрам-команда состоит из скрам-мастера, владельца продукта и команды разработки. Скрам-мастер, по сути, является куратором над остальными членами команды. Именно он отвечает за успех кооперации внутри скрам-команды и за выполнение правил скрама, помогает поддерживать эффективность и самоорганизацию команды, поддерживает выполнение своих ролей участниками, контролирует проведение мероприятий.
Владелец продукта - это, фактически, системный аналитик, его главная задача - разработка списка функциональных требований -бэклога продукта. Обсуждением бэклога занимается вся команда, но владелец продукта имеет решающий голос в спорных ситуациях. Он также отвечает за связь с заказчиком и объяснение его желаний команде разработки.
Команда разработки может состоять из 3-9 профессионалов, умеющих работать на всех слоях архитектуры приложения: от бизнес-логики до дизайна, и способных самостоятельно создать законченный программный продукт в течение спринта. Команда не имеет лидера, а её члены должны самостоятельно распределять роли (проектировщик, программист, тести-ровщик, верстальщик) и быть взаимозаменяемы. Обязательным условием эффективного функционирования команды являются хорошо налаженные коммуникации.
В данном учебном проекте в качестве владельца продукта выступал представитель фирмы-заказчика, для которого разрабатывалось приложение, а в качестве скрам-мастера - преподаватель. Команда разработки состояла из 4-х студентов, обучающихся по направлению подготовки «Программная инженерия». Коммуникации в команде были налажены, поскольку все ее участники были знакомы ранее и имели опыт совместной работы, полученный в процессе обучения в университете.
В течение проекта команда регулярно собиралась на скрам-мероприятиях, к которым относятся планирование спринта, ежедневные скрамы, обзор спринта и ретроспектива спринта [3].
Планирование спринта - собрание продолжительностью до 8 часов, на котором командой решаются два главных вопроса: какой функционал из бэклога продукта будет реализован в течении спринта, и каким образом команда разработки собирается сделать это. В данном проекте каждое планирование спринта длилось в среднем 4 часа. При планировании первого спринта была поставлена цель создания базовой системы он-лайн заказа. Для ее осуществления участниками команды реализовывались
функции отображения каталога из базы данных, оформления заказа, функция оплаты заказа с помощью электронной платежной системы, дизайн интерфейса.
Ежедневные скрамы - это 15-минутные собрания в начале каждого рабочего дня, где члены команды делятся тем, что они сделали вчера, и договариваются о том, что будут делать сегодня ради достижения цели спринта.
С помощью ежедневных скрамов удалось добиться разделения труда в команде. Однако один из членов команды разработки взял на себя роль лидера, что привело к конфликту и задержкам в работе. Поэтому реализовать полностью планируемый функционал в первый спринт не удалось. Это было выявлено на ретроспективе спринта и устранено в последующих спринтах.
Мероприятия обзор спринта и ретроспектива проводились в конце каждой итерации и длились около 3 часов каждое. Во время обзора были подведены итоги спринта, была произведена демонстрация промежуточной версии программного продукта и передача его заказчику, обсуждались изменения в бэклоге, перспективы дальнейшей разработки, инциденты, произошедшие в процессе работы. На ретроспективе рассматривались организационные вопросы разработки и анализировался полученный опыт.
При спецификации функциональных требований к программному продукту команда использовала метод пользовательских историй, согласно которому требования к разрабатываемой системе формулируются одним предложением на деловом языке пользователя [4, 5]. Все функциональные требования, упорядоченные в порядке убывания важности и уровня детализации, были представлены в бэклоге продукта. Каждое требование было представлено в виде таблицы, на которой показано название функционала, затраты на разработку, показатели качества, условия реализации, текущий прогресс и прочие детали.
Как уже говорилось ранее, данный проект реализовывался в условиях плавающих требований со стороны заказчика. В таких условиях не возможно в начале проекта жестко определить время на разработку, поэтому временные затраты определялись на основе методики Story Points [6]. В качестве техники оценки сложности и относительного объема предстоящей работы использовалась техника покер планирования [7]. Оценка сложности задач, их объема и времени на реализацию выполнялась в начале каждого спринта и уточнялась на ретроспективе.
Для визуализации расхода времени и стимулирования его рационального планирования составлялся график рабочего времени членов команды, который показывает выполненные
задачи каждого члена команды и оставшееся рабочее время.
Таким образов, в результате реализации проекта было разработано работающее интернет-приложение, которое было передано заказчику. Участники проекта получили не только технический опыт по разработке приложений подобного типа, но также опыт организационной и проектной работы, работы в команде, который в дальнейшем смогут применить в своей профессиональной деятельности. Результаты проекта были освещены на XVII Всероссийской научно-практической конференции молодых ученых, студентов и аспирантов (21 апреля 2016, г. Ярославль) [8, 9, 10, 11].
В заключении хотелось бы отметить, что представляется интересным провести эксперимент по реализации проекта с использованием разных методов управления проектной деятельностью при прочих равных условиях и оценить результаты такого эксперимента.
Литература
1. Awad, M. A comparison between agile and traditional software development methodologies / M. Awad. - University of Western Australia, 2015.
2. Sutherland J. Scrum Guide / J. Sutherland, K. Schwaber. - Scrum.Org and ScrumInc, 2016.
3. Сазерленд, Дж. Scrum. Революционный метод управления проектами / Дж. Сазерленд - М.: Манн, Иванов и Фербер, 2016. - 288 с.
4. Cohn, M. User Stories Applied: For Agile Software Development. - Boston, MA: Addison-Wesley, 2014.
5. Behrence, P. A User Story Primer / P. Behrence. D. Leffingwell. - New Whitepaper, 2009.
6. Раева, Т.Д. Методы оценки времени при управлении проектами / Раева Т.Д. // Материалы Международной научно-технической конференции "Состояние и перспективы развития электро- и теплотехнологии" (XVIII Бенардосовские чтения): [в 4 т.] / Министерство образования и науки Российской Федерации, Ивановский государственный энергетический университет, Академия электротехнических наук Российской Федерации. - Иваново. - 2015. - Т.4: Современные инструменты менеджмента. - С. 57-59.
7. Zulkefli M. Review on Traditional and Agile Cost Estimation Success Factor in Software
Development Project / M. Zulkefli, S. Yahya, N. Arshad. // International Journal of New Computer Architectures and their Applications (IJNCAA), 2011. - P: 942-952.
8. Кузьмин М.Е. Управление программными проектами на основе гибкой методологии Скрам / М.Е. Кузьмин; научный руководитель Т.Д. Раева // Молодежь. Образование. Экономика. Сборник научных статей XVII Всероссийской научно-практической конференции молодых ученых, студентов и аспирантов. 21 апреля 2016 г. Ярославль. / Ярославский филиал РЭУ им. Г.В. Плеханова; Под науч. ред. М.В. Макаровой. -Ярославль: 2016. - С. 332-335.
9. Кравченко, И.В. Гибкое планирование проектов разработки ПО с помощью техники покер планирования \ И.В. Кравченко; научный руководитель Т.Д. Раева // Молодежь. Образование. Экономика. Сборник научных статей XVII Всероссийской научно-практической конференции молодых ученых, студентов и аспирантов. 21 апреля 2016 г. Ярославль. / Ярославский филиал РЭУ им. Г.В. Плеханова; Под науч. ред. М.В. Макаровой. - Ярославль: 2016. - С. 327329.
10. Губернаторова, А.Д. Гибкое управление проектами разработки ПО с помощью метода пользовательских историй / А.Д. Губер-наторова; научный руководитель Т.Д. Раева // Молодежь. Образование. Экономика. Сборник научных статей XVII Всероссийской научно-практической конференции молодых ученых, студентов и аспирантов. 21 апреля 2016 г. Ярославль. / Ярославский филиал РЭУ им. Г.В. Плеханова; Под науч. ред. М.В. Макаровой. - Ярославль: 2016. - С. 321 -324.
11. Куприянова, А.Д. Проблемы управления проектами при использовании гибкой методологии Scrum / А.Д. Куприянова; научный руководитель Т.Д. Раева // Молодежь. Образование. Экономика. Сборник научных статей XVII Всероссийской научно-практической конференции молодых ученых, студентов и аспирантов. 21 апреля 2016 г. Ярославль. / Ярославский филиал РЭУ им. Г.В. Плеханова; Под науч. ред. М.В. Макаровой. - Ярославль: 2016. - С. 336338.