Что такое гибкая разработка программного обеспечения?

Прочитано: 406 раз(а)


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

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

Гибкая разработка программного обеспечения зародилась в начале 2000-х, когда группа разработчиков выпустила « Agile Manifesto ». В то время разработка программного обеспечения, как правило, была медленной, и проекты часто пропускали сроки разработки. Методология Agile была направлена ​​на решение этих проблем, продвигая то, что ее сторонники считали более эффективным и быстрым подходом к созданию и развертыванию программного обеспечения.

Как работает гибкая разработка программного обеспечения?

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

Итерация

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

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

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

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

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

Сотрудничество

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

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

Agile стремится избежать этих проблем, поощряя тесное сотрудничество между разработчиками и другими заинтересованными сторонами. Agile не заходит так далеко в этом отношении, как DevOps, который явно отдает приоритет тесному сотрудничеству между разработчиками и ИТ-командой и продвигает определенные процессы для обеспечения совместной работы, такие как CI / CD . Тем не менее, Agile делает акцент на сотрудничестве как на общем принципе, а гибкое мышление часто рассматривается как предшественник движения DevOps (которое возникло в конце 2010-х годов).

Каковы преимущества и недостатки гибкой разработки программного обеспечения?

Как отмечалось выше, основные преимущества гибкой разработки программного обеспечения включают следующее:

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

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

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

гибкая разработка программного обеспечения



Новости партнеров