Статья 'Управление разработкой и управление проектами: противопоставление или дополнение?' - журнал 'Программные системы и вычислительные методы' - NotaBene.ru
по
Меню журнала
> Архив номеров > Рубрики > О журнале > Авторы > О журнале > Требования к статьям > Редсовет > Редакция > Порядок рецензирования статей > Политика издания > Ретракция статей > Этические принципы > Политика открытого доступа > Оплата за публикации в открытом доступе > Online First Pre-Publication > Политика авторских прав и лицензий > Политика цифрового хранения публикации > Политика идентификации статей > Политика проверки на плагиат
Журналы индексируются
Реквизиты журнала

ГЛАВНАЯ > Вернуться к содержанию
Программные системы и вычислительные методы
Правильная ссылка на статью:

Управление разработкой и управление проектами: противопоставление или дополнение?

Тиханычев Олег Васильевич

ORCID: 0000-0003-4759-2931

кандидат технических наук

заместитель начальника отдела управления перспективных разработок, ГК "Техносерв"

111395, Россия, г. Москва, ул. Юности, 13

Tikhanychev Oleg Vasilyevich

PhD in Technical Science

Deputy Head of Department in the Office of Advanced Development, Technoserv Group 

111395, Russia, Moscow, Yunosti str., 13

tow65@yandex.ru
Другие публикации этого автора
 

 

DOI:

10.7256/2454-0714.2020.2.29603

Дата направления статьи в редакцию:

24-04-2019


Дата публикации:

15-07-2020


Аннотация: Предметом исследования является процесс разработки программного обеспечения автоматизированных систем управления. Объект исследования – средства организации разработки программного обеспечения. Общепризнанное перспективное направление повышения эффективности применения организационно-технических систем - автоматизация управления ими. Существенную долю эффективности любой сложной технической системы обеспечивает её программное обеспечение. В первую очередь это относится к прикладному программному обеспечению. Разработка прикладных программ сопряжена с определёнными трудностями, в первую очередь – организационного характера. Обобщённый анализ показал, что в мировой практике существует достаточно широкий спектр средств организации процесса разработки программ. Эти средства предлагается разделить на две крупные группы относительно отношения к процессу и степени детализации на «средства управления проектами» и «средства управления разработкой». Каждое из средств эффективно для тех или иных условий разработки программного обеспечения. В обзорной статье проведён анализ факторов, влияющих на эффективность применения того или иного средства, синтезированы предложения по целесообразности использования различных систем управления в разных условиях процесса разработки. Анализ показал, что для условий разработки прикладного программного обеспечения автоматизированных систем поддержки принятия решений наибольшую эффективность обеспечивает комплексное применение средств автоматизации управления процессами


Ключевые слова:

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

Abstract: The subject of this research is the process of developing software for automated control systems. The object of research is the means of organizing software development. A generally recognized promising direction for increasing the efficiency of the use of organizational and technical systems is the automation of their management. A significant share of the effectiveness of any complex technical system is provided by its software. This primarily applies to the application software. The development of application programs is fraught with certain difficulties, primarily of an organizational nature. The generalized analysis showed that in world practice there is a fairly wide range of tools for organizing the program development process. These tools are proposed to be divided into two large groups with respect to the attitude to the process and the degree of detail on "project management tools" and "development controls". Each of the tools is effective for certain conditions of software development. The review article analyzes the factors affecting the effectiveness of the use of a particular tool, synthesized proposals on the expediency of using various control systems in different conditions of the development process. The analysis showed that for the conditions of the development of applied software for automated decision support systems, the most effective is the integrated use of process control automation tools.


Keywords:

process management, development management, development process organization, software development technologies, software, automated systems, decision support, control automation, optimization of the development process, clarification of terminology

Введение

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

Для повышения эффективности разработки ПО в настоящее время используются различные методологии: «гибкие» Agile, «каскадные» Waterfall, их варианты [1].

Под «гибкими» технологиями принято понимать обобщающий термин для целого ряда подходов и практик, основанных на последовательной доработке разрабатываемого продукта в соответствии с постоянно уточняемыми требованиями заказчика. Сущность «гибкого» подхода - минимизация рисков путём сведения разработки к серии коротких циклов [2,3].

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

На практике указанные методологии применяются через систему прикладных технологий и набор реализующего их инструментария. В рамках этих технологий, как в программировании, так и в других областях деятельности, для повышения эффективности рабочих процессов в практике управления принято использовать различные средства автоматизации управления коллективами разработчиков (Team Foundation Server - TFS, Jira, Gemini, Savana, Redmine, Trac, TaskJuggler, Toyota Kanban, Microsoft Project, Wrike, Confluence).

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

В первом приближении, это кажется логичным: функционал данных систем похож – управление группами разработчиков, координация их деятельности с целью оптимизации достижения конечного результата. С другой стороны, такое приближение не совсем корректно, перечисленные системы имеют определённые различия и похожие черты, не в полной мере заменяя друг друга. Как представляется, проблема находится в области классификации систем управления технологическими процессами относительно их функционального назначения. Проблема является новой и, в сформулированной постановке, ранее не обсуждалась.

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

1.Особенности средств управления проектами и разработкой программ

Как показывает опыт применения средств автоматизации управления коллективами разработчиков, в том числе лично автором, при одинаковом функционале они могут различаться областью применения. Например, TFS или Jira применяются при управлении разработкой программных продуктов [7,8], Toyota Kanban – при разработке машиностроительной продукции [9]. А Microsoft Project, Wrike, Confluence или «Адванта» реализуют более широкий, но менее специализированный функционал и обеспечивают управление работой коллектива в целом. Конечно, есть отличия и внутри классов, например, между средствами управления разработкой программной продукцией и продукцией машиностроения. Наиболее заметное: при разработке промышленной продукции существенная роль возлагается на системы подбора по каталогам готовых деталей и типовых сборочных единиц, соответствующих требованиям к разрабатываемому изделию [10,11]. При управлении разработкой программного продукта эти системы не используются по крайней мере, пока. Но перечисленные отличия определяются подходами к требуемому результату, да и то только в текущей ситуации. С переходом к промышленным методам разработки программного обеспечения, внедрением фондов типовых алгоритмов и программ, могут измениться и указанные функции. Указанные факты подтверждают актуальность проблемы уточнения классификации средств управления коллективами разработчиков.

Сравнивая особенности вышеперечисленных систем, можно сделать вывод, что многие проблемы выбора для использования тех или иных систем возникают из-за используемой в настоящее время терминологии их описания. Все системы управления коллективами разработчиков, принято обозначать термином, сформулированным на основе прямого перевода английского понятия «project management» (управление проектами). Формально это правильно. В то же время, исходя из функционала, логичнее часть из них назвать не системами управления проектами, а системами управления разработкой (development management). В данном случае речь идёт о средствах типа TFS и Jira, обеспечивающих не только управление самим процессом разработки, но и реализацию части технологических функций: тестирование, сборка программного продукта и т.п. [12–14]. Уточнение терминологии позволит разделить и области применения инструментария, определив рациональность его выбора для реализации тех или иных функций и этапов жизненного цикла программной продукции [15]. Такой вывод позволяет сделать обобщение опыта автора по разработке программной продукции специального назначения в нескольких крупных проектах, включая разработку системы «Безопасный город», с использованием таких средств организации процесса как TFS, Jira и Confluence.

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

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

Как показывает анализ, внешне формы, функции и даже управляющие элементы средств управления разработкой похожи. Методы представления и управления списком задач, «доской» работ, виджеты отображения хода выполнения проекта аналогичны и в TFS, и в Jira, и в других системах управления разработкой ПО. Похожи между собой и экранные формы различных систем управления проектами, их основные функции. А вот между формами программ управления проектами и управления разработкой внешнее сходство встречается реже. И даже в случае сходства, компоненты существенно различаются по реакции и содержанию функций (рисунки 1–3).

Рис.1. Внешний вид форм панелей задач систем управления разработкой TFS (наверху) и Jira (нижний рисунок)

Рис.2. Внешний вид форм «досок» задач систем управления разработкой TFS (сверху) и Jira (нижний рисунок)

Рис.3. Внешний вид аналогичных форм средства управления проектами Wrike

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

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

- по уровню формализации задач исполнителям проекта;

- по возможности взаимодействия со сторонними системами;

- по наличию встроенных средств автоматизированного тестирования и сборки программ.

По факту, хотя и те, и другие системы управляют работой персонала, оптимизируя использование наличных ресурсов и времени, системы управления разработкой в большей степени обеспечивают управление разработчиками и технологическими процессами, а системы управления проектами – руководство коллективами и маркетинговыми процессами [16,17,18].

2.Функциональные особенности средств управления разработкой и управления проектами

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

- формирование требований, разработка концепции автоматизированной системы;

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

- разработка проектных решений по созданию системы в рамках эскизного и технического проектов;

- разработка опытного образца и рабочей конструкторской документации, приёмо-сдаточные испытания и сертификация системы;

- производство, ввод в действие;

- сопровождение эксплуатации системы.

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

Для реализации тех или иных функций типового цикла управления, на практике используется достаточно широкий перечень систем различного назначения: ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), BI-системами (Business Intelligence) графического представления данных, средствами командно-сетевого планирования (КСП-системы), PLM-систем (Product Lifecycle Management), систем автоматизированного тестирования (Automation Testing System – ATS), средствами интеграции приложений (EAI – Enterprise Application Integration) и других [19–21]. Наличие EAI является достаточно важным фактором, учитывая, что системы управления производством редко разрабатываются под конкретный проект, чаще используются готовые системы, имеющиеся в активе предприятия [22, 23].

С учётом стандартной структуры типового цикла управления и решаемых в нём задач различной направленности, часть функций этих систем пересекается. Вполне вероятна такая ситуация и для систем классов «управление проектами» и «управление разработкой». Причём, как в части пересечения отдельных функций с внешними системами, так и между собой.

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

Таблица 1 – Соответствие функционала систем управления процессами и разработкой возможностям других систем автоматизированного управления

Функция системы автоматизированного управления

В системах управления проектами

В системах управления разработкой

CRM-системы

+

-

PLM-системы

+

-

КСП-системы

+

+

BI-системы

+

+

ERP-системы

+

+

ATS-системы

-

+

EAI-средства

+

-

Компоненты базы знаний (набора готовых решений) проекта

+

-

Средства автоматизированной сборки программ

-

+

Анализ указанных различий позволил определить, пусть в первом приближении, возможность и целесообразность использования компонентов перечисленных систем в тех или иных ситуациях работы над проектами по разработке ПО (см. таблицу 2).

Таблица 2 – Возможности использования средств управления процессами и управления разработкой

Используемые средства

Параметры проектов

Неавтоматизи-рованное управление

Использование средств управления разработкой, производством (TFS, Jira и др.)

Использование систем управления проектами (Microsoft Project, Wrike, Confluence и др.)

Масштабность

Небольшие коллективы

+

-

--

Крупные коллективы в рамках одного предприятия

-

+

-

Совокупность коллективов разных предприятий

-

+

++

Степень формализо-ванности

Неформализованное описание цели и задач, неявно заданный результат

++

-

+

Предельно формализованная задача с чётко заданным результатом

-

++

+/-

Структура проекта

Линейная, разнородная, с преобладанием уникальных компонентов

+/-

+

-

Разветвлённая, с параллельным работами и повторяющимися элементами

-

+/-

++

В таблице:

++ означает высокую эффективность использования;

+ приемлемая эффективность;

- означает низкую эффективность применения технологии в данных условиях;

+/- эффективность применения варьируется в зависимости от особенностей использования.

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

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

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

3.О практическом использовании средств управления проектами

Анализ данных таблицы 2 позволяет сделать вывод о целесообразности уточнения классификации систем управления коллективами разработчиков и разделения их на:

- системы управления проектами (project management);

- системы управления разработкой (development management).

С учётом такой классификации, предполагается преимущественное использование средств управления проектами для крупных составных проектов (в первую очередь – слабоформализованные проекты с неявно выраженными задачами, преимущественно ветвящейся распараллеленной структуры и содержащие множество однотипных задач на разных «ветках», а также при разработке изделия несколькими слабосвязанными организационно коллективами), а средств управления разработкой – для автономных проектов. В ряде случаев может потребоваться комплексное использование указанных средств (рисунок 4).

Рис.4. Организация комплексного использования средств управления проектами и разработкой

Практика показала, что средства управления проектами и средства управления разработками – это эффективным инструменты как каждый в своей области, так и при совместном применении. Но, как всякие инструменты, они имеют границы применимости, в рамках которых они выдают ожидаемую эффективность. С другой стороны, при использовании вне указанных рамок (таблица 2), эти средства не просто показывают нулевой прирост эффективности, они мешают выполнению проекта, заставляя разработчиков выполнять лишнюю работу. Данный вывод сделан автором на основании практического опыта: когда в небольших коллективах на коротких проектах прямая постановка задач начинает дублироваться работой в TFS или Jira, аналитики, описав программисту процесс, вместо перехода к следующему этапу вынуждены повторно описывать уже выполняемые задачи. Что увеличивает затраты времени, практически не влияя на качество работы. И то, что результаты постановок задач фиксируются в электронной форме, служит слабой компенсацией потерянного времени.

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

Наиболее явное преимущество совместного использования средств управления проектами и управления разработкой и, пожалуй, одно из самых существенных – возможность создания тематических слоёв отображения состояния управляемого процесса. На профессиональном сленге разработчиков такие слои называют «стейкхолдерами» (stakeholders), от английского понятия, обозначающего причастных к процессу лиц или организаций, непосредственно заинтересованных в его результате. Организация таких слоёв позволит управленцам всех уровней оперативно оценивать реализацию требований относительно разрабатываемой системы или её свойств, удовлетворяющих их потребностям и ожиданиям (стандарты ISO/IEC 15288:2015, ISO/IEC 29148:2011). Повышая тем самым эффективность контроля процесса разработки, как одного их важнейших этапов цикла управления. И, соответственно, обеспечивая оперативное реагирование

Другие сайты издательства:
Официальный сайт издательства NotaBene / Aurora Group s.r.o.