Сегодня наиболее распространенными вариантами методологии программной разработки являются Waterfall (каскадная разработка) и Agile (гибкая разработка). Waterfall ориентирован на детальное предварительное планирование и последовательный переход к каждому этапу разработки. Agile предполагает создание проекта в несколько циклов (спринтов) с динамическим формированием требований.