Waterfall

Waterfall — это модель для разработки продуктов, которая позволяет решать задачи по принципу последовательного плана без возврата на предыдущие этапы. Графически ее можно представить в виде непрерывного потока или водопада. Также модель Waterfall часто называют каскадной.

Принцип работы Waterfall изобрел ученый-информатик Уокер Ройс. Модель получила название в 1976 году благодаря Томасу Тейеру и Томасу Беллу. В первые годы существования каскадная модель использовалась в любых видах программного обеспечения. Сейчас она применяется в технических, финансовых и медицинских секторах. Уход от программного обеспечения произошел из-за появления системы Agile.

Принцип работы Waterfall

Каскадная модель разработки ПО состоит из последовательных циклов, порядок которых нельзя менять. Также нельзя начинать новый до завершения предыдущего. Разберем циклы подробнее.

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

Этап проектирования. В разработке ПО цикл предусматривает создание прототипа, дизайн-макета, платформы для программирования. Также нужно расписать роли для всех членов команды.

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

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

Этап эксплуатации. Продукт выпускается и согласуется с заказчиком. Затем идет финальный анализ, исправление критичных багов, сбор обратной связи. Если ошибок найдено слишком много, работу придется начинать с начала.

Этап поддержки. Исполнитель поддерживает работу проекта на стабильном уровне, собирает обратную связь от пользователей, устраняет сбои, если они возникают.

На чем основана работа Waterfall

Каскадная система Waterfall состоит из последовательных этапов с четко обозначенными сроками, а, значит, инструмент контроля должен учитывать эту специфику. Одним из наиболее удобных инструментов является горизонтальная гистограмма, также известная как диаграмма Ганта. Она состоит из двух осей, где по вертикали прописаны этапы, а по горизонтали — время, затраченное на их выполнение. Здесь же можно прописать и ответственных за исполнение задач. Диаграмма универсальна: ее можно построить как в специализированных сервисах, так и в таблице Excel и на бумаге.

Преимущества и недостатки Waterfall

Преимущества Waterfall

  • Точный и подробный план работ. Это главный плюс системы: на этапе анализа все процессы досконально изучаются, рассматриваются возможные риски, распределяются ответственные. Каждое действие продумывается и фиксируется, а исполнителям остается лишь следовать плану.
  • Понимание сроков и бюджетных затрат. Вместе с этапами работ рассчитываются и финансовые затраты, которые потребуются команде. Это удобно и для исполнителей, и для заказчиков — снижается риск непредвиденных расходов. Также заранее известна конечная дата реализации проекта, на нее может повлиять только форс-мажор.
  • Нет трат на внутрикомандную коммуникацию. Исполнителям не нужно вникать с нуля в рабочий процесс — достаточно просто выполнять действия по плану. Это важно, например, при появлении новых людей в команде.

Недостатки Waterfall

  • Система не готова быть гибкой. Главная проблема кроется в невозможности предсказать все сложности в проекте заранее. Допустим, из-за появления ошибки на этапе разработки или тестирования есть риск отменить работу полностью и начать все заново. Это потерянное время и средства.
  • Заказчик не задействован на этапах разработки и тестирования. Заказчику проекта представляется только конечный результат, с которым он может или согласиться, или нет. Иногда бывают необходимы комментарии в середине работы или появляются новые требования, которые на этапе анализа невозможно было учесть.
  • Обнаружение проблем только на этапе тестирования. Из-за того, что один этап нельзя делать раньше другого, некоторые баги становятся заметны только после написания кода. В результате повышаются временные затраты: команде приходится искать ошибку и исправлять все на одном этапе. Обычно время при этом ограничено.

Почему Agile сейчас предпочтительнее

Выход Agile на первый план связан со сместившимся акцентом на пожелания заказчика при создании программного обеспечения. С развитием и распространением ПО требовалось максимальное погружение его в проект, чтобы контролировать изменения, взаимодействовать с командой, предлагать нововведения. Это можно было сделать только в гибкой системе работы, которой Waterfall не является.

При работе с Agile возможно тестировать отдельные элементы проекта, не дожидаясь окончания этапа разработки. Это позволяет быстрее находить баги, которые влияют на работу системы и оперативно их исправлять. В результате сокращаются сроки разработки, нет риска дополнительных финансовых затрат. Относительным недостатком Agile можно назвать только необходимость в максимально обученной и мотивированной команде, которая может действовать в режиме быстрого переключения между задачами. Но это напрямую зависит от профессионализма работников.

Как понять, что проекту подойдет Waterfall

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

  • есть четкое понимание конечного результата и на него ничего не повлияет в процессе работы;
  • финансовых ресурсов и времени достаточно для реализации одного большого проекта;
  • требуется подробная и детальная документация по всему проекту и его этапам;
  • требуется строгое соблюдение последовательного плана;
  • выполнение значительной части работы по проекту связано с аутсорсом.

На курсах вы сможете научиться применять системы контроля в зависимости от сферы деятельности, грамотно составлять план работ и обозначать цели команды.

Другие термины на букву «W»

Webpack
WebSocket

Все термины

(рейтинг: 5, голосов: 2)
Добавить комментарий