Введение 5
1. Общие принципы и проблемы управления проектами 11
1.1. Управление проектами по разработке программного обеспечения 11
1.2. Сравнение организации деятельности команд разработчиков в традиционных и распределенных компаниях 16
1.3. Методологии разработки программного обеспечения 18
1.4. Управление рисками и качеством. Измерения в разработке программного обеспечения 22
1.5. Выводы по главе 1 30
2. Мультиагентный подход к управлению проектами в распределенных компаниях 32
2.1. Мультиагентный подход как организационное решение управленческих задач в распределенных компаниях 32
2.2. Возможность автоматизации ключевых процессов проектного управления в распределенных компаниях на базе мультиагентного подхода 35
2.3. Выводы по главе 2 41
3. Разработка прототипа управленческой подсистемы на базе интерфейсов и протоколов взаимодействия в агентной системе мониторинга проекта в распределенной организации 42
3.1. Методы моделирования корпоративных мультиагентных систем 42
3.2. Моделирование агентов и их взаимодействия для эффективного управления проектами в распределенных компаниях 51
3.3. Моделирование взаимодействия между объектами и субъектами мультиагентной системы 54
3.4. Разработка компонентов интерфейса для взаимодействия «агент-человек» 56
Заключение 64
Список литературы 66
Приложение 1. Таксономия проблем с требованиями 69
Приложение 2. Блок-схема действий «Агента сбора требований» 70
Приложение 3. Блок-схема действий «Агента планирования трудовых ресурсов» 71
Приложение 4. Блок-схема действий «Агента планирования коммуникаций» 72
Приложение 5. Блок-схема действий «Агента планирования анализа рисков» 73
Приложение 6. Пример кода реализации интерфейса прототипа Web- приложения 74
В начале XXI века с развитием информационных технологий, в частности, интернета, стала реальна такая модель формирования бизнес- организаций, как Виртуальная организация. На тот момент она была потенциально новой и подавала большие надежды. Подразумевалось, что виртуальная организация позволит повысить гибкость, предложить товар всему миру, при этом географический (физический) центр оказывал бы малое влияние на ее эффективность. В связи с высокой скоростью обмена информацией члены команды могли бы работать над проектом, будучи на большом расстоянии друг от друга. Все это поспособствовало образованию такого тренда, как виртуальная организация. Спустя некоторое время выяснилось, что создание и сопровождение деятельности таких организаций требует особых технологий, моделей управления, информационных платформ, которые на тот момент еще только зарождались. Популярность виртуальных компаний стала спадать, потому что расходы на такую модель организации превышали прежние, а перед руководителями и менеджерами встал вопрос - как эффективно управлять такой компанией.
Существует множество определений виртуальной компании, но ее суть в отсутствии четкой структуризации и большой структурно-функциональной гибкости, поэтому обозначим признаки, характерные для большинства таких компаний и отличающие их от традиционных [1].
Незначительная физическая структура - в отличие от традиционных компаний количество офисов, складов не так велико и распределено географически.
Доверие коммуникационным технологиям - информационные технологии являются необходимым элементом системы управления и используются для динамической связи людей и активов. Они лежат в основе виртуальной организации, служат инструментом, который позволяет выполнять работу. Но это не означает, что люди будут взаимодействовать только посредством интернета или других современных технологий. Они содействуют работе организаций, но не являются самой организацией.
Мобильность работы - физическое местоположение работника не важно, нет необходимости в сборе отдела и команды в одном помещении. Это значительно снижает расходы на аренду офисов, а члены команды могут сами выбирать себе удобное для работы место. Верным становится утверждение: офис там, где работают, а не наоборот.
Отсутствие физических границ и вовлечение - виртуальные организации сознательно не устанавливают четкие границы, это позволяет им вовлекать дистрибьютеров, поставщиков и клиентов в систему, где общий результат требует участие каждого из них - вне зависимости от того, где могут находиться участники общей деятельности.
Гибкость и ответная реакция - позволяет незамедлительно реагировать на изменения стратегии компании. Объединять различные элементы для достижения определенной цели и, если потребуется, производить быструю реструктуризацию. В связи с этим увеличивается скорость предоставления услуг.
Благодаря разнообразию информационных технологий сформировались несколько форм виртуальных организаций (рис. 1).
Рис. 1 Формы виртуальных организаций [2]
Рассмотрим распределенные организации. Они возникают в нескольких случаях, представленных ниже.
• Предприятие не нуждается в компактной физической структуре и результатом деятельности компании является реализованный проект или программа, которая может быть выполнена несколькими рабочими группами, не находящимися в одном офисе.
• Компании нуждаются в увеличении области действия, открываются региональные филиалы, бизнес расширяется и охватывает все большие территории.
• В работе компании используются удаленные структурные подразделения.
• Появляется необходимость в привлечении специалистов из других городов, регионов или стран.
Их отличительной особенностью является распределение капитала в различных географических точках. Одними из первых компаний, что использовали такую форму, были банки и международные торговые и трастовые компании. В настоящее время многие организации расположили свои офисы в разных уголках страны и обеспечивают связь между ними посредством современных коммуникационных технологий и общего информационного пространства.
Преимущества виртуального механизма координации проектной работы очевидны [2]:
• высокая скорость выполнения рыночного заказа;
• значительное снижение транзакционных издержек производственной деятельности;
• более эффективное взаимодействие с потребителем и более полное удовлетворение его потребностей;
• гибкая адаптация к изменениям окружающей деловой среды;
• снижение барьеров выхода на новые рынки и др.
Однако, оборотной стороной деятельности организаций такого типа является существенное увеличение организационных и функциональных рисков. Один из наиболее существенных - как эффективно управлять командами разработчиков и проектом в целом. Для эффективной работы распределённой организации в первую очередь необходимо единое рабочее и информационное пространство. Цель формирования такого организационного пространства - максимально автоматизировать систему бизнес-процессов, а также управление ими и упростить пользователю контроль всех этапов ее реализации.
Отметим, что, используя современные мультиагентные технологии, можно автоматизировать некоторые управленческие и технико-функциональные процессы, создав систему интеллектуальных агентов, которые будут отслеживать все этапы выполняемого процесса в критических точках, принимать стандартные решения или передавать полномочия человеку при возникновении нестандартных или угрожающих ситуаций. Важным аспектом здесь является разработать компоненты адаптированной системы интерфейсов взаимодействия «агент-агент» и «агент-человек», учитывая закономерности мышления и поведения. Под интерфейсом мы будем подразумевать точки взаимодействия активных элементов мультиагентной системы {«человек-агент», «агент-агент», «агент-человек»}, в которых происходят взаимодействия объектов и субъектов по определенным правилам на базе согласованных алгоритмов, протоколов и стандартов. Отметим также, что интерфейс может быть записан в виде соответствующего кода (программный интерфейс), реализован в виде набора программных и технических средств (программно-аппаратный интерфейс), а также в виде пользовательского интерфейса (человеко-машинный интерфейс). Указанный аспект обуславливает актуальность исследуемой проблемы.
Разработка компонентов системы интерфейсов является частью проектной работы, выполненной совместно с Веселовой Дианой, в соответствии с известными методологиями проведения совместных работ . Нами были определены цели и задачи проекта, сформированы требования к разрабатываемой концептуально-функциональной модели, составлен план работ (построена диаграмма Г антта), в ходе работы проводились совместные встречи для обсуждения текущих результатов. Все проектные задачи были поделены на две группы в соответствии с темами ВКР, которые указаны в названии работ. Проект заключается в разработке прототипа (концептуально-функционального описания и архитектуры) Web-приложения, являющегося мониторинговой системой для эффективного управления проектами в распределенных компаниях.
Целью данной работы является разработка компонентов системы интерфейсов для эффективного управления проектами в распределенных компаниях. Модели, алгоритмы и блок-схемы, полученные в результате работы, впоследствии можно будет использовать для реализации систем подобного типа.
Для достижения поставленной цели необходимо решить следующие задачи:
• проанализировать общие принципы управления программными проектами и выделить ключевые управленческие моменты, характерные для распределенных компаний;
• сравнить организацию деятельности команд разработчиков в традиционных и распределенных компаниях и выбрать методологии разработки программного обеспечения, опираясь на выявленные особенности;
• рассмотреть мультиагентный подход как организационное решение в распределенных компаниях;
• выявить ключевые процессы управления проектами в распределенных компаниях, наиболее подверженные рискам, и которые можно автоматизировать;
• разработать алгоритмы действий для агентов, автоматизирующие эти процессы;
• проанализировать модели, протоколы и стандарты взаимодействия в мультиагентных системах и разработать интерфейсы взаимодействия «агент-агент» и «агент-человек»;
• разработать и внедрить компоненты системы интерфейсов в Web- приложение.
В настоящее время распределенная компания - относительно новая форма организации. Как было отмечено ранее, таким компаниям необходимое единое информационное рабочее пространство, которое позволило бы менеджерам эффективно управлять проектами. Стоит отметить, что менеджеры проектов распределенных организаций проделывают колоссальную работу по мониторингу и анализу.
Мы с Веселовой Дианой в совместном проекте по созданию концептуально-функциональной модели мониторинговой системы, позволяющей разгрузить менеджеров проектов и повысить эффективность контроля реализации программного проекта в распределенной компании, выбрали мультиагентный подход. Благодаря мультиагентным технологиям, нам удалось создать систему из нескольких агентов, которые автоматизируют некоторые ключевые управленческие процессы. Использование агентных систем наилучшим образом отвечает вопросам управления и организации эффективного мониторинга проекта в компаниях такого типа.
В нашем случае показано, что особую роль играют интерфейсы взаимодействия между активными объектами и субъектами системы. Разработка компонентов системы интерфейсов была основной целью данной работы. Мы рассматривали взаимодействие менеджеров, команды разработчиков и заинтересованных сторон с интеллектуальными агентами. Речь шла не только о привычных пользовательских интерфейсах, но и интерфейсах, в которых взаимодействие происходит по определенным правилам на базе согласованных алгоритмов, протоколов и стандартов (например, программный и программно-аппаратный интерфейс).
Для достижения поставленной цели были проанализированы общие принципы управления программными проектами и выделены ключевые управленческие моменты, характерные для распределенных компаний. Было проведено сравнение организации деятельности команд разработчиков в традиционных и распределенных компаниях. На основе полученных знаний мы выбрали методологию разработки программного обеспечения, наиболее подходящую таким видам организаций.
Были изучены теоретические аспекты мультиагентных технологий в применении к распределенным компаниям, помимо этого были выделены ключевые процессы управления, наиболее подверженные рискам в распределенных организациях. Нами были разработаны алгоритмы действия интеллектуальных агентов, автоматизирующие некоторые такие процессы. Проанализировав модели, протоколы и стандарты взаимодействия в мультиагентных системах, мы создали модель взаимодействия агентов, разработали компоненты системы интерфейсов, отвечающие за взаимодействие типа «агент-агент» и «агент-человек». Завершающим шагом было внедрение созданных компонентов системы интерфейсов в прототип мониторинговой системы, разработанной совместно с Веселовой Дианой.
Подводя итог всей работы, хочется отметить, что разработанный нами прототип мониторинговой системы можно использовать для создания реального Web-приложения по эффективному управлению проектами в распределенных компаниях.
1. Уорнер М., Витцель М. Виртуальные организации. Новые формы ведения бизнеса в XXI веке/ Пер. с англ. Ю. Леонов - М.: Добрая книга, 2005 - 296с.
2. Коблова Ю. А. Виртуальные организации как новейшая форма сетевых структур// Вестник Саратовского государственного социально-экономического университета - 2013. - №3 - С.18-21.
3. Трофимов В.В., Горбунов И.Г. Методологические основы управления проектами виртуальных предприятий - СПб.: Изд-во СЗТУ, 2007. - 174 с.
4. Bourque P., Fairley R.E., eds. Guide to the Software Engineering Body of Knowledge, Version 3.0/ IEEE Computer Society, 2014 - 346 p.
5. Project Management Institute, A Guide to the Project Management Body of Knowledge (PMBOK® Guide) - Newtown Square, Pa: Project Management Institute, 2013 - 589 p.
6. Хусаинова А.Т. Понятие, сильные и слабые стороны виртуальных команд и их отличие от традиционных команд проекта //Вестник КазНУ. Серия экономическая - 2015. - Vol. 2, №108 - С.165-168
7. Zofi Y. A manager's guide to virtual teams - New York, NY: American Management Association, 2011 - 272 p.
8. Trautsch B. R. Managing virtual project teams - San Francisco, California - 2003 - 50 p.
9. Boehm B. W. A Spiral Model of Software Development and Enhancement // IEEE Computer, IEEE - 1988. - Vol. 21, №5 - pp.61-72
10. Фатрелл Р. Т., Шафер Д. Ф., Шафер Л. И. Управление программными проектами: достижение оптимального качества при минимуме затрат/ Пер. с англ. М.: Издательский дом «Вильямс», 2004 - 1136 с.
11. Awad M. A. A comparison between agile and traditional software development methodologies// School of Computer Science and software Engineering, The University of Western Australia. - 2005.
12. Beck K., Embracing change with Extreme Programming// IEEE Computer, IEEE - 1989. - Vol. 32, №10 - pp.70-77
13. Williams L. A. The XP Programmer: The Few-Minutes Programmer// IEEE Software - 2003. - Vol. 20, №3 - pp.16-20
14. Schwaber K., Beedle M. Agile Software Development with Scrum - Upper Saddle River, NJ: Prentice-Hall, 2001 - 158 p.
15. Pozgaj Z., Sertic H. Strategies for Successful Software Development Project Preparation// Proceedings of the 26th International Conference on Information Technology Interfaces ITI 2004 - Cavtat: IEEE - 2004. - pp. 679-684
...