Выбрать главу

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

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

— Анализ требований и проектирование — проводится анализ новых требований или изменений в существующих, выполняется проектирование системы для их последующей реализации.

— Реализация — доработка существующей функциональности в продукте или разработка новой.

— Тестирование — проверка созданных в продукте изменений.

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

6.2.5. Agile Software Development

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

Особенности:

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

— Сотрудничество с клиентом — в процессе разработки активно участвует заказчик или клиент, что обеспечивает своевременную обратную связь и корректировку требований.

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

— Гибкость и адаптивность — допустимы изменения в проекте даже на поздних этапах разработки.

Преимущества:

— Улучшенное удовлетворение клиента — постоянная и частая обратная связь даёт больше удовлетворенности в конечном продукте.

— Повышенная адаптивность к изменениям — легкая и очень гибкая способность адаптироваться под новые тренды рынка или требования.

— Более быстрая доставка продукта — короткие итерации обеспечивают более ранний выход на рынок и ускоряют возврат средств.

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

Недостатки:

— Трудности с масштабированием — в больших организациях или проектах могут возникать трудности с использованием этой методологии.

— Неопределенность в планировании и бюджете — гибкость вызывает неопределенность сроков и объемов работ, что может вызвать непредвиденное удорожание продукта.

— Требование активного участия клиента — для эффективности требуется активное участие клиента, что не всегда возможно организовать в принципе или организовать качественно.

Этапы:

— Планирование — определение целей и задач для итерации на основе приоритетов и обратной связи от клиента.

— Разработка — в неё входят сразу проектирование, разработка приложения и выполнение тестирования.

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

— Ретроспектива — мероприятие, при котором анализируют прошедшую итерацию. Это позволяет найти новые точки роста или возможностей, а также улучшить существующие процессы.

6.2.6. Extreme Programming

Extreme Programming — это гибкая методология разработки программного обеспечения. Ее цель: адаптируясь к изменениям требований, выпускать качественный продукт. Она основана на высоком уровне коммуникаций, простоте и лучших практиках разработки программного обеспечения.

Особенности:

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

— Итерации — при разработке используют короткие итерации. Это позволяет быстрее адаптироваться к изменениям в требованиях и минимизировать риски выполнения ненужной работы.