Ответ
Waterfall — это линейный подход к разработке с четкими этапами (анализ, дизайн, разработка, тестирование, внедрение), где переход к следующему этапу возможен только после завершения предыдущего. Подходит для проектов с фиксированными требованиями.
Scrum — это гибкий итеративный подход, где работа разбита на спринты (обычно 2–4 недели). Требования могут меняться, а команда регулярно демонстрирует инкремент продукта. Основан на принципах Agile: адаптивность, самоорганизация, частые релизы.
Пример:
В Waterfall ТЗ фиксируется в начале, а в Scrum Product Backlog постоянно обновляется.
# Waterfall: последовательные этапы
def waterfall():
gather_requirements()
design()
develop()
test()
deploy()
# Scrum: итерации (спринты)
def scrum():
while not product_done:
plan_sprint()
develop_in_sprint()
review()
retrospective()
Выбор зависит от проекта: Waterfall для стабильных требований, Scrum — для динамичных.