T2m time to market что это
Time to market: не теряйте время, это слишком дорого
В современном бизнесе есть понятие time to market — это время, которое компания тратит на реализацию и выпуск бизнес-идеи своим клиентам. Чем ниже time to market, то есть чем быстрее фича отправляется в продакшн, тем быстрее зарабатываются деньги для бизнеса. Подробнее — в статье руководителя отдела производства продукта для магазинов Леонида Савченкова.
В Яндекс.Маркете мы внедрили несколько изменений, которые помогли нам сократить время разработки новой фичи с 64 до 46 дней. Их можно применить в любой команде, которая разрабатывает софт.
После того, как разработчик написал код и убедился, что всё работает как ожидается, обычно требуется ещё несколько шагов до выкладки в прод. Сначала нужно провести код-ревью и тестирование. Затем код нужно упаковать, обновить конфиг, подготовить изменения в базе данных. В общем случае это выглядит так:
Теперь давайте посмотрим, как можно ускорить каждый из этапов.
Если код-ревью для вас — обязательный этап, максимально оптимизируйте его. Отдайте линтеру все стилистические требования, чтобы живой человек на них не отвлекался. Договоритесь в команде о правиле, что на код-ревью отводится 24 часа. Внедрите инструмент, который автоматически раздаёт задачи на код-ревью — с учётом справедливости, опыта членов команды и календаря отсутствия.
Вот так у нас получилось ускорить этот этап (на графике изображён 80-й персентиль времени, за которое коммит проходит код-ревью):
Ручная проверка готового релиза QA-инженерами может занимать много времени. Как правило, она проходит в два этапа: тестирование новой функциональности, ради которой и затевался релиз, и регрессионное тестирование, чтобы убедиться, что мы ничего не сломали. Ускорить процесс поможет уменьшение размера релизов и автоматизация тестирования.
Если релизы будут небольшими и простыми в развёртывании (см. следующий пункт про CI и CD), их легко будет тестировать. Стоит целиться в один релиз в день.
Далее избавляйтесь от ручного регрессионного тестирования — пишите интеграционные тесты на весь регрессионный пак. Для бэкенда это достаточно легко. Тесты должны писаться против контрактов API и покрывать все возможные ситуации. Интеграционные тесты при этом прогоняются против настоящего тестового окружения или с использованием моков наиболее сложных сервисов, состояние которых непросто воспроизвести. Тесты пусть пишут сами разработчики. Для фронтенда тесты пишутся против интерфейса и, как правило, ближе к концу реализации фичи. Фронтенд-тесты часто играют роль интеграционных.
После такого подхода к автоматизации профессия тестировщика бэкенда в Яндекс.Маркете исчезла как класс. Существующие QA-инженеры остались для фронтенда.
Вручную они теперь проверяют только новый функционал, а для регрессионного тестирования пишут автотесты.
Вот так мы избавились от ручного регресса для личного кабинета партнёров Маркета в 2019 году:
Проблема time-to-market в екоме
Поговорим об одной из ключевых концепций электронной коммерции, о time-to-market. TTM — это время, которое проходит с момента возникновения намерения реализовать новую функцию до ее выпуска на реальных пользователей.
В этой статье под новой функцией мы понимаем любое изменение клиентского опыта: запуск новой товарной категории, дополнительный вид оплаты, более быстрая доставка, а также более масштабные вещи вроде доставки из оффлайн магазинов.
Способность быстро выпускать новые функции — ключевой фактор конкурентоспособности в екоме.
Ритейл меняется примерно с той же скоростью, что и смартфоны: вчерашние флагманы уже через год становятся рядовыми устройствами, а через 3 — безнадежно устаревают. Давайте посмотрим, как именно это происходит в современном екоме.
Еком развивается в духе эры Customer Capitalism, при котором фокус на удовлетворении ожиданий клиента — лучшая бизнес-стратегия. В интернете покупатель не имеет физической привязки к продавцу. Клиент может, не затратив ни малейших усилий, перейти к конкуренту, если текущая компания перестает соответствовать его ожиданиям.
С клиентскими ожиданиями работать не так просто. С ними есть 2 проблемы:
Лучшие еком компании удовлетворяют ожидания покупателя и создают превосходящий эти ожидания опыт.
То есть важно уметь не только быстро внедрять общеизвестные рынку функции, но и через эксперименты находить новые фишки, которые приведут клиента в восторг. При этом важно помнить, что превосходящий опыт имеет значение только при условии удовлетворения базовых ожиданий. Вот как это устроено с точки зрения впечатлений клиента.
Возможности, которые еком дает покупателю, удобно классифицировать по модели Кано и разбить их на группы: Must have, Would be nice, Killer feature (модель Кано предусматривает еще 2 группы, но об этом поговорим в отдельной статье).
Базовые ожидания, которые можно выявить с помощью исследований, укладываются в первые две категории. Функции, способные удивить клиента и выдвинуть компанию в лидеры, принадлежат в основном к группе Killer feature. Такие функции можно нащупать с помощью быстрых экспериментов на реальных пользователях.
В екоме функции очень быстро мигрируют из Killer feature в Would be nice и далее в Must have. Чтобы оставаться конкурентоспособным, нужно иметь низкий time-to-market внедрения новых возможностей и расширения товарного предложения.
Еще недавно возможность заказать неограниченное количество одежды для примерки было killer feature Wildberries. Но сегодня то же самое есть у Ламоды и некоторых других продавцов одежды. Функция уже переехала в категорию Would be nice и стремится стать Must have.
Причины большого ТТМ могут быть связаны:
Первые два случая мы рассмотрели в другой статье, а здесь упомянем максимально кратко: неспособность быстро принимать решение и чрезмерное анализирование. А вот этап реализации и эксплуатации рассмотрим подробнее.
Новые пользовательские функции в екоме появляются, когда вновь разработанная функциональность (или целые решения) отгружена на боевые системы, залиты актуальные данные и запущены операции. Системы разрабатывают либо внутреннее IT, либо подрядчики, либо гибридные команды, а значит источник проблем с ТТМ будем искать в деятельности этих ребят.
Для любой большой компании типична ситуация, когда внутренняя разработка занята на годы вперед. Нет единой причины, почему так происходит. Стоит упомянуть наиболее часто встречающиеся:
Сложности с внутренней командой подталкивают корпоративный еком к работе с внешними подрядчиками. В результате бизнес рискует получить новое узкое горлышко в виде скорости и компетенций сторонней компании. Особенно часто случаются такие ситуации:
Распространено заблуждение, что выбор правильного IT-решения — главная проблема разработки в екоме. А на самом деле в екоме не существует универсального ПО, которое само по себе обеспечит бизнесу продажи.
При этом позиционирование вендоров строится на том, что их система — лучшая и ее внедрение автоматически поднимает продажи.
Фокус должен быть не на решениях и технологиях, а на быстром запуске новых процессов. И не столь важно на каких решениях и технологиях.
Наш опыт показывает, что средний срок жизни произвольной системы в екоме — 3 года. Стоит ли тратить слишком много времени и денег на выбор и внедрение монструозных систем? Процессы в екоме разнообразны и многочисленны, но при этом довольно просты. Они не требуют сложных систем. Они требуют систем, которые работают прямо сейчас и способны быстро развиваться.
Выигрышная стратегия — иметь набор сервисов, каждый из которых легко заменить более совершенным аналогом без перестройки всего IT.
Развивать еком под требования целевой архитектуры непродуктивно. Системы должны эволюционировать под требования бизнеса, задача которого удовлетворять клиентов и зарабатывать.
Готовность систем не всегда позволяет запустить новые функции на реальных пользователей. Даже в екоме часто требуется много работы в офлайне, чтобы новые процессы по-настоящему заработали. Иногда на это уходят годы.
Ритейлеры алкоголя давно готовятся продавать в онлайне из-за слухов о легализации дистанционной торговли. В ожидании этого некоторые компании запустили онлайн продажи на полулегальных схемах.
Чаще всего на этапе эксплуатации ТТМ растет по следующим причинам:
✅ Раскатывать новые функции не на всю компанию сразу, а на отдельные подразделения.
✅ Начинать обучение сразу после окончания проектирования, а не ждать полной технический реализации новых функций.
✅ Сформировать команду внедрения, которая будет ездить по подразделениям и рассказывать, как пользоваться новыми функциями.
Основной проблемой time-to-market является то, что он часто находится вне зоны внимания людей, занимающихся екомом. Вместо этого команды сосредоточены на вещах, которые совершенно не интересуют покупателей, вроде технологического стэка или методологии гибкой разработки. Но если вы строите конкурентоспособный еком, вам нужно сосредоточиться на способности быстро удовлетворять новые ожидания клиентов и реагировать на изменения рынка (🦠).
Time to market: почему показатель важен в кризис и при чем тут облако
Что такое Time to market?
TTM — это время от начала разработки идеи до конечного запуска решения и его выхода на рынок. Например, для мобильного или корпоративного приложения Time to market начинается с момента, когда компания только решила его создать. И заканчивается, когда приложение публикуется в сторе или внедряется в компании.
Time to market — один из ключевых показателей для стартапов. Но он также важен для любых компаний, которые выпускают или внедряют новые решения.
Чем меньше значение TTM, тем лучше. Ведь если создание и запуск продукта затягиваются, компания может отстать от конкурентов и упустить выгоду. А инновационное решение — потерять свою инновационность. По данным Gartner, примерно 20% продуктов, выпущенных с задержкой, не достигают своих целей.
Почему этот показатель так важен в кризис?
Иногда эксперты называют срок выхода продукта на рынок термином Time to revenue, то есть временем до получения первой выручки. Это очень хорошо отражает ситуацию. Пока не пройдены все необходимые этапы подготовки и запуска, компания не начнет зарабатывать на новом решении.
В кризисные периоды у бизнеса, как правило, нет лишних ресурсов, чтобы вкладываться в проекты без быстрой отдачи. Тем более, что проект может «не полететь».
Но главное, сокращение Time to market позволяет компаниям серьезно экономить. Например, если речь идет о создании ИТ-продукта, зарплата ИТ-специалистов составляет сотни тысяч рублей в месяц. Уменьшив время выхода на рынок с нескольких месяцев до нескольких недель, эти ресурсы можно направить на другие цели.
Бизнес, прошедший через периоды экономической нестабильности, хорошо это понимает. После мирового кризиса 2008 года компания Amdocs отмечала рост внимания к TTM. Если в 2008-м его называли одним из важнейших бизнес-показателей только 58% поставщиков услуг и сервисов, то три года спустя цифра выросла до 70%. А сегодня сокращение TTM — одна из самых обсуждаемых тем в компаниях, которые выводят новые продукты на рынки.
Какие этапы включает в себя Time to market?
ТТМ включает несколько основных стадий, которые проходит команда при создании нового продукта или функции:
Чаще всего самый длительный этап — это разработка. К примеру, на создание приложения средней сложности может уйти от полугода.
Какие еще факторы влияют на Time to market?
Срок выхода на рынок прямо пропорционален сложности продукта и требованиям к его качеству. Многое также зависит от возможностей ИТ-подразделения компании, которая занимается разработкой. Однако даже в крупных корпорациях с собственным ИТ-департаментом релизы иногда готовятся намного дольше запланированного и содержат критические ошибки.
На TTM сильно влияет и выбранный подход к разработке: сроки создания решений полностью с нуля и из готовых компонентов отличаются в разы.
По подсчетам Gartner, только 55% продуктов запускается вовремя, а оставшиеся 45% релизов откладываются как минимум на месяц. «Продукт может не запускаться в запланированные сроки из-за нескольких факторов, включая отсутствие формализованных процессов запуска, задержки в разработке продукта (баги, ошибки, нестабильность функций), невыполнение требований клиентов, качество продукта или даже проблемы с поставками», — отмечают аналитики.
Как можно сократить Time to market?
Чтобы быстрее вывести продукт на рынок, компании часто готовят MVP (Minimum Viable Product — минимально жизнеспособный продукт, позволяющий получить обратную связь) с ограниченным функционалом и тестируют его на потребителях. Это позволяет выявить ошибки в продукте и оценить его востребованность.
Например, Uber начинался с упрощенного мобильного интерфейса, который использовали только основатели и их знакомые. Тарифные функции, платежи по кредиткам и отслеживание машин в реальном времени появились намного позже.
Однако после запуска MVP решение все равно приходится докручивать. Если делать это «по старинке», потребуется время.
Среди самых эффективных способов уменьшить TTM — использование облачных ИТ-ресурсов вместо физических серверов, отказ от архаичных подходов к разработке в пользу готовых решений на облачных платформах.
Каким образом облака помогают ускорить выход на рынок?
Облачные сервисы ускоряют процессы по двум основным направлениям.
Их предоставляют поставщики облачных услуг (облачные провайдеры) в рамках услуг PaaS — Platform as a Service. Эти сервисы специально спроектированы, чтобы ускорить и упростить процесс создания решений. Разработчики продукта получают готовую программную среду для написания, тестирования и размещения приложений вместе с набором дополнительных инструментов.
Так, на облачной платформе SberCloud.Advanced компании SberCloud интегрированы и инфраструктурные облачные услуги (IaaS), и платформенные PaaS-решения. Например, услуга развертывания приложений в облаке, бессерверные вычисления, облачные базы данных реального времени и другие продукты.
При этом облачные сервисы можно использовать как конструктор, собирая решение из готовых блоков. Это позволяет сначала без задержек создать MVP продукта, затем быстро протестировать его, внести изменения и выпустить на рынок готовую коммерческую версию.
Таким образом TTM решения сокращается в несколько раз. А сам процесс создания и запуска становится более прогнозируемым и надежным за счет автоматизированных систем работы с сервисами.
Как заявил президент, председатель правления Сбербанка Герман Греф, на встрече с инвесторами и акционерами (Investor Day 2020) переход на новую облачную цифровую платформу сократил Time-to-market новых продуктов «Сбера» в семь раз.
Каким компаниям и в каких проектах стоит использовать облако для сокращения TTM?
Облачные сервисы помогают выполнять почти любые задачи, связанные с созданием собственного ПО и кастомизированных корпоративных решений. Это может быть запуск чат-бота, дополнительный функционал для интернет-магазина, новый онлайн-сервис или приложение. То есть, речь не только о проектах ИТ-компаний и крупных «цифровых» корпораций. В облаке решения можно строить из уже готовых элементов, и для этого необязательно иметь глубокую экспертизу в ИТ.
В SberCloud отмечают, что их платформа позволяет создавать облачные продукты и сервисы в любых областях экономики, науки и образования — от мобильных приложений в ретейле до платформ дистанционного обучения для вузов и финтех-продуктов.
Наращивать использование облаков собирается большинство компаний, показало исследование Flexera: 59% предприятий ожидают, что облачные сервисы будут применяться шире, чем планировалось в доковидный период.
При этом эксперты отмечают рост интереса к PaaS и, в частности, контейнерным технологиям. Контейнеры — это автономные единицы ПО, в которых есть все необходимое для работы приложений — код, среда запуска, библиотеки и настройки. Компании используют их, чтобы быстрее разворачивать приложения и масштабировать процессы, указывают во Flexera.
Как это работает с ИТ-стартапом?
Возьмем один из самых распространенных примеров — технологический стартап, который активно работает с различными данными. Допустим, в стартапе активно используется ИИ. В этом случае ему понадобится облачная инфраструктура, желательно автомасштабируемая под клиентский трафик, управляемая база данных, сервис развертывания и управления контейнерами приложениями на основе Kubernetes, сервис аналитики данных, сервис мониторинга и управления приложениями и инфраструктурой и ряд других облачных услуг.
Почему облачных? Совершенно понятно, что cамостоятельная покупка оборудования, инсталляция и настройка взаимодействия всех этих приложений никак не вписывается в бизнес-модель стартапа с его ограниченным количеством финансовых, трудовых и временных ресурсов.
Единственный вариант успешно запустить такой стартап, это использовать готовые инфраструктурные (IaaS) и платформенные облачные сервисы (PaaS). Идеально, если они будут еще интегрированы между собой.
Поставщики облачных услуг уже предлагают такие варианты. Например, на платформе SberCloud.Advanced можно получить сразу и IaaS сервисы, такие как Elastic Cloud Server — легко конфигурируемый и масштабируемый виртуальный сервер с возможностью автомасшатбирования, а также все необходимые для быстрой реализации идеи платформенные сервисы (PaaS).
Что важно в такой бизнес-модели. Размер оплаты облачных сервисов зависит исключительно от количества клиентов стартапа. Клиентов мало — потребление небольшое, затраты на облако минимальны. Количество клиентов и размер выручки растут — соответственно есть возможность спокойно масштабировать бизнес и увеличивать потребление облачных услуг.
Мы уже используем облачные сервисы. Как еще можно сократить TTM?
Основной совет — работать над MVP, избавляться от всего лишнего и концентрироваться на ценности для клиента и компании. Также стоит обратить внимание на концепцию Lean startup. Обобщайте и проверяйте гипотезы и, главное, постарайтесь как можно раньше получить обратную связь от потребителей продукта. Как показывает опыт, даже самое длительное и детальное тестирование не заменит мнения живого пользователя.
Time-to-Market как козырь для внедрения DevOps
Представьте себе фантастическую ситуацию — директор компании решает внедрить DevOps. Сам, без давления со стороны технарей. Без убедительного примера конкурентов. Руководство само признало, что повысить качество продукта, предсказуемость, прозрачность и повторимость бизнес-процессов при разработке и внедрении ПО невозможно без средств DevOps.
Представили? Получилось? Вы успешно прошли тест на самое богатое воображение!
На самом деле, конечно же, всё не так. Чаще всего руководству не до наших ИТ-шных штучек. Поэтому приходится убеждать. Но как?
Когда в качестве аргумента приводится повышение культуры общения между программистами и системными администраторами, то легко можно нарваться на контраргумент: а сейчас вы некультурные, что ли? Или даже могут напомнить о затратах, которые уже понесла компания год-два назад, когда вы дружно переходили на Agile. Неужели в ИТ каждый год появляется фича, способная продвинуть процессы революционным способом?
Насчёт повышения качества продукта тоже можно заикнуться. Но осторожно. Поскольку задачу программировать без ошибок ещё никто не отменял. Да, без багов никак, но именно поэтому в компании есть «целый отдел тестировщиков», не так ли?
Предсказуемость процессов — это вообще такой субъективный фактор, обосновать который и избежать шуток про Вангу и Нострадамуса довольно сложно.
При этом, если мы говорим о типичном энтерпрайзе, то в такой компании, скорее всего, есть уже сложившаяся ИТ-команда. И эта команда в старом (если не считать Agile) привычном ритме трудится вместе немало лет и вряд ли горит желанием (опять) что-то менять. Всех всё устраивает, кроме, естественно, руководства. Которое видит, что в их ПО постоянно сыплются какие-то ошибки, смещаются сроки выпуска новых версий.
Конечно, можно предположить ещё один вариант, когда в компанию приходит человек с опытом в DevOps, ясно представляющий, в чём проблема и как её нужно решать. И который способен донести своё мнение до руководства. Однако давайте не будем надеяться на чудо-дядю.
И на этом многие ломаются. Начинают говорить, что никто их не поддерживает, что в этом болотце ничего внедрить невозможно и затем просто уходят в другую компанию, где цикл повторяется.
Получается замкнутый круг? Нет, просто постепенно мы приходим к выводу, что с бизнесом нужно говорить только на понятном ему языке — на языке денег. Для этого мы достаём из широких штанин рукава главный козырь — сокращение Time-to-Market. Нужно показать, что благодаря DevOps новые версии продукта будут выпускаться, как горячие пирожки. А все остальные вышеперечисленные выгоды от внедрения DevOps давайте оставим для итоговой презентации, которую мы создадим для директора, когда все получится. Многие скажут, что это слишком очевидно. Нет!
Нам нужно что-то, что займет у нас минимум времени и ресурсов (ведь никто не разрешит списывать человеко-месяцы на внедрение некоего DevOps и не закупят для нас срочно новых серверов), но при этом даст очень ощутимый результат (реально сократит Time-to-Market).
Для начала нужно найти бутылочное горлышко, а оно всегда одно (первый шаг в теории ограничений Голдратта). После успешного внедрения Agile (а все это имеет смысл только после внедрения Agile), в плане разработки софта всё равно им остается ручное тестирование. Даже при наличии пула свободных рук, регрессионное тестирование может занять две-три недели. А уж от том, как тестировщики «любят» проводить регрессионное тестирование, знаю все.
Итак, мы определили, что бутылочным горлышком является тестирование. Тогда начать нужно с его автоматизации. Многие заметят: легче сказать, чем сделать. Уже написаны миллионы строк кода, и хорошо, если программисты хоть что-то покрыли модульными тестами. На самом деле все не так страшно, как кажется. Как показывает опыт, 80 % успешного результата в виде серьезного снижения Time-to-Market достигается за счёт 20 % усилий. Именно во столько примерно обходится автоматизация тестирования в нашем случае.
Совсем по закону Парето, ага.
И самое главное, запустить автоматизацию тестирования можно ещё до того, как руководство согласится выделить ресурсы на внедрение остальных частей DevOps. Небольшой такой пилотный проект, который можно сделать собственными силами за одну-две недели.
Но при этом такая ситуация нам даёт шанс одержать эффектную и, самое главное, быструю победу. После которой, имея позитивный настрой и благословение руководства, уже можно просить и деньги, и ресурсы.
Начнём с того, что, наверняка, ваши программисты уже используют какое-либо серверное ПО для ежедневной сборки. Это может быть TeamCity, либо Bamboo, либо Jenkins, — не принципиально. Главное, часть автоматизации уже есть и это нужно использовать, а если нет, то за день его легко развернуть.
Сначала надо автоматизировать «дымовые» тесты. А как понять, что автоматизировать? Да просто посмотрите, что у вас регулярно ломалось при выкладке изменений за последние полгода.
Дальше нужно создать несколько тестов проверки работы основных бизнес-процессов. Как их определить? Задать вопрос вашим аналитикам/директорам/представителям бизнеса, при какой поломке в кабинет к программистам вбегает разъяренный директор и ставит задачи повышенным голосом.
Неделя, ну максимум две на создание таких тестов. В результате — очень быстрый фидбек на предмет глобальных ошибок.
И пока проект в режиме proof of concept, не надо заниматься подготовкой того же автоматического развертывания сервера для тестирования и прочими бантиками, а всё сделать вручную. Эту красоту потом можно с удовольствием сделать вместе с админами.
К чему это приведёт, догадаться не сложно. Разработчики сразу будут видеть (и исправлять) свои ошибки. Тестировщики будут избавлены от рутины в виде проведения долгих и нудных тестов на регресс. Им останется пара-тройка дней для того, чтобы протестировать только те места кода, которые были подвержены правке. Да-да, именно так. А если нет, то вернитесь в начало и еще раз поговорите с аналитиками/директорами/представителями бизнеса на тему критичных для бизнеса процессов.
Бутылочное горлышко, из-за которого возникали основные тормоза, ликвидировано. Теперь остаётся только выпустить несколько новых релизов в продуктивную среду, снять статистику «было/стало» и идти с этими цифрами к руководству. Профит!
После такой убедительной победы уже можно разговаривать про автоматизацию развертывания стендов (как минимум для тестирования). Далее выпрашивать средства на мониторинг и прочие прелести DevOps. При этом нужно помнить, что остальные компоненты системы уже не будут иметь вау-эффекта для бизнеса.
Пример в студию
В завершение поста, думаю, уместно будет привести пример успешно завершенного проекта по внедрению DevOps, который реализовала наша компания.
У одного крупного ритейлера около 20 % бизнеса приходится на интернет-магазин. При этом реагировать на рыночную ситуацию и вносить необходимые изменения в ПО нужно очень быстро. И часто. И качественно. Любой косяк на сайте может повлиять на конверсию, риски выражаются в реальных деньгах.
Для сокращения времени обновления и повышения качества была создана специализированная платформа автотестов, на которой были автоматизированы рутинные задачи по тестированию изменений и регресса сайта. Кроме того, был выстроен процесс взаимодействия группы автоматизированного тестирования с командами разработки. Это позволило разработчикам сразу выявлять и исправлять дефекты в обновляемой системе, не дожидаясь финального приемочного тестирования.
Представители ритейлера сочли опыт успешным и решили применить его к остальным софтверным продуктам.
И ещё небольшой пример, но уже из практики одной крупной страховой компании. До внедрения автоматизации тестирования релизы выходили раз в полгода. Не потому, что так требовал бизнес, — просто чаще не получалось. А заказчик как раз хотел. Так вот, через два месяца после начала внедрения средств автотестирования, ИТ-команда перешла на двухнедельные итерации выпуска релизов.
Достаточно показательно, чтобы начать этим заниматься, не так ли?
Сергей Страмнов, пресейл-архитектор Центра программных решений «Инфосистемы Джет»