Найти тему

Основные методологии в IT?

Оглавление

Привет Друзья! Для того чтоб разработать качественное программное обеспечение, нужно следовать некой последовательности, стратегии и принципам. Все данные пункты можно назвать одним словом - Методология.

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

Я хочу выделить 3 основных методологии, это:

Основные методологии разработки ПО
Основные методологии разработки ПО

Водопадная модель

Водопадная модель - каждый этап разработки последовательного цикла продолжает предыдущий. По факту это наш Жизненный цикл разработки программного продукта – SDLC, который мы обсуждали с вами ранее.

Она включает в себя следующие этапы: требования-проектирование-разработка-тестирование-релиз-поддержка

Водопадная модель
Водопадная модель

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

Плюсы данной методологии:

+ полное документирование каждого этапа, всегда доступно требование;

+возможность распланировать сроки и затраты;

Минусы данной методологии:

- необходимо утвердить полный объем требований к системе, в случае необходимости внести новые требования, мы не можем вернуться к старым и нам необходимо переделать все заново;

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

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

V-образная модель

V-образная модель
V-образная модель

V-образная модель - это модифицированная версия каскадной – тестирование начинается со стадии написания требований и происходит на каждом этапе.

Плюсы данной методологии:

+есть строгие этапы;

+раннее тестирование;

+промежуточное тестирование;

Минусы данной методологии:

-отсутствие гибкости модели;

-отсутствие возможности внесения динамических изменений;

-написание кода происходит только в середине процесса;

Когда использовать V-модель?

  • Если требуется тщательное тестирование продукта;
  • Для малых и средних проектов, где требования четко определены и фиксированы;
  • В условиях доступности инженеров необходимой квалификации, особенно тестировщиков;

Итерационная модель

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

Итерация - разработка отдельного компонента системы, после чего добавляется к ранее разработанным компонентам.

Минусы данной методологии:

+раннее создание работающего ПО;

+очень гибкие, готовы к изменениям на любом этапе разработки;

Минусы данной методологии:

-каждая фаза самостоятельна;

-не все требования известны;

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

Agile – набор методов и принципов гибкого управления проектами

Выделяют 4 основных принципа Agile методологии:

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

- работающий продукт важнее исчерпывающей документации (большая часть времени должна уходить на функционал продукта, а не на документацию);

- сотрудничество с заказчиком важнее согласований условий контракта (не должно быть избыточной привязанности с контрактом, который регулирует наши взаимоотношения с заказчиком);

- готовность к изменениям важнее следования первоначальному плану (мы в любом случае будем вносить изменения);

Основная составляющая данной методологии это - Спринт (итерация) – временной отрезок в 2-4 недели, в течении которого у нас создается часть продукта, которая соответствует тем требованиям, которые мы берем в начале спринта. В начале каждого спринта мы набираем часть задач которые должны реализовать за этот промежуток времени,

Agile включает в себя две вариации: Kanban и Scrum

Kanban – это конвейерная схема. У нас имеется backlog, где хранятся задачи по приоритету и где они берутся и выполняются поочередно. Мы переносим задачу в разработку, тестируем ее и отправляем в релиз и пока она не будет выполнена, мы не берем следующую.

-5

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

Scrum– это так же конвейерная схема, но в ней возможно производство одновременно нескольких задач. У нас имеется общий backlog задач, мы выбрали на этот спринт 10 штук ( к примеру), они могут параллельно или последовательно, в зависимости от численности нашей команды разрабатываться, проходить через следующие этапы:

Анализ-разработка-разработка завершена-тестирование-релиз.

Пример процесса разработки ПО по Scrum на примере системы Jira
Пример процесса разработки ПО по Scrum на примере системы Jira

После "Анализа" задача попала в "Разработку", как только она завершилась она попадает в стадию "Разработка завершена", где ее тестируют, и если мы обнаружили баг, то мы возвращаем ее на этап "Разработки", если нет то отправляем в "Релиз". В конце спринта подводятся итоги и остатки переносятся на следующий спринт и так далее.

Допустим наш проект состоит из 10 блоков. На разработку каждого блока нам требуется 1месяц. Мы разрабатываем первый блок, запускаем его в релиз и наш пользователь уже может пользоваться данным продуктом, далее второй блок и т.д.

Теперь сравним все 3 методологии:

На разработку 1 блока уходит месяц, следовательно если мы используем схему Водопадной модели или V-образную, то наш продукт будет готов через 10 месяцев и только после этого у нас начнут появляться пользователи, отзывы и пожелания от них, и на исправление или если Мы захотим внести что-то новое, то на это уйдет очень много времени. А если мы используем Agile, то наш продукт начнет функционировать уже со второго месяца, и к концу разработки проекта, Мы будем иметь большое количество пользователей нашего продукта и иметь обратную связь от них, так же мы сможем в любой момент изменить направление нашего продукта, в ту которая будет нам выгоднее.

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