Для того чтобы сделать процесс разработки эффективным, необходимо правильно выстроить процессы управления проектом. Существует несколько способов управления проектами. Самыми популярными, являются Scrum и Waterfall, подразумевающие совершенно разные подходы: гибкость vs строгость. Выбор системы управления зависит от многих аспектов, таких как: цели и специфика проекта, величина бюджета, предпочтения заказчика и так далее. В этой статье, мы разберем что же лучше на практике: гибкость управления или строгая последовательность действий?
Scrum - гибкое управление проектами
В scrum процесс разработки разбит на отрезки, которые именуются итерациями (спринтами). После каждой итерации, заказчик может видеть в качестве результата - работоспособный продукт. При разработке способом Scrum, заказчик может оперативно оценивать результат и вносить свои правки на каждой итерации.
Риск “недопонимания” заказчика и команды минимизирован, потому что заказчик имеет возможность наблюдать за процессом разработки, корректировать проект, вносить функциональные изменений и тестировать его на каждой итерации. Это снижает и временные риски, так как заказчик имеет возможность влиять на длительность жизненного цикла разработки проекта.
Финансовые риски практически сведены к нулю, потому что заказчик не платит сразу за разработку целого проекта или этапа, а лишь оплачивает результат каждой итерации.
В целом, Scrum чаще всего подходит проектам, для которых сложно сразу оценить сроки и масштаб работ и для тех, которым часто приходиться адаптироваться под изменения рынка.
Waterfall - строгая последовательность
Концепция Waterfall, построена на основе каскадной модели управления. Процесс разработки похож на поток, где все этапы идут строго один за другим.
Сам процесс обычно, делится на 5 этапов:
Аналитика
Сначала, команда собирает ряд требований к будущему ПО. Затем занимается разработкой технического задания, составляет график работ и прорабатывает возможные риски. Переход к следующему этапу только когда все требования прописаны и есть план. А в плане конкретные инструкции, как и что делать.
Проектирование
На этом этапе подготавливается прототип и дизайн-макеты.
Разработка
Программисты начинают писать код, руководствуясь четким ТЗ и требованиям к программному обеспечению.
Тестирование
На этом этапе, можно наблюдать главный минус модели “водопада”. При проведении тестирования есть вероятность обнаружить серьезные ошибки в коде.
Эксплуатация и поддержка
Проект готов, его передают заказчику поддерживают в те сроки, которые были оговорены ранее.
Для перехода на следующую фазу разработки, нужно успешно закончить предыдущую. Возврата к закрытым фазам не предусмотрено.
Каскадный способ, хорошо использовать для управления любыми проектами, будь то разработка сайта или разработка мобильного приложения. Главными условиями являются заранее известный бюджет и требования к будущему продукту.
Текст: Дмитрий Жидков