УДК 351.862:004.62
Аннотация:
В статье представлена процессная модель управления процессами
проекта внедрения свободного программного обеспечения с открытым
исходным кодом. Приведены главные аспекты эффективности применения уже
разработанных моделей проектирования процессов проекта. Выделены
основные преимущества и перспективы использования классической
методологии проектирования разработки программного обеспечения по
методологии agile.
Ключевые слова:
Свободное программное обеспечение, открытый исходный код,
методологии проектирования, agile, waterfall, scrum.
174
Этапы внедрения СПО с ОИК можно видеть на процессной диаграмме
проекта. На рисунке 1 видно, что в самом начале проекта параллельно
происходит легализация лицензионных договоров и создание веб-сервиса
(включает организацию обмена данными). Эти мероприятия проводятся
однократно.
175
Рисунок 2. Вторая часть общей процессной диаграммы
176
Рисунок 3. Третья часть общей процессной диаграммы
177
5. Приемочное тестирование пользователя
6. Исправление любых проблем
7. Доставка готового продукта
В настоящем проекте разработки Waterfall каждый из них представляет
отдельный этап разработки программного обеспечения, и каждый этап обычно
заканчивается до того, как может начаться следующий. Между ними обычно
есть проверка достижения определѐнных требований, например, требования
должны быть рассмотрены и утверждены заказчиком до начала
проектирования.
Есть хорошие и плохие стороны каскадной модели. С одной стороны:
- Разработчики и заказчики договариваются о том, что будет доставлено в
начале жизненного цикла разработки. Это делает планирование и
проектирование более простым.
- Прогресс легче измерить, так как весь объем работ известен заранее.
- В процессе разработки возможно участие различных членов команды
или продолжение другой работы, в зависимости от активной фазы проекта.
Например, бизнес-аналитики могут узнать и задокументировать, что
необходимо сделать, пока разработчики работают над другими проектами.
Тестировщики могут подготовить тестовые сценарии из документации по
требованиям, пока идет кодирование.
- За исключением обзоров, согласований, статусных встреч и т. д.
Присутствие клиента не требуется строго после фазы требований.
- Поскольку проектирование завершается на раннем этапе жизненного
цикла разработки, этот подход пригоден для проектов, в которых должно быть
разработано несколько программных компонентов (иногда параллельно) для
интеграции с внешними системами.
- Наконец, программное обеспечение может быть разработано полностью
и более тщательно, на основе более полного понимания всех результатов
программного обеспечения. Это обеспечивает лучшую конструкцию
программного обеспечения с меньшей вероятностью «частичного эффекта» –
явления разработки, которое может возникнуть при определении частей кода и
последующем добавлении в приложение, где они могут подходить или не
соответствовать.
Вот некоторые проблемы, с которыми можно столкнуться, используя
метод чистого waterfall:
- Одной из областей, которая почти всегда терпит неудачу, является
эффективность требований. Сбор и документирование требований таким
образом, чтобы это имело смысл для клиента, часто является наиболее сложной
частью разработки программного обеспечения. Клиентов иногда пугают
подробности, и при таком подходе требуются конкретные детали,
предоставленные в начале проекта. Кроме того, клиенты не всегда могут
визуализировать приложение из документа требований. Каркасные модели и
макеты могут помочь, но нет никаких сомнений в том, что большинство
конечных пользователей испытывают определенные трудности в соединении
178
этих элементов с письменными требованиями, чтобы составить хорошее
представление о том, что они получат.
- Другим потенциальным недостатком разработки чистого waterfall
является возможность того, что клиент будет недоволен поставленным
программным продуктом. Поскольку все результаты основаны на
задокументированных требованиях, клиент может не увидеть, что будет
доставлено, пока он не будет почти закончен. К тому времени изменения могут
быть трудными (и дорогостоящими) для реализации [3].
Agile – это итеративный командный подход к разработке. Этот подход
подчеркивает быструю доставку приложения в полных функциональных
компонентах. Вместо того, чтобы создавать задачи и графики, все время
«упаковано» в фазы, называемые «спринты». Каждый спринт имеет
определенную продолжительность (обычно в неделях) с рабочим списком
результатов, запланированных в начале спринта. Конечные результаты имеют
приоритет по стоимости бизнеса, определяемой клиентом [4]. Если все
запланированные работы для спринта не могут быть завершены, работа
перераспределяется и информация используется для будущего планирования
спринта.
Когда работа завершена, она может быть рассмотрена и оценена
проектной командой и заказчиком с помощью ежедневных сборок и
демонстраций по завершении спринта. Agile опирается на очень высокий
уровень вовлеченности клиентов на протяжении всего проекта, но особенно во
время этих проверок.
Некоторые преимущества гибкого подхода легко увидеть:
- Заказчик имеет частые и ранние возможности увидеть выполняемую
работу, а также принимать решения и вносить изменения в течение всего
проекта разработки.
- Заказчик получает сильное чувство причастности к работе благодаря
обширной и непосредственной работе с командой проекта на протяжении всего
проекта.
- Если время выхода на рынок для конкретного приложения представляет
собой большую проблему, чем выпуск полного набора функций при первом
запуске, Agile может быстрее создать базовую версию рабочего программного
обеспечения, которая может быть построена в последовательных итерациях.
- Разработка часто более ориентирована на пользователя, вероятно,
является результатом более частого руководства со стороны клиента.
И, конечно же, есть некоторые недостатки:
- Очень высокая степень вовлеченности клиентов, хотя и полезна для
проекта, может создать проблемы для некоторых клиентов, которые просто
могут не иметь времени или интереса для такого типа участия.
- Agile работает лучше всего, когда члены команды разработчиков
полностью преданы проекту.
- Поскольку Agile фокусируется на доставке в определенные, возможно,
что некоторые предметы, поставленные для доставки, не будут выполнены в
отведенные сроки. Могут потребоваться дополнительные спринты (помимо
179
запланированных), что увеличит стоимость проекта. Кроме того, участие
клиентов часто приводит к дополнительным функциям, запрашиваемым на
протяжении всего проекта. Опять же, это может добавить к общему времени и
стоимости внедрения.
- Тесными рабочими отношениями в Agile-проекте легче всего управлять,
когда члены команды находятся в одном физическом пространстве, что не
всегда возможно. Однако существует множество способов решения этой
проблемы, например веб-камеры, инструменты для совместной работы и т. д.
- Итеративный характер гибкой разработки может привести к частому
рефакторингу, если весь объем системы не учитывается в первоначальной
архитектуре и дизайне. Без этого рефакторинга система может страдать от
снижения общего качества. Это становится более выраженным в
крупномасштабных реализациях или с системами, которые включают высокий
уровень интеграции [5].
Выводы. В работе на основе процессного подхода предложены основные
этапы внедрения свободного программного обеспечения с открытым исходным
кодом, как цифрового проекта. Также приведены основные критерии
эффективности использования различных моделей проектирования. Описаны
основные отличия традиционной методологии проектирования разработки
программного обеспечения от гибкой методологии. В дальнейшем будут
проведены расчеты с целью выяснения более эффективной с точки зрения
времени и затрат методологии проектирования затрат на организации
процессов и внедрение и цифрового проекта.
180
5. Майк Кон. Scrum: гибкая разработка ПО = Succeeding with Agile:
Software Development Using Scrum (Addison-Wesley Signature Series). — М.:
«Вильямс», 2011. — С. 576.
Nechaev Artur
Student of the first course of the magistracy,
Department ―Big Data Analytics and Video Analysis Methods‖
Engineering School of Information Technologies,
Telecommunications and Control Systems,
Ural Federal University named after the first President of Russia B.N. Yeltsin,
e-mail: holdem-10@bk.ru,
Ekaterinburg, Russian Federation
Maximus Daliant,
Post-graduate student,
Department of Economic Cybernetics,
Donetsk National Technical University,
e-mail: daliant@mail.ru
Donetsk, DPR
Medvedeva Marina
Associate Professor, chief researcher, candidate of physical and mathematical
Sciences, Department of System Analysis and Decision Making,
Ural Federal University named after the first President of Russia Boris Yeltsin
e-mail: marmed55@yandex.ru
Ekaterinburg, Russia
Abstracts:
The article discusses the main stages of the introduction of free open source
software. The main aspects of the effectiveness of the application of different models
are given. The main differences between the classical methodology of designing
software development and the agile methodology are described.
Keywords:
Free software, open source, projecting methodologies, agile, waterfall, scrum.
181