Представьте что вы заказываете ремонт своей новой квартиры. Перед началом работ команда подрядчика просит подписать вас текстовый документ, как правило без иллюстраций, о том как ваша квартира будет выглядеть после ремонта, включая все детали: розетки, выключатели, мебель и т д. Руководитель команды предупреждает, что изменения во время этапа приемки скорее всего приведут к дополнительным затратам. По этой причине вы ответственно подходите к задаче, тратите довольно много времени и в конце концов подписываете документ. Ну и, предположим, уезжаете на полгода из страны. И полностью доверяете команде внедрения сделать ремонт самостоятельно без какого-либо контроля и мониторинга с вашей стороны. Через полгода возвращаетесь, заходите в квартиру и видите что готовая квартира не вполне соответствует вашим ожиданиям. Тогда вы просите команду проекта переделать некоторые детали, например, перенести розетки поближе к холодильнику. Команда проекта говорит, что перенести розетки будет довольно дорого стоить и займет много времени, потому что придется долбить стену, а там уже плитка и т д. Вы заходите в спальню, включаете уже установленный кондиционер, и понимаете что он ночью будет дуть прямо на вас. Просите команду передвинуть и его, но получаете примерно такой же ответ как и с розетками. Тем не менее для вас это вопрос принципиальный и вы говорите, что не начнете жить в квартире пока кондиционер не будет там, где надо, потому что в вашей нынешней квартире он именно там, где надо, и вы не видите смысла в переезде, если он ухудшит комфорт вашего ежедневного быта. В результате заезжаете в квартиру на 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)
UnclShura
25.11.2019 19:46+1Но это и есть Waterfall! У него тоже итерации и все дела. Все отличие WF от аджайла в сроках и порядке (обязательности) фаз.
sleepdger Автор
26.11.2019 11:14в WF итерации состоят из дизайна, разработки, тестирования. При этом разработка не начинается пока не завершен этап дизайна. В нашем подходе мы начинаем разработку до завершения дизайна будущих спринтов. При этом как и в WF у нас только один запуск в конце проекта. Это ограничение к сожалению, а может быть к счастью, пока обойти не удалось
SergeyTitkov
26.11.2019 12:37Waterfall, а что он существует в природе?
Ссылочку можно на описание :)
Эту можно не предлагать: 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_DT
26.11.2019 21:18А ещё давайте представим что мы не внедряем ERP а мигрируем с одной ERP в другую сохраняя все идентификаторы и не перенося баги и недостатки прошлой ERP. Тогда становится больше As is /To be, и от аджайла остаются названия команд и daily stand up
SergeyTitkov
27.11.2019 11:24И чем это отличается от обычного проектного подхода?
Я поэтому и говорю, что WF — это миф. Обычно WF — обзывают именно проектный подход с выделенными этапами, которые идут последовательно.sleepdger Автор
27.11.2019 14:21Сорри, возможно я не допонял, но все верно: то что я написал в комментарии выше про последовательные этапы дизайна — разработки — приемки — это и есть обычный проектный подход, он же WF. А тот подход, который я описал в статье, отличается от WF тем, что начиная разработку по первому спринту, мы еще не знаем точных требований следующих спринтов, и приемку делаем с бизнес-пользователями в конце каждого спринта, а не когда все спринты уже сделаны.
SergeyTitkov
28.11.2019 14:48А что из треугольника проектоного треугольника у вас не фиксировано?
sleepdger Автор
28.11.2019 14:51Scope. Но частично, а не полностью, т.к. не чистый Agile подход, а смешанный. Scope гибкий, но в рамках, которые накладываются платформой и темплейтом (SAP)
SergeyTitkov
28.11.2019 17:46То бишь можно резать?
sleepdger Автор
28.11.2019 18:59Можно. Хотя обычно идет замена требований. Например бизнес-заказчик говорит, у нас поменялось законодательство, теперь нам нужна другая печатная форма, а вот эту можете не делать.
vydacha
26.11.2019 17:45Внедрение элементов эджайла увеличивает общую смету проекта.
Поэтому такой соблазн провернуть все одним большим спринтом.sleepdger Автор
28.11.2019 14:55угу. из-за того, что количество комуникации и онсайт присутствия увеличивается, у нас трэвел бюджет составил примерно 10% от всей стоимости проекта
rustysm
Как вы управляете техническим долгом?)
sleepdger Автор
из личного опыта внедрения ERP с техническим долгом я сталкивался в основном при разработке интерфейсов с внешними системами. В таком случае мы сами приоритезируем это в спринт, чтобы избежать проблем с производительностью/целостностью данных. Бизнес пользователей информируем об этом, но если из-за этого страдают сроки по новым требованиям, объясняем, что лучше пусть новое будет позже, чем сломается то что есть сейчас