Для разработки программного продукта существует несколько методологий. Нельзя опираться на универсальный набор условий для всех ситуаций, при выборе той или иной методологии. В каждом отдельном случае необходимо ориентироваться на специфику своего проекта. Также на выбор влияет бюджет проекта и сроки реализации конечного продукта.
В нашей работе мы используем различные методологии, применяя их коллаборацию. Можно сказать, что мы используем гибкий подход к разработке ПО — Agile. И это, скорее, действительно подход, а не отдельная методология, потому что внутри проектов, задач, на разных этапах мы применяем различные модели такие как:
Waterfall (каскадная модель или «водопад»)

Каскадная модель дает отличный результат в небольших проектах/задачах, с четко и заранее определенными требованиями, и способами их реализации. Нет возможности сделать шаг назад, тестирование начинается только после того, как разработка завершена или почти завершена. Продукты, разработанные по данной модели, могут иметь недочеты (список требований нельзя скорректировать в любой момент), о которых становится известно лишь в конце из-за строгой последовательности действий. Внесение изменений возможно, после завершения всего проекта.
«Scrum»
Методология Scrum-разработки подразумевает создание продукта с новыми возможностями для бизнеса, которые имеют максимальный приоритет. Это делается за определенное количество фиксированных по длительности небольших промежутков времени (циклов), которые называют спринтами (sprints).
Каждый спринт начинается с планирования. Вся команда, включая владельца продукта, Scrum-мастера и разработчиков, изучает бэклог продукта. На его основе составляются задачи, которые необходимо выполнить в пределах одного цикла. Так формируется бэклог конкретного спринта.
После этого команда проводит оценку предстоящей работы, подбирает продолжительность цикла (обычно около двух недель).
Соблюдение сроков спринта организует рабочий процесс, задает ритм и помогает разработчикам распределять время. Цикл считается завершенным, когда команда смогла создать в установленное время продукт, удовлетворяющий клиента и готовый к использованию.
«Incremental Model» (инкрементная модель)
Инкрементная модель в целом похожа на каскадную, однако, все этапы проходят несколько раз в течение жизненного цикла ПО. Получается своеобразный «мультиводопад».
Имеется в виду, что процесс создания программного продукта со множеством задуманных функций начинается с воплощения в жизнь базовой версии. Проходят фазы определения требований, проектирования, кодирования, тестирования и внедрения. Процедура разработки по инкрементной модели предполагает выпуск на первом большом этапе продукта в базовой функциональности, а затем уже последовательное добавление новых функций, так называемых «инкрементов». Процесс продолжается до тех пор, пока не будет создана полная система.

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