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

У нас в компании мы успешно пилотируем новый подход к проектам по внедрению и тиражированию ERP систем. При этом на проектах тиражирования подход позволяет завершить проект даже быстрее обычного плана с последовательными фазами дизайна, разработки и тестирования (aka Waterfall).
Мы перешли от этого:

К этому:

Мы называем этот подход смешанным (Waterfall – Agile) т.к., пользуемся как элементами Agile (работа по спринтам), так и Waterfall (промышленная эксплуатация начинается только после завершения всего проекта). Ускорение происходит за счет того, что, во-первых, мы работаем с бизнес-пользователями параллельно (работа над дизайном будущих спринтов и настройка, разработка текущих), а во-вторых «переносим розетки» поближе к будущему холодильнику до того, как плитку уложили и кухонный гарнитур собрали. Чем больше объем проекта, тем значительнее выигрыш во времени и качестве по сравнению с классическим Waterfall подходом.
Пример проекта в Mars с использованием смешанного подхода

Основные характеристики проекта:
- 5? периода (22 недели) от момента Старта до Запуска
- Полная проектная команда – 40 человек (бизнес пользователи и ИТ консультанты, разработчики)
- 4 функциональные команды внутри проектной команды – Финансы, Закупки, Логистика и продажи, Отдел контроля качества
- 4 цикла Бизнес-тестирования с 93% успешных скриптов с первой попытки. 5 очных воркшопов
На этапе пред-проекта мы оценивали что сделаем проект за 30 недель. По факту, с использованием Agile подхода мы сделали все за 22 недели. За 4 месяца эксплуатации после запуска мы получили 1 запрос на изменение от бизнеса.
Ключевые факторы успеха
Внутренние ИТ команды. Как можно раньше договоритесь с ключевыми ИТ командами, которые будут вовлечены во внедрение. Заручитесь поддержкой руководства, чтобы перейти к диалогу с внешним подрядчиком.
Внешний подрядчик. В проектной команде подрядчика должны быть профессионалы, которые хорошо знают саму систему и Agile принципы внедрения. Новичков быть не должно. Проведите выборочные собеседования с командой перед тем как подписывать контракт.
У бизнес команды должна быть возможность и желание регулярно вовлекаться в проект в течение всех фаз разработки. Это не значит что Бизнесу придется работать больше. Мы перераспределяем их время с обычной фазы дизайна и тестирования внутрь каждого отрезка разработки.
Некоторые часто-задаваемые вопросы
Вопрос 1: Коммерческий отдел просит подписать контракт с подрядчиком с фиксированной стоимостью до начала разработки. Но как оценить стоимость если нет завершенного и подписанного дизайна?
Ответ 1: Мы подписываем Fixed Team контракт с подрядчиком– фиксируем команду и время выполнения проекта, например 8 месяцев. Это не то же самое, что Time-Material, т.к. мы фиксируем длительность и общий объем работ. При этом мы остаемся гибкими в изменении/добавлении бизнес-требований, если длительность проекта и команда не увеличивается.
Вопрос 2: Что если бизнес-пользователи будут постоянно добавлять новые требования во время ревью и планирования каждого спринта?
Ответ 2: В этом случае мы просим приоритизировать требования и убрать те, которые имеют самый низкий приоритет и не укладываются в сроки проекта. Т.е. добавляем новое взамен чему-то существующему. Все эти изменения/новые требования будут нас ждать в любом случае на этапе приемки в независимости от подхода. Но в случае с промежуточной приемкой в конце каждого спринта у нас больше возможностей по управлению этими требованиями, в то время как при приемке непосредственно перед запуском, мы рискуем сроками запуска и качеством системы (качество по определению – это соответствие конечного результата ожиданиям пользователя, а не текстовому дизайну).
Если вас заинтересовала эта статья, у вас есть вопросы, или вы просто хотите поделиться мнением о вышенаписанном, то я буду благодарен, если вы поделитесь обратной связью под публикацией или в личном сообщении. Иллюстрации и идейное содержание статьи при участии Ангелины Абдуллаевой angelina.abdullayeva.
Комментарии (17)
 - UnclShura25.11.2019 19:46+1- Но это и есть Waterfall! У него тоже итерации и все дела. Все отличие WF от аджайла в сроках и порядке (обязательности) фаз.  - sleepdger Автор26.11.2019 11:14- в WF итерации состоят из дизайна, разработки, тестирования. При этом разработка не начинается пока не завершен этап дизайна. В нашем подходе мы начинаем разработку до завершения дизайна будущих спринтов. При этом как и в WF у нас только один запуск в конце проекта. Это ограничение к сожалению, а может быть к счастью, пока обойти не удалось 
  - SergeyTitkov26.11.2019 12:37- Waterfall, а что он существует в природе? 
 Ссылочку можно на описание :)
 Эту можно не предлагать: 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
 Нет там ничего :) - sleepdger Автор26.11.2019 12:51- На проектах внедрения ERP систем к сожалению существует :) Я лично участвовал в проектах, где команда консультантов совмество с бизнес-пользователями сначала описывали AS-IS, TO-BE, детальные требования по этим процессам. И потом когда этот документ был готов, подрядчик начал разработку и настройку. А после завершения всей разработки и настройки, были 3 фазы бизнес-тестирования. Это в моем понимании и есть стандартный WF. Я описываю WF подход следующими принципами: 
 1. Не начинаем разработку, пока не подписан с бизнесом документ дизайна (не на отдельную функциональность, а по всем процессам)
 2. Не начинаем тестирование, пока не настроены все бизнес-процессы, описанные в документе дизайна.
 При этом на принципе#1 обычно настаивает подрядчик, который делает работу, т.к. до начала работы заказчик просит сказать сколько это будет стоить и когда будет сделано.
 А на принципе#2 настаивает в свою очередь заказчик, чья команда потратила большое количество времени на этапе дизайна, и хочет вернуться к своим операционным задачам и чтобы их перестали отвлекать на проект. - DNT_DT26.11.2019 21:18- А ещё давайте представим что мы не внедряем ERP а мигрируем с одной ERP в другую сохраняя все идентификаторы и не перенося баги и недостатки прошлой ERP. Тогда становится больше As is /To be, и от аджайла остаются названия команд и daily stand up 
  - SergeyTitkov27.11.2019 11:24- И чем это отличается от обычного проектного подхода? 
 
 Я поэтому и говорю, что WF — это миф. Обычно WF — обзывают именно проектный подход с выделенными этапами, которые идут последовательно. - sleepdger Автор27.11.2019 14:21- Сорри, возможно я не допонял, но все верно: то что я написал в комментарии выше про последовательные этапы дизайна — разработки — приемки — это и есть обычный проектный подход, он же WF. А тот подход, который я описал в статье, отличается от WF тем, что начиная разработку по первому спринту, мы еще не знаем точных требований следующих спринтов, и приемку делаем с бизнес-пользователями в конце каждого спринта, а не когда все спринты уже сделаны.  - SergeyTitkov28.11.2019 14:48- А что из треугольника проектоного треугольника у вас не фиксировано?  - sleepdger Автор28.11.2019 14:51- Scope. Но частично, а не полностью, т.к. не чистый Agile подход, а смешанный. Scope гибкий, но в рамках, которые накладываются платформой и темплейтом (SAP)  - SergeyTitkov28.11.2019 17:46- То бишь можно резать?  - sleepdger Автор28.11.2019 18:59- Можно. Хотя обычно идет замена требований. Например бизнес-заказчик говорит, у нас поменялось законодательство, теперь нам нужна другая печатная форма, а вот эту можете не делать. 
 
 
 
 
 
 
 
 
 - vydacha26.11.2019 17:45- Внедрение элементов эджайла увеличивает общую смету проекта. 
 Поэтому такой соблазн провернуть все одним большим спринтом. - sleepdger Автор28.11.2019 14:55- угу. из-за того, что количество комуникации и онсайт присутствия увеличивается, у нас трэвел бюджет составил примерно 10% от всей стоимости проекта 
 
 
           
 
rustysm
Как вы управляете техническим долгом?)
sleepdger Автор
из личного опыта внедрения ERP с техническим долгом я сталкивался в основном при разработке интерфейсов с внешними системами. В таком случае мы сами приоритезируем это в спринт, чтобы избежать проблем с производительностью/целостностью данных. Бизнес пользователей информируем об этом, но если из-за этого страдают сроки по новым требованиям, объясняем, что лучше пусть новое будет позже, чем сломается то что есть сейчас