Использование гибких методологий в учебном проекте



Содержание

Введение

В современном мире все большее количество бизнес-процессов неразрывно связаны с использованием информационно-коммуникативных технологий. Трансформации подверглись как отдельные бизнес процессы (за счет автоматизации, оптимизации и реорганизации), так и целые отрасли (маркетинг, услуги для бизнеса и населения). Кроме того, развитие информационно-коммуникативных технологий привело к созданию новых направлений бизнеса, такие как мобильная разработка, системная интеграция и платежные системы.

В связи с этим особенный интерес представляет автоматизация и универсализация рабочих процессов через информационно-коммуникативные сети. Технологии позволяют связываться из любой точки мира, используя wi-fi соединение, быстро и эффективно обрабатывать входящую информацию и преодолевать географические барьеры быстрее, чем когда-либо ранее.

Поэтому  необходимость размещать всех сотрудников на территории одного физического пространства для организации рабочего процесса внутри фирмы неуклонно падает.Такие крупные корпорации, как IBM и Cisco,уже внедрили в своих подразделениях распределенные команды сотрудников. Это помогает снизить затраты на организации рабочих мест для сотрудников, а также эффективнее масштабироваться и создавать новую продукцию и продвигать ее. Также следует учесть, что большинстве организаций, находящиеся в одном офисе сотрудники все равно используют компьютерные устройства в качестве способа коммуникации, создания и обработки информации.

Современные технологии позволяют пойти еще дальше и не только передавать на аутсорсинг отдельные (зачастую  обслуживающие подразделения - службы поддержки клиентов и т.п.), но и организовывать распределенные команды, где каждый сотрудник работает обособленно и не привязан к какой-либо географической точке для осуществления своей профессиональной деятельности.

Такой тип работы зародился в 1980-е годы и назывался “телеработа” (англ. термин telecommuting) и продолжает развиваться в настоящее время. Удаленные сотрудники в наибольшей степени используются в IT, отделах продаж и финансовой сфере. Очевидно, что удаленная работа имеет потенциал роста и для других областей, и, в силу того, что развитие современных технологий относительно недавно по научным меркам позволило выстраивать столько процессов в распределенных командах, заслуживает более подробного изучения. Этим объясняется актуальность выбранной темы для исследования.

Объектом исследования является работа распределённой команды по созданию ПО.

Предметом исследования является адаптация гибких методологий, используемых обычно при работе с командой офисных работников.

Цель данной работы - проанализировать применимость гибких методологий для использования в распределенных командах при разработке ПО с помощью анализа теоретической части и применения полученных знаний на практическом учебном проекте с целью адаптации методик к реалиям проекта.

В рамках данной научной работы проводится исследование проектной работы распределенной команды. Одним из распространенных способов ведения проектов по разработке ПО являются гибкие методологии, позволяющие оперативно реагировать на изменения и увеличить эффективность (сроки, цена и качество) конечных результатов за счет более слаженной командной работы, чем в традиционных проектных командах. Научный интерес в данном случае представляет возможность адаптации гибких методологий к использованию в удаленных командах. В связи с этим будут рассмотрены основные принципы гибкой разработки в контексте применения в распределенной команде при разработке мобильного приложения:

Глава 1. Теоретическая часть

1.1 Управление проектами: краткий обзор

Проекты как вид деятельности применялись на протяжении всей истории человечества. Такие достижения, как построение Великой Китайской стены или египетских пирамид безусловно требовали определения требований, планирования сроков, мотивации и контроля, как и в современном управлении проектами. Если же рассматривать данный вид деятельности с научной точки зрения, то началом данной дисциплины можно считать работы классиков менеджмента - Г.Гантта, А.Файоля, Ф.Тейлора. Генри Гантт был американским инженером, первым предложившим использование горизонтальных диаграмм для календарного планирования работ. Диаграмма Гантта оказалась насколько эффективным инструментов, что в течение почти ста лет не видоизменялась при использовании в различных отраслях. Позже в 1990г. были добавлены связи - с целью описания зависимостей между различными задачами. А. Файоль был создателем классической теории управления, в рамках которой были определены основные функции менеджмента и заложена научная основа управления проектами. Иерархическая структура работ и многие современные инструменты для управления проектами были основаны на работах второго основоположника современного менеджмента - Ф.У. Тейлора.

Развитие проектного менеджмента носило эволюционный характер. В 1937г. была предпринята первая попытка по созданию матричной структуры для управления сложными проектами. Матричная структура характерна наличием межфункциональных рабочих групп, ориентированных на выполнение конкретных, ограниченных по времени задач. В отличие от традиционной модели управления в матричной структуре приветствуется децентрализация власти и горизонтальные связи при условии, что работающие в таком режиме сотрудники являются высококвалифицированными.

В 1950х годах появляются математические методы для управления проектами - метод критического пути CPM и метод оценки и анализа программ PERT, в 1966г. - система GERT (Graphical Evaluation and Review Technique), использующая новую генерацию сетевых моделей. Данный метод использовался для определения вероятностных оценок наступления событий и позволял планировать управление многовариативными проектами. В 1970х годах формировался системный подход к управлению проектами, развитие организационных структур управления проектами и определение системы ролей в ее рамках. 1980е годы можно считать стартом формирования управления проектами как профессиональной деятельности. В это время появляются существенные дополнения и новые области знаний. Появляется первый свод правил в рамках работы института PMI - Project Management Body Of Knowledge (Свод знаний по управлению проектами), в которой определены место, контроль и структура методов и средств управления проектами, их вклад в общее управление.

1990е годы характерны популяризацией методов управления проектами в различных отраслях и странах, в том числе и развивающихся. Начинается процесс стандарттизации методов управления проектами, появляются как международные, так и национальные стандарты в данной сфере деятельности.

Начиная с конца 1990х и по настоящее время в мире наблюдается рост числа организаций, применяющих гибкие методологии управления проектами (agile). Данный подход противопоставляется традиционному управлению проектами, поскольку делает акцент на командной работе, гибкости и приветствию изменений, короткие и частые итерации в ходе ведения проекта. Более подробно гибкие методологии будут рассмотрены в следующих разделах.

В данном контексте подпроектом следует понимать целенаправленное, заранее проработанное и запланированное создание или модернизация физических объектов, технологических процессов, технической и организационной документации для них, материальных, финансовых, трудовых и иных ресурсов, а также управленческих решений и мероприятий по их выполнению.

Управление проектами- это методология (также искусство) планирования и организации, а также координации трудовых, финансовых и материально-технических ресурсов при помощи современных методов, техники и технологии управления, направленная на достижение определенных результатов по составу и объему работ, стоимости, времени и качеству.

Признаки проекта:

- Наличие целей;

- Наличие изменений;

- Ограниченность во времени;

- Замкнутость;

- Специфичность организации.

При оценке эффективности управления традиционным проектом практикуется концепция треугольника управления проектом, то есть оценки по трем параметрам - качество, сроки и затраты. Проект считается успешно реализованным, если условия по данным трем параметрам в ходе проекта были соблюдены. Также при реализации проекта необходимо учитывать его организационную структуру - функциональную, проектную или матричную, поскольку каждая такая структура предлагает свои подходы к формированию команды. И, хотя основные стандарты и методологии в настоящее время сформировались, имеется достаточно обширный опыт лучших практик и стандартизации, в рамках реализации конкретных проектов менеджерам приходится адаптировать и видоизменять методологии, что приводит к созданию новых способов и практик использования тех или иных методологий.

Стоит отметить, что в условиях глобальной конкуренции и общего повышения требований конечных потребителей к качеству товаров или услуг, организациям приходится регулярно вносить изменения в выпускаемую продукцию и оказываемые услуги, а это значит, что значение проектного менеджмента становится еще более существенным. Управление проектами начинает применяться во все новых сферах деятельности и бизнес процессах, в том числе на предприятиях с процессно-ориентированной системой производства.

Однако количество проектов, завершенных неудачно, остается все еще значительным.

Среди реализованных проектов до сих пор часто встречаются превышения ограничений по сроку и утвержденному бюджету, а также недостижение прочих поставленных в рамках проекта целей. Далее рассмотрим наиболее распространенные методологии, в рамках которых ведется управление проектами.

1.2 Методология управления проектами: определения и структура (виды и способы как вести проекты)

Методология - система принципов и способов организации и построения теоретической и практической деятельности, а также учение об этой системе. В соответствии со стандартом PMBOK под методологией понимается система практик, методов, процедур и правил, используемых в определенной сфере деятельности.

Таким образом, приходится констатировать, что, с одной стороны, определение методологии обширно и многозначно, с другой - несколько сужено, доведено до набора практик.

Как считают В.М. Аньшина, О.Н. Ильина (1), на данном этапе развития общества, с учетом информатизации и глобализации мировой экономики, изменения роли науки в общесстве, методологию необходимо трактовать именно в организационно-деятельностной парадигме.

Методологией управления проектами в данном случая является совокупность подходов, методов и моделей управления проектами, программами и портфелями проектов, применяемых в профессиональных стандартах управления проектами, а также в различных научных и практических источниках. Стандарты управления проектами можно разделить на следующие группы:

— международные: стандарты, получившие международное значение в процессе своего развития или предназначенные для международного использования;

— национальные: созданные для применения внутри одной страны или получившие общенациональный статус в процессе своего развития;

— общественные: подготовленные и принятые сообществом специалистов;

— частные: комплексы знаний, пропагандируемые для свободного использования частными лицами, компаниями или учреждениями;

— корпоративные: разработанные для применения внутри одной компании или внутри группы родственных компаний.

Среди стандартов по управлению проектами наиболее распространенными являются следующие:

1. Project Management Body of Knowledge (PMBOK),подготовленный  американскиминститутомуправленияпроектами (Project Management Institute — PMI).Данный стандарт регулярно обновляется, в частности, сейчас идет работа над шестой его версией. В основе данного стандарта лежит процессный подход к управлению проектами, формализованные принципы и подходы, подходящие для управления проектами в большинстве случаев. Детально описываются десять областей знаний, связанных с управлением проектами:

1. Управление интеграцией проекта

2. Управление содержанием проекта

3. Управление сроками проекта4. Управление стоимостью проекта

5.  Управление качеством проекта6. Управление человеческими ресурсами проекта7. Управление коммуникациями проекта.

8. Управление рисками проекта.

9. Управление закупкам проекта10. Управление заинтересованными сторонами

Данная методология является самой проработанной и поддерживается системой управления проектами Microsoft Project, однако является большой и громоздкой, в некоторых случаях сложной для внедрения.

2.МетодологияIW URM (Unique Reliable Method) - ориентирована на гарантированное достижение успеха и строится с учетом того, чтобы заявленные цели клиента были достигнуты. Имеет набор различных технологий, документов и процедур для различных проектов.

3.Процесс управления проектамиTenStep - это методология, которая позволяет при помощи пошагового подхода успешно выполнять проекты практически любого плана. Использует также свои набор инструментов и шаблоны документов.

4. МетодологияP2M(A Guidebook of Project and Program Management for Enterprise Innovation) ориентирована на улучшение организации, а не на продукт или процессы, и представляет собой систему знаний. Ведение проектов создает новый дополнительный опыт и помогает организации на его основе реализовывать последующие проекты. Важными аспектами методологии являются создание ценности в итоге реализации проекта и признается наличие неопределенности на всех его стадиях. Внешние обстоятельства выступают также как одно из ограничений проекта, что отличает данную методологию от стандартов PMBOK. Вместе с тем, данный стандарт менее популярен и содержит меньше информации о способах применения на конкурентных примерах.

5. ISO 21500 (...5…) - это стандарт, практически копирующий процессы PMBOK. Отличия заключаются лишь в четырех процессах, раскрытых в ISO 21500 иначе: извлечение уроков, определение оргструктуры, управление коммуникаций и управление ресурсами. ISO удобен тем, что сочетается со стандартами качества ISO и является распространенным и перспективным стандартом управления проектами, однако неудобен для малых проектов и имеет сравнительно мало доступной в свободном виде документации.

6. PRINCE2 (PRojects IN Controlled Environments 2) - это методология, включающая в себя три важные составляющие - планирование, управление изменениями и управление качеством. Каждый процесс в данном подходе состоит из стадий, подстадий и связей. К отличительным чертам данной методологии можно отнести то, что в планировании используется PBS (Product Breakdown Structure) вместо классического WBS. Задачей PBS является разбиение целевого продукта на подпродукты, которые не должны пересекаться. При этом не все компоненты имеют достаточное описание и имеются ограничения доступа к актуальной документации.

7. ASAP (Accelerated SAP) (ValueSAP) -методология, созданная компанией SAP AG для внедрения программного обеспечения. В данную методологию входят три компонента - ASAP карта, инструменты и R/3 сервис и обучение, что позволяет оптимизировать эффективность по срокам и качеству. Методология идеально подходит при внедрении продуктов SAP и достаточно подробно документирована, для остальных программных продуктов подходит в меньшей степени.

8. ГОСТ (Россия) -российский стандарт, являющийся адаптацией требований PMBOK для малых проектов. Имеет те же преимущества и недостатки, что и PMBOK, только в локальном масштабе.

В рамках рассматриваемых методологий стандарты объединяют в себе процессы управления, их взаимодействия и цели. Процессы управления включают в себя пять следующих категорий:

Далее рассмотрим специфику ведения проекта в контексте сферы информационных технологий. Будут выделены наиболее распространенные способы ведения интернет проектов, дано сравнение с традиционными моделями, понятия жизненного цикла и гибких методологий.

1.3 Управление проектами в сфере ИТ: особенности и отличия от классических моделей

В рамках анализа управления проектами в сфере информационных технологий целесообразно рассмотреть такое понятие, как технология. Довженко А.И. (37) дает ей следующее определение:

Технология - это объединение организационных мер, операций и приемов с целью изготовления или эксплуатации изделия, используя номинальное качество и оптимальные затраты в рамках текущего развития науки техники и общества в целом. Технология разработки программного обеспечения (ПО) представляет собой комплекс организационных мер, операций и приемов, направленных на разработку программных продуктов высокого качества в рамках определенного бюджета и в срок. Технологии включают методики, методологии, средства и процедуры разработки ПО.

Одной из важных задач методик является обеспечение процесса управления действиями заказчиков, пользователей, разработчиков и руководства в проекте для создания программного обеспечения. Для того, чтобы управление процессом разработки осуществлялось эффективно, требуется создание принципиально качественного подхода, который смог бы обеспечить:

Долженко А.И . (37) отмечает, что в чистом виде методологии гибкого программирования редко используется эффективными командами разработчиков. Как правило, успешные команды применяют полезные приемы и свойства сразу нескольких процессов, подстраивая их под конкретное представление команды о гибкости процесса разработки.

В контексте анализа методологий разработки программного обеспечения необходимо определить также такие понятия, как информационные технологии и модель жизненного цикла.

Информационные технологии (ИТ) представляют собой технологические процессы, использующие совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления (информационного продукта). В соответствии с современными представлениями ИТ должны не только поддерживать достижение текущих бизнес-целей организации, но и являться источником и движущей силой стратегических изменений бизнеса. Этим обусловлены исключительная важность эффективного управления информационными технологиями, возросшее внимание к развитию методов корпоративного управления информацией и ИТ-активами.

Согласно определению ЮНЕСКО, под интернет-технологиями подразумевается

комплекс взаимосвязанных, научных, технологических, инженерных дисциплин, изучающих методы эффективной организации труда людей, занятых обработкой и хранением информации; вычислительную технику и методы организации ее взаимодействия с людьми и производственным оборудованием, их практические приложения, а также связанные со всем этим социальные, экономические и культурные проблемы.

В рамках реализации интернет проектов есть свои особенности выполнения:

Принятие решений в таких IT-проектах характеризуется высоким уровнем риска и  требует от руководителя глубоких знаний методики проектного управления и понимания специфики ее применения в сфере ИТ.

В настоящее время среди IT-проектов наиболее распространены следующие группы проектных методологий:

В данных методологиях описывается применение метрик, технических стандартов, модели применяемых методик, модели группы проекта, а также модель жизненного цикла разработки проекта.

Методологии также описывают процесс создания и сопровождения IT-решений в видежизненного цикла информационной системы(ЖЦ ИС), то есть определяя его как некоторую последовательность этапов и процессов, при этом каждый этап содержит в себе состав и последовательность выполняемых работ, требования к итоговым результатам, роли и ответственность участников, методы и средства и другие факторы. Такое подробное определение жизненного цикла позволяет грамотно спланировать и организовать должным образом процесс коллективной разработки.

Модель жизненного цикла - это структура, в которой содержатся действия, задачи и процессы, осуществляемые в рамках разработки, функционирования и сопровождения программного продукта в течение всей жизни системы, от определения требований до завершения ее использования.

В зависимости от лежащей в основе методологии управления проектом разработки программного обеспечения модели жизненного цикла выбираются методологии для управления проектом. Рассмотрим более подробно каждую из них.

Водопадная модель - это последовательный метод разработки с четко определенными выходными продуктами на каждом этапе.

Главной особенностью водопадной модели является то, все этапы выполняются последовательно. Это означает, что новая фаза не может начаться, если не завершена предыдущая. Для этого необходимо четкое планирование в самом начале проекта, и это обычно связано с написанием больших технических заданий, и результат работающей программы можно наблюдать только в конце. В IT-проекте при использовании водопадной модели руководит менеджер проекта, он ставит задачи разработчикам, а также устанавливает бюджет и сроки. И на протяжении всего жизненного цикла команда проекта отчитывается по проделанной работе только перед менеджером. При этом коммуникации непосредственно с заказчиком отсутствуют. Если требования, определенные в начале проекта не меняются, то руководствоваться техническим заданием весьма целесообразно. Но сложность в том,  IT-проект практически нереально спроектировать таким образом, чтобы заранее предугадать все требования пользователей, его функционал и так далее. Помимо всего прочего, если что-то было упущено в работе проекта на его начальных стадиях, исправить это, находясь на завершающих этапах, очень сложно и требует дополнительных затрат.

  Обычные сроки реализации проекта по каскадной модели составляют 6-12 месяцев. Такие методики применимы только к простым программным системам, когда неопределенность в проекте минимальна и изменений в процессе проектирования не предполагается, а используемые технологические решения проверены и хорошо известны членам команды.

Рис 1. Водопадная модель управления проектом

Итеративная модель. Основной целью итеративной разработки является пошаговое создание системы, начиная с базовых функций системы и с постепенного добавления всех остальных до того, как вся система будет готова. В сравнении с водопадной, итеративная разработка придает большую гибкость в применении новых требований или изменений. Она также предоставляет возможность улучшений в последующих итерациях, основываясь на уроках, полученных в результате предыдущих этапов.

По сути это последовательность циклических итераций, где каждая из них состоит из четырех фаз: сбор требований, планирование, разработка и тестирование (Рис. 2)

Рис 2. Итеративная модель управления проектом

Спиральная модель. Развитием идеи итеративной разработки программного обеспечения является спиральная модель жизненного цикла. Её предложил Барри Боэм в 1986 году. Главная её идея - это минимизация рисков в начале каждой итерации путем повышения коммуникации внутри команды проекта. В начале каждой итерации определяют:

     После этого команда проекта начинает идентифицировать проблемы, которые могут возникнуть в течение итерации, а также причины их возникновения (нехватка информации, недостаточная квалификация сотрудников). Далее команда начинает разрабатывать стратегию осуществления проектных работ в рамках данной итерации с учетом обнаруженных рисков.

Каждая последующая итерация в спиральной модели добавляет степень завершенности общего проекта и соответственно обеспечивает более глубокий уровень детализации(Рис. 3):

Рис 3. Спиральная модель управления проектом

Как следует из рисунка 3, каждый виток (итерация) спирали реализует определенный функционал программного обеспечения. Каждая итерация содержит в себе те же этапы создания программного обеспечения, что и водопадная модель, а именно

анализ, проектирование, разработка и тестирование. Количество витков в спиральной модели не регламентировано и определяется разработчиками самостоятельно, в зависимости от приоритетов пользовательских или функциональных требований к программной системе. Средняя продолжительность проектов составляет 6-12 месяцев, а продолжительность каждой итерации - 3-6 мес.

Циклическая модель (Rational Unified Process, сокращённо  RUP)- это процесс разработки программного обеспечения, а именно частично упорядоченный набор шагов, которые нужно проделать для достижения цели; при разработке программного обеспечения цель состоит в формировании или расширении существующего программного продукта.

Рис 4. RUP - циклическая модель управления проектом

Rational Unified Process (RUP) является итеративной моделью разработки, которая содержит в себе четыре фазы: начало, исследование, построение и внедрение. Каждая фаза может быть разделена на этапы (итерации), в результате выполнения которых промежуточная версия. Прохождение через четыре основные фазы называется циклом разработки, в рамках которой каждый цикл должен завершаться генерацией версии системы.

Таким образом, RUP — итеративная методология, имеющая  очень широкий диапазон возможных решений в целях формализации процесса разработки. Ее преимущества:

Недостатки RUP: недостаточный уровень формализма, который может привести к несогласованности решений, принимаемых участниками проекта, к непродуктивным затратам ресурсов на переработку кода и на повторное решение типовых проблем.

Существует также и качественно иной подход к разработке программного обеспечения, помимо описанных выше методологий. Он характеризуется изменчивостью и большой ролью командной работы. Такой подход называетсяAgile и представляет собой семейство гибких методологий, которыеориентированы на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля.

Гибкая методология возникла из-за необходимости в таком процессе разработки приложений, который смог бы приспособиться к стремительно развивающейся эволюции интернета. Гибкая модель в некоторой степени является вариантом итеративного метода разработки, где выходные результаты предоставляются на каждом этапе. Главным её отличием является то, что срок предоставления выходных результатов существенно меньше и составляет недели, а не месяцы.

Современные интернет-технологии стремительно развиваются, структура рынка  и конкурентное окружение также значительно видоизменяются, требуется адаптация разрабатываемого продукта. Обучение специалистов работе в таких условиях со столь высокой неопределенностью является насущной необходимостью, и гибкие методологии заслуживают особого внимания в контексте данной исследовательской работы.

<