Представьте: вы решили построить себе дворец. Провели небольшое исследование на рынке недвижимости, определились с бюджетом, размерами, архитектурой, материалами. Вы заказываете у архитектора проект и нанимаете строителей, работа пошла. Но спустя несколько месяцев ваша жизненная ситуация кардинально поменялась. Вам уже нужен другой дворец: гораздо меньше, гораздо больше, или гораздо дешевле.
Проект нужно срочно скорректировать, но архитектор требует за это внушительную сумму. Строители, тем временем, говорят, что им сказано копать от забора и до обеда, поменять заранее утвержденный план работ будет непросто. В конечном итоге вы пускаете все на самотек и просто ждете завершения строительства. А в день заселения с ужасом осознаете, что готовый проект совсем не похож на шедевр архитектуры, о котором вы мечтали. Формально, все обещанные водопады и арочные своды на месте, но должного впечатления не производят.
Веб-разработка – тоже своего рода строительство. Подобные неприятности случаются в этой сфере чаще, чем хотелось бы. Для преодоления проблемы в IT изобрели методологию SCRUM, которая призвана сделать разработку софта максимально предсказуемой. Мы не понаслышке знаем, что она работает.
Основы SCRUM
Любители американского футбола называют словом scrum способность команды завладеть инициативой в игре и удерживать за собой мяч. Подобное требует от спортсменов отличной сыгранности и способности мгновенно реагировать на ситуацию.
Жесткие вертикали принятия решений не особо прижились в IT. Разработка решений для бизнеса – это творческий процесс, который рождается на стыке идей предпринимателей и опыта разработчиков. Да и поведение рынка прогнозировать сложно.
Поэтому популярность приобрели принципы Agile-разработки. Они гласят, что готовность меняться важнее «следования первоначальному плану», а работающий продукт «важнее полной документации».
Именно на этих столпах стоят методы SCRUM. В их рамках большие задачи разбиваются на малые и детально расписываются. Работу ведут небольшие коллективы, как правило до 7 человек.
Разработка ведется небольшими «марш-бросками» - спринтами. У нас длительность спринта обычно составляет 10-12 дней, его результатом почти всегда должен быть некий завершенный продукт, который можно показать стороне заказчика. Это позволяет клиенту влиять на процесс разработки.
SCRUM делает ставку на автономность и «сыгранность» небольших групп разработчиков. Как и в команде по регби, игроки тут должны быть максимально сфокусированы на задаче и понимать друг друга без слов.
Преимущества SCRUM для клиента
Контролируемость
Разработка по лекалам SCRUM максимально нацелена на клиента, заказчик контролирует продукт на всех этапах разработки. В результате все остаются довольны – клиент получает максимально ценный для себя продукт, а кодер избегает лишнего стресса (как правило).
Возможность «на лету» менять требования к проекту представляется клиентам очень заманчивой. Иногда речь идет о смене цвета кнопок на главной сайта, а иногда - о масштабном пересмотре функционала или технологий.
Разработчики тоже могут инициировать изменения в бэклогах и ТЗ, согласовывая их с клиентом. Временами в процессе разработки становится ясно, что какие-то технологии и важные функции были упущены. Либо наоборот, заявленный инструмент оказался бесполезным.
Команда WEZOM за свой многолетний опыт пришла к тому, что ведет для клиента открытую отчетность по проекту через электронные документы. Заводится таблица, в которую заносятся этапы проекта и сроки их выполнению, туда же отправляются все доработки.
Мы начинаем работа с того, что оцифровываем запрос клиента и презентуем его в максимально наглядном виде, в форме mind map. Стараемся показать прототипы или подходящие кейсы с конкретными результатами.
По итогу каждого этапа мы отчитываемся перед клиентом. Обычным делом являются митинги стороны заказчика (Product Owner) с командой разработки. За каждым заказчиком мы закрепляем менеджера, который готов отвечать на вопросы в режиме 24/7.
Итеративность
Мы верим в итеративный подход к разработке. Это означает, что мы стремимся как можно быстрее выпустить минимально ценный продукт (MVP), а затем планомерно развивать его. Пробовать новые решения, «набивать шишки», учитывать пожелания заказчика. На каждом новом цикле разработки продукт будет сохранять стабильность и обрастать новыми функциями.
При такой разработке продукт постоянно проходит испытание на свою жизнеспособность и соответствие бизнес-логике, а риски «обрушения» проекта снижаются до минимума. Разработчики могут опробовать преимущества тех или иных технологий и проверять свои гипотезы.
Быстрые результаты
Техника спринтов позволяет получить рабочий продукт максимально быстро. Бизнес может быстро запустить сайт и начать продажи, а продвинутый функционал мы «прикрутим» к нему позже.
Практика показывает, что 20% функциональности сайта несут в себе 80% стоимости для его посетителей. Модульная разработка позволяет сфокусироваться на главном и подстраиваться под ситуацию рынка на ходу.
В практике WEZOM есть успешные примеры такого подхода. Скажем, сначала мы можем создать для бизнеса инструмент e-commerce, затем интегрировать его с CRM-системой, а в дальнейшем создать и PWA-приложение. Разработка становится «конструктором», в который заказчик может «играть» исходя из своих задач.
Устойчивые сроки
Дедлайн – один из самых страшных «зверей» в мире разработчиков. Чтобы избежать затягивания сроков, мы начинаем работу над проекта с исследований, глубоко вовлекаемся в бизнес заказчика, тщательно все планируем и заблаговременно собираем данные.
Движение спринтами снижает риск срыва сроков до минимума. В крайнем случае, такие срывы гораздо проще прогнозировать и контролировать.
Неужели все так просто?
Важно сказать, что SCRUM не так уж и прост для заказчика. Некоторым хочется просто заплатить и забыть о проекте на несколько месяцев, а затем получить сайт своей мечты. Увы, на практике такой подход почти никогда не работает.
Мы убеждены, что создать максимально ценный продукт можно только в коммуникации с заказчиком. Команда разработки счастлива, когда вовремя получает от клиента нужную информацию и фидбек по проделанной работе.
На несколько месяцев клиент становится нашим напарником и консультантом. Его опыт, знания и видение играют в проекте очень важную роль.