Time to market что

Time-to-Market как козырь для внедрения DevOps

Time to market что. image loader. Time to market что фото. Time to market что-image loader. картинка Time to market что. картинка image loader

Представьте себе фантастическую ситуацию — директор компании решает внедрить 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 % бизнеса приходится на интернет-магазин. При этом реагировать на рыночную ситуацию и вносить необходимые изменения в ПО нужно очень быстро. И часто. И качественно. Любой косяк на сайте может повлиять на конверсию, риски выражаются в реальных деньгах.

Для сокращения времени обновления и повышения качества была создана специализированная платформа автотестов, на которой были автоматизированы рутинные задачи по тестированию изменений и регресса сайта. Кроме того, был выстроен процесс взаимодействия группы автоматизированного тестирования с командами разработки. Это позволило разработчикам сразу выявлять и исправлять дефекты в обновляемой системе, не дожидаясь финального приемочного тестирования.

Представители ритейлера сочли опыт успешным и решили применить его к остальным софтверным продуктам.

И ещё небольшой пример, но уже из практики одной крупной страховой компании. До внедрения автоматизации тестирования релизы выходили раз в полгода. Не потому, что так требовал бизнес, — просто чаще не получалось. А заказчик как раз хотел. Так вот, через два месяца после начала внедрения средств автотестирования, ИТ-команда перешла на двухнедельные итерации выпуска релизов.

Достаточно показательно, чтобы начать этим заниматься, не так ли?

Сергей Страмнов, пресейл-архитектор Центра программных решений «Инфосистемы Джет»

Источник

Time to market: почему показатель важен в кризис и при чем тут облако

Time to market что. 756082153630940. Time to market что фото. Time to market что-756082153630940. картинка Time to market что. картинка 756082153630940

Что такое 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: реально ли выпускать обновления в 3-5 раз быстрее?

Для многих компаний проблема выпуска новых версий ПО — это настоящая боль, которая связана с длительным и затратным тестированием, устранением багов и огромными потерями времени. Поэтому сегодня мне хочется рассказать про ускорение Time to Market и о тех бизнес-выгодах, которых можно достичь за счет улучшения процессов разработки ПО и автоматизации тестирования.

Крупные банки, страховые, ритейл и даже промышленность последние 5-6 лет говорят о себе, как об ИТ-компаниях. Но если для fin-, ed-, food-стартапов приставка tech и скорость работы — это их свойства с рождения, то для крупного бизнеса — 4 месяца на выпуск релиза с блокирующими и критическими ошибками на продуктиве — это печальная реальность, с которой компании ведут неравный бой.

По данным Capgemini 25%-40% бюджета в общепринятой мировой практике разработки ПО тратится на Quality Assurance. Это говорит о том, что отсутствие автоматизации является распространенной проблемой, и в результате слишком много ресурсов тратится на ручное тестирование. Больше всего пугает в этом контексте то, что ручное тестирование не решает проблемы качества и скорости разработки, и по мере роста сложности проектов и увеличения объема кода, отсутствие автоматизации все равно приводит к потерям.

У меня сложилось впечатление, что отставание крупных компаний в вопросах ускорения Time2Market объясняется тем, что руководители либо не слишком близко знакомы с ИТ, либо недостаточно погружены в существующие процессы. На некоторых проектах только после длинной серии итераций и общения с ИТ-специалистами (как своими, так и на стороне партнера/подрядчика) у руководства формируется понимание, что своевременный выход релизов с нужным качеством приводит к росту основных показателей бизнеса.

В самых разных отраслях — от розницы и банковского дела до промышленности и добычи полезных ископаемых — финансовые показатели стали напрямую зависеть от того, насколько быстро и качественно была внедрена очередная система. Поэтому все чаще топы VP или C-level уровней откладывают в сторону стратегии и подсчеты P&L и EBITDA и стараются научиться говорить с ИТ на одном языке во имя повышения скорости изменений.

Мы в «Инфосистемы Джет» практически на каждом нашем проекте, связанном с внедрением инструментов и методологий CI/CD/DevOps, сталкиваемся с фактом, что самая трудоемкая часть — не автоматизация, которую умеют делать почти все. Сложнее всего оказывается изменить образ мышления ИТ и бизнеса, помочь им обрести точки контакта и научить говорить на языке друг друга.

Чтобы добиться этого, нам приходится сначала расположить разные отделы к себе как к подрядчику, а далее — подтолкнуть к правильным действиям и научить задавать нужные вопросы. Мы стремимся сделать все возможное, чтобы внутри компании заказчика развернулся и заработал конвейер — пайплайн доставки софта на продуктив.

Без ошибок. Без перерасхода трудозатрат. Без потерь денег. Быстрее конкурентов.

Если раньше можно было тратить месяцы на выпуск новой версии чего-либо — системы, клиентской части интернет-магазина или дополнительных сервисов, необходимых для бизнеса, то сегодня долгий time2market — это фактически приговор. На реальных проектах наши ребята из отдела разработки и тестирования постоянно сталкиваются со следующими проблемами заказчиков:

несоблюдение сроков вывода на продуктив, нарушение SLA;

недостаточно современные подходы и инструменты управления качеством;

Все эти проблемы приводят к дополнительным затратам на разработку и снижению уровня прибыли от каждого нового релиза (которая напрямую зависит от скорости выхода в продуктив, а также наличия или отсутствия ошибок и проблем на стороне пользователей). Таким образом, затраты оказываются обратно пропорциональны скорости и качеству разработки и тестирования. В результате компания, выпускающая за два дня обновление своего сервиса с блестящим качеством, будет намного успешнее на рынке, чем фирма, подготовившая за две недели релиз с ошибками.

Идет ли речь про новый сервис или функциональность уже работающей системы, новую модель машинного обучения или пользовательский интерфейс, реальные результаты для бизнеса от этих инноваций зависят от скорости выпуска релизов. Каждый раз, когда компания планирует вывести на рынок новый сервис или улучшить старый, запускается один и тот же процесс:

Несмотря на то, что во многих организациях считают этот процесс очень простым, именно недостаточная оптимизация вывода ПО на продуктив значительно снижает эффективность работы отдела, приводя к росту затрат и снижению удовлетворенности клиентов. Ведь разработка и тестирование без выстроенных процессов автоматизации — это:

Например, когда новый релиз готовится к выходу в продуктивную среду, команда разработки/тестирования обязательно проводит регрессионные тесты, которые должны проверить совместимость новых функций с уже работающим функционалом. На практике же мы часто видим подобные схемы взаимодействия:

Разработчик: “Я закончил, нужно разворачивать стенд и тестировать”.

Инженер: “Сейчас уже нет времени, завтра запустим”.

Тестировщик: “Сегодня все уже забито, проведём тесты в ближайшие дни”.

Через несколько дней проводятся тесты, в ручном режиме находятся несколько проблем.

Разработчик: “Я уже другую задачу решаю. Как закончу, вернусь, попробую вспомнить, что там было”.

Инженер: “Ну что ж такое, опять стенд готовить”.

Тестировщик: “А, это я уже тестировал, теперь проверю только найденные баги”.

В итоге — критическая ошибка — в заказах теряется информация из поля “телефон клиента”. Приходится срочно откатываться, вносить изменения, выпускать релиз снова.

На реальных проектах видно, что за счет автоматизации хотя бы только этого этапа компания может уменьшить ФОТ проекта до 10%. Если же автоматизировать подготовку данных для последующих тестов, дополнительная экономия может составить еще около 12%. Инвестиции в подобные оптимизации обычно окупаются в срок не более полугода.

Архаичные процессы разработки чреваты появлением серьезных ошибок в продуктивной среде, с которой в конечном счете контактирует клиент. Кроме репутационных потерь, на которых сейчас не будем заострять внимание, проникновение ошибок в готовый продукт приводит к кратному росту затрат.

Проблема заключается в том, что при обнаружении ошибки уже после релиза, компания вынуждена:

Решить эту проблему можно за счет автоматических тестов. При должной автоматизации проверить новый компонент можно моментально после завершения работы, а значит программист сможет сразу же исправить ошибки, которые будут выявлены за несколько секунд вместо нескольких дней, и, главное, еще до тестирования и старта продуктивной эксплуатации.

Когда процессы разработки не выстроены должным образом, бизнес может столкнуться с проблемами разного характера. Это может быть отсутствие работающего механизма сортировки товаров, приводящий к потере клиентов. Или ошибки в формировании цен.

Например, как сообщали Ведомости, интернет-магазин «Связной» из-за сбоя в программном обеспечении продавал смартфоны по заниженным ценам. Клиенты могли заказать iPhone 8 с объемом памяти 64 Гб по цене около 6000 рублей, хотя обычно его цена не ниже 35 000. Более старые модели продавались по 49 рублей. Поскольку речь идет про федеральную сеть и популярный интернет-магазин, такой “распродажей” всего за 15 минут смогли воспользоваться 854 человека, а при сумме “скидки” в десятки тысяч рублей ущерб составил десятки миллионов.

Отсутствие выстроенных процессов приводит к срыву дедлайнов. А это означает, что на финальный этап, подразумевающий тестирование, остается минимальное количество времени. Даже если сотрудники работают без выходных и сидят над проектами ночью накануне выпуска релиза, они просто не смогут гарантировать его 100% работоспособность, если все предыдущие сроки были сорваны.

Но кто хочет оказаться в ситуации, когда выпущенный сервис не соответствует критериям качества и может повести себя непредсказуемо? Именно поэтому практика оптимизации разработки и внедрения современных подходов к тестированию помогает не просто выводить продукты на рынок раньше, но также делать их более совершенными.

Поэтому без внедрения средств автоматизации любое бизнес-направление начнет терять прибыль и сталкиваться с растущими затратами. Это связано с ростом общих объемов разработки, увеличению количества строк кода и взаимосвязанных программных продуктов. Из-за высокой нагрузки разработчики начинают чаще допускать ошибки, а отсутствие консолидированного подхода к выпуску обновлений требует большого объема трудозатрат в области тестирования и исправления ПО.

Наше подразделение тестирования собрало интересную статистику. Например, в системе средней сложности без автоматизации процессов, где трудится 7-10 разработчиков, 1 релиз выпускается за 3-5 месяцев, причем в нем допускается до 100 критичных и важных ошибок! А цена их исправления в продуктиве оказывается несоразмерно выше. Эту проблему подтверждает и мировая практика.

Внедрение автоматизированных тестов и унификация процессов тоже не сразу приводит к экономии. Например, для среднестатистического релиза, на который обычно уходит три месяца работы команды, экономия за счет уменьшения фонда оплаты труда (ФОТ) складывается из таких компонентов как:

При этом проект автоматизации и оптимизации системы средней сложности (и ее интеграционных взаимодействий) занимает не более 4 месяцев, а окупается уже за 2-3 месяца только на экономии ФОТ. На графике четко видно, как затраты возрастают на период старта проекта по построению автоматизации и организации процессов CI/CD, но уже с 5 месяца они оказываются на 25% меньше, продолжая снижаться со временем. То есть с 8 месяца изменения в процессах начинают «приносить прибыль», не говоря уже о том, что мы добиваемся сокращения Time to Market в 1,5-2 раза.

Не стоит забывать, что затраты на «ручные» процессы продолжают постепенно возрастать, т.к. любая система усложняется, и на ее поддержку уходит все больше сил. Растущее количество кода оказывается все затратнее отслеживать в ручном режиме. Поэтому выстраивать процессы нужно сразу в соответствии с проверенными методологиями, иначе затраты на переделывание будет в разы дороже. Но даже через некоторое время перейти на автоматизацию будет дешевле, чем продолжать делать все руками.

В следующей статье я как раз расскажу о реальном опыте ускорения Time to Market, в ходе которого увеличение частоты выхода релизов и повышение качества версий помогло компании снизить затраты на десятки процентов. При этом возможность возникновения значимых ошибок в работе своего интернет-магазина была полностью исключена.

Time to market что. AgentDesktop. Time to market что фото. Time to market что-AgentDesktop. картинка Time to market что. картинка AgentDesktop

Решить эту проблему можно за счет автоматических тестов. При должной автоматизации проверить новый компонент можно моментально после завершения работы, а значит программист сможет сразу же исправить ошибки, которые будут выявлены за несколько секунд вместо нескольких дней, и, главное, еще до тестирования и старта продуктивной эксплуатации.

Подскажите, пожалуйста, кто же и на какой стадии разработает эти автоматические тесты, которые в секунду найдут ошибки в новом (sic!) компоненте?

На этапе разработки, даже разработчик(а бывает, что еще и системный аналитик) точно не знает, правильно ли были интерпертированы спецификации на компонент, что, в свою очередь, вызывает последующие его изменения, с целью приведения к требуемой форме и содержанию.

Автоматические тесты, в свою очередь, пишутся в тот момент, когда функционал максимально стабилен, так как они должны отталкиваться от технической части реализованного функционала (не напишет специалист тест, если у него нет понятия о том как компонент будет сверстан или его эндпоинтах и бизнеслогике). В описаной вами парадигме компанию можно загнать только в большие траты на ФОТ, так как сотрудники будут бесконечно адаптировать сценарии под изменяющееся поведение компонента. Ведь, я напомню, трудоемкость автоматизации и поддержания сценариев в актуальном виде достаточно высока.

Даже в случае проведения исключительно регрессионного тестирования, имеют место быть трудозатраты, связанные с актуализацией кодовой базы сценариев, с целью убрать побочные эффекты от изменений, затрагивающие существующие сценарии, например.

Так что, даже если «секунды» были гиперболизацией, то все равно, до фазы тестирования вам(нам/всем) ничего не светит.

Мммм, ну лаааадноооо. )

Для API автоматизация ложится легко, поддерживается просто, а окупается очень быстро.

Если не секрет, как много лет опыта в сфере тестирования у вас, что вы так очень уверенно высказываетесь о легкости автоматизации сценария одновременно с разработкой компонента?

Куда API автоматизация будет ложиться, если автоматизатор не знает эндпоинтов API этого компонента и его контракта (который, кстати, может еще и измениться)? На этапе тестирования, бывает, выясняется, что бэкенд и фронтенд не смогли по этому контракту договориться, сидя в одном кабинете и работая над одной фичей, а вы хотите аналогичной вовлеченности человека или группы людей, которым еще пачку таких компонентов надо описать в сценариях.

Но! Важно тут не вырывать один кусочек из контекста

В статье этот «кусочек» является финальным аргументом в блоке о последствиях недостаточной автоматизации. Действительно, совсем маленький кусочек, почти вырвал из контекста.

Это такая же несбыточная мечта бизнеса, как и та, где в бдд подходе все стейкхолдеры успешно пишут автотесты на функционал. Я видел истории (не)успеха и первого и второго в рамках нескольких компаний и опыта коллег. Хотя те, кто это продавали вполне достигли коммерческого успеха, тут бесспорно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *