- PVSM.RU - https://www.pvsm.ru -
В нашем прошлом материале [1] мы писали о методологиях разработки программного обеспечения, которые помогают оптимизировать рабочие процессы. Тогда речь шла о Scrum, канбан и экстремальном программировании. Сегодня мы расскажем о Waterfall, FDD и Lean — оценим плюсы и минусы подходов и взглянем на опыт организаций, которые их используют, чтобы помочь вашим компаниям оптимизировать процессы.
[2]
/ Flickr / Hamza Butt [3] / CC [4]
Waterfall, или каскадная модель, — традиционная методология, которая существует [5] с 1970 года. В ней разработку проекта разбивают на этапы: от анализа системных требований до выпуска продукта.
Каждый шаг — отдельная фаза разработки ПО, и команда должна [6] завершить одну фазу, прежде чем переходить к следующей. В «чистой» реализации Waterfall возвращаться на предыдущий этап запрещено — можно «плыть только по течению», чтобы пройти полный цикл разработки. Пользователи Quora сравнивают [7] эту модель с поездом, который движется от станции к станции и не может повернуть назад.
Изначально автор Waterfall Винстон Ройс (Winston Royce) привел [8] каскадную модель как пример неэффективного способа разработки программного обеспечения, который ведет к ошибкам и выпуску некачественных продуктов. Однако потом в своей статье [9] он довел методологию «до ума», отметив обратные связи и переходы от тестирования к написанию кода и др.
По данным исследования PMI [10], 12% компаний используют методологию Waterfall на постоянной основе, а 40% респондентов утверждают, что часто к ней обращаются. А по данным [11] LiquidPlanner, каскадную модель используют 25% организаций.
Количество этапов в Waterfall варьируется от компании к компании, но общий подход выглядит следующим образом [6]:
Среди преимуществ методологии можно выделить [6] чёткую структуру и предсказуемый рабочий процесс. Это позволяет легко оценить затраты и прикинуть сроки выполнения до начала проекта. Резиденты Quora утверждают [13], что такие тонкости важны для финансовых и страховых компаний или компаний, которые разрабатывают «железо».
Кроме того, модель подразумевает документирование каждого этапа. Это помогает создавать базу для последующих проектов. Также большое количество отчетности позволяет в любой момент показать заказчику или руководству, на какой стадии находится продукт.
Однако есть и недостатки. Клиенты часто не знают, чего они действительно хотят, пока не взглянут на прототип. А по Waterfall нужно определять все требования заранее, поэтому есть риск что-то упустить. Исследование процесса разработки сайта компании Ericsson AB показало [14], что каскадная модель привела к путанице, и 26% изначальных требований оказались бесполезными.
Однако главный недостаток Waterfall — внесение изменений. Продукт тестируют в конце жизненного цикла, и может быть слишком поздно, чтобы что-то править. Именно стоимость внесения изменений побудила компанию Toyota задуматься о переходе на другую методологию разработки.
По словам [15] Сатоси Исии (Satoshi Ishii), главного руководителя проектов компании, исправление дефектов, обнаруженных после производства, обходится [16] в 1000–10000 раз дороже. Поэтому в Toyota решили отказаться от Waterfall и перейти к Lean, который мы рассмотрим далее.
Термин означает [17] «бережливая разработка». Его корни уходят [18] глубоко в историю компании Toyota и её подходов к решению задач. В компании вносят только те изменения, которые приносят пользу, требуют минимум затрат и отнимают не более 30% запланированного времени. Это помогло японской компании научиться переключать конвейеры на производство другой модели за считаные часы, в то время как другим автопроизводителям требовались недели.
Применили методологию Lean для разработки Мэри (Mary Poppendieck) и Том Поппендик (Tom Poppendieck). Они написали книгу [19] «Lean Software Development». Дополнительную информацию также можно найти на их сайте [20], посвящённом Lean.
По данным исследования PMI [10], 8% компаний постоянно используют принципы Lean, а 26% часто к ним обращаются. Принципы [21] Lean:
Среди плюсов методологии выделяют быстрый релиз продукта. Джо Фоли (Joe Foley), менеджер подразделения Intel Fab Operations в Лейкслипе, утверждает [22], что 5 лет назад компании требовалось 14 недель, чтобы начать производство новых чипов. Благодаря принципам Lean этот процесс теперь занимает 10 дней.
При этом, когда команда следует принципам бережливой разработки, она не просто выполняет задачи, а стремится [18] сделать продукт с наименьшим количеством ошибок. В своём исследовании [23] компания ВВС обнаружила, Lean повышает скорость разработки ПО на 37% и снижает количество багов на 24%.
Также, согласно исследованию [24] Lean Business Report, в числе десяти преимуществ подхода указано снижение стоимости проектов — 27% IT-компаний уменьшили затраты за счет внедрения принципов Lean.
Однако они подходят не всем. Команда GlobalLuxSoft отмечает [18], что бережливую разработку стоит применять, только если к проекту подключены опытные разработчики, так как обучение на ходу оказывается невозможным и ставит создание продукта под угрозу.
Все принимаемые решения должны подкрепляться аналитическими данными и результатами мониторинга процессов, иначе команда рискует погрузиться в слишком большое количество изменений и забыть о главной цели проекта. Здесь можно обратиться к опыту Toyota: жесткий контроль со стороны не позволяет [25] разработчикам отклоняться от приоритетных задач.

/ Flickr / Sebastian Sikora [26] / CC [4]
Feature driven development [27] (FDD) — методология, которая объединяет лучшие практики и сосредотачивает внимание разработчиков на функциональных элементах (features), полезных с точки зрения клиента. По этой [28] ссылке можно найти примерную схему алгоритма разработки по FDD. Согласно исследованиям [10], 11% компаний постоянно используют Feature Driven Development, а 31% прибегает к использованию этой методологии время от времени.
Создатель FDD — Джефф де Лука (Jeff De Luca), впервые предложил [29] методологию в 1997 году, когда искал оптимальное решение по разработке программного обеспечения для банка в Сингапуре. Тогда он предоставил комбинацию из 5 процессов:
Успех проекта напрямую зависит от опыта и знаний ведущего программиста. В FDD он играет все главные роли: руководителя, наставника, аналитика и так далее. При этом методология создана [31] для долгосрочных проектов, поэтому, как отмечают [32] резиденты Stack Overflow, применять её для небольших задач просто нет смысла.
Однако есть и плюсы. Постоянное составление отчетов о проделанной работе на всех уровнях помогает [33] отслеживать прогресс и результаты. Это позволяет регулярно обновлять проект, выявлять ошибки и предоставлять клиенту информацию в любое время. А один из резидентов Stack Overflow утверждает [34], что главный плюс FDD — возможность в любой момент оценить отстаёт ли проект от графика или продвигается быстрее.
Как уже было отмечено, FDD используется в масштабных проектах, поскольку на первом этапе ведётся разработка общей модели, позволяющей разобраться в продукте. Это же свойство помогает привлекать к работе новых разработчиков. При этом более глубокое понимание проектных требований и ожиданий клиента снижает [35] риск нежелательных «сюрпризов».
P.S. О чем еще мы пишем в нашем корпоративном блоге:
Автор: it-guild
Источник [41]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/upravlenie-proektami/269553
Ссылки в тексте:
[1] материале: https://habrahabr.ru/company/it-guild/blog/341924/
[2] Image: https://habrahabr.ru/company/it-guild/blog/341932/
[3] Hamza Butt: https://www.flickr.com/photos/149902454@N08/34127848854
[4] CC: https://creativecommons.org/licenses/by/2.0/
[5] существует: https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C
[6] должна: https://www.upwork.com/hiring/development/agile-vs-waterfall/
[7] сравнивают: https://www.quora.com/What-is-an-example-of-a-waterfall-model-in-software-engineering
[8] привел: http://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf
[9] статье: http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
[10] PMI: https://www.pmi.org/-/media/pmi/documents/public/pdf/learning/thought-leadership/pulse/pulse-of-the-profession-2017.pdf
[11] данным: https://www.liquidplanner.com/blog/stats-2017-project-management-manufacturing-report/
[12] SDLC: https://en.wikipedia.org/wiki/Software_development_process
[13] утверждают: https://www.quora.com/What-project-or-company-uses-the-waterfall-model
[14] показало: http://www.wohlin.eu/profes09.pdf
[15] словам: https://www.infoq.com/news/2010/04/toyota-waterfall
[16] обходится: https://blog.crisp.se/2010/03/16/henrikkniberg/1268757660000
[17] означает: https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%80%D0%B5%D0%B6%D0%BB%D0%B8%D0%B2%D0%B0%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
[18] уходят: https://medium.com/globalluxsoft/5-popular-software-development-models-with-their-pros-and-cons-12a486b569dc
[19] книгу: http://www.booksprice.ru/books/327753.html
[20] сайте: http://www.poppendieck.com/
[21] Принципы: https://www.versionone.com/agile-101/agile-methodologies/
[22] утверждает: http://www.manufacturingglobal.com/top-10/top-10-lean-manufacturing-companies-world
[23] исследовании: http://ieeexplore.ieee.org/document/5741001/
[24] исследованию: https://resources.leankit.com/i/852097-lean-business-report-2016/13?aliId=67190
[25] не позволяет: http://www.sae.org/manufacturing/lean/column/leanjun01.htm
[26] Sebastian Sikora: https://www.flickr.com/photos/hello-sebastian/8207491326
[27] Feature driven development: http://www.featuredrivendevelopment.com/
[28] этой: https://www.weblineindia.com/blog/top-15-software-development-methodologies-with-advantages-and-disadvantages/
[29] предложил: http://agilemodeling.com/essays/fdd.htm
[30] списка функций: http://agilemodeling.com/artifacts/feature.htm#Figure1
[31] создана: http://sliitmscfdd.wikidot.com/introduction-to-fdd
[32] отмечают: https://softwareengineering.stackexchange.com/questions/116542/maximum-project-duration-for-feature-driven-development-project
[33] помогает: https://www.upwork.com/hiring/for-clients/agile-methodologies/
[34] утверждает: https://stackoverflow.com/questions/40531/why-should-i-use-feature-driven-development
[35] снижает: http://www.nebulon.com/index.html
[36] Управление ИТ-проектами – 5 вызовов и их преодоление: https://it-guild.com/info/blog/upravlenie-it-proektami-5-vyzovov-i-ikh-preodolenie/
[37] Управление изменениями – о целях процесса и его внедрении: https://it-guild.com/info/blog/upravlenie-izmeneniyami-o-tselyakh-protsessa-i-ego-vnedrenii/
[38] Топ-10 самых популярных вопросов при внедрении ServiceNow: https://it-guild.com/info/blog/samye-populyarnye-voprosy-pri-vnedrenii-servicenow/
[39] Как создать и начать использовать каталог услуг (Service Catalog) : https://it-guild.com/info/blog/kak-sozdat-i-nachat-ispolzovat-katalog-uslug-service-catalog/
[40] Как сделать ITIL более клиентоориентированной: https://it-guild.com/info/blog/kak-sdelat-itil-bolee-klientoorientirovannoy/
[41] Источник: https://habrahabr.ru/post/341932/
Нажмите здесь для печати.