Каждая итерация повторяет одни и те же этапы (цикл разработки), однако модель не имеет строгих этапов, но абстрактно они могут выглядеть так:
— Планирование — определяются цели и задачи для текущей итерации, определяются требования, которые необходимо реализовать и сроки.
— Анализ требований и проектирование — проводится анализ новых требований или изменений в существующих, выполняется проектирование системы для их последующей реализации.
— Реализация — доработка существующей функциональности в продукте или разработка новой.
— Тестирование — проверка созданных в продукте изменений.
— Оценка — демонстрация работы всем заинтересованным сторонам или пользователям с целью получить обратную связь, в ходе которой могут быть собраны новые требования или изменения к существующим.
6.2.5. Agile Software Development
Agile Software Development — представляет собой набор принципов для разработки программного обеспечения, который поддерживает создание продуктов через регулярное, итерационное сотрудничество между самоорганизующимися кросс — функциональными командами. Популярный выбор команд разработки, следующих главной цели Agile — удовлетворение потребности клиента через раннюю и непрерывную поставку ценного программного обеспечения.
Особенности:
— При итерационном и инкрементальном подходе используют короткие итерации (циклы), в результате которых приносится новый инкремент в разрабатываемый продукт. Позволяет быстро адаптироваться к изменениям.
— Сотрудничество с клиентом — в процессе разработки активно участвует заказчик или клиент, что обеспечивает своевременную обратную связь и корректировку требований.
— Работающий продукт — главным приоритетом является доставка работающего программного обеспечения, которое можно регулярно и часто обновлять.
— Гибкость и адаптивность — допустимы изменения в проекте даже на поздних этапах разработки.
Преимущества:
— Улучшенное удовлетворение клиента — постоянная и частая обратная связь даёт больше удовлетворенности в конечном продукте.
— Повышенная адаптивность к изменениям — легкая и очень гибкая способность адаптироваться под новые тренды рынка или требования.
— Более быстрая доставка продукта — короткие итерации обеспечивают более ранний выход на рынок и ускоряют возврат средств.
— Повышение качества продукта — тестирование и оценку проводят в каждой итерации, что помогает обнаруживать и устранять ошибки на ранних стадиях.
Недостатки:
— Трудности с масштабированием — в больших организациях или проектах могут возникать трудности с использованием этой методологии.
— Неопределенность в планировании и бюджете — гибкость вызывает неопределенность сроков и объемов работ, что может вызвать непредвиденное удорожание продукта.
— Требование активного участия клиента — для эффективности требуется активное участие клиента, что не всегда возможно организовать в принципе или организовать качественно.
Этапы:
— Планирование — определение целей и задач для итерации на основе приоритетов и обратной связи от клиента.
— Разработка — в неё входят сразу проектирование, разработка приложения и выполнение тестирования.
— Демонстрация — показ получившегося в ходе итерации инкремента для получения обратной связи и корректировки дальнейших планов.
— Ретроспектива — мероприятие, при котором анализируют прошедшую итерацию. Это позволяет найти новые точки роста или возможностей, а также улучшить существующие процессы.
6.2.6. Extreme Programming
Extreme Programming — это гибкая методология разработки программного обеспечения. Ее цель: адаптируясь к изменениям требований, выпускать качественный продукт. Она основана на высоком уровне коммуникаций, простоте и лучших практиках разработки программного обеспечения.
Особенности:
— Тесное взаимодействие с клиентом — ему позволено активно участвовать в разработке, таким образом улучшая понимание требований и увеличивая удовлетворенность продуктом.
— Итерации — при разработке используют короткие итерации. Это позволяет быстрее адаптироваться к изменениям в требованиях и минимизировать риски выполнения ненужной работы.