Posted 11 марта, 07:58

Published 11 марта, 07:58

Modified 23 августа, 08:37

Updated 23 августа, 08:37

Как ускорить разработку IT-продукта: советы от Дениса Лаптова

11 марта 2024, 07:58
Цифровой мир стремительно развивается. Новые технологии появляются каждый день, а конкуренция на рынке IT-продуктов становится все жестче. Чтобы оставаться на плаву, бизнесу необходимо не просто выпускать качественные продукты, но и делать это максимально быстро.

Иван Петровский

Сегодня разработчики и тестировщики сталкиваются с серьезным вызовом: как ускорить процессы разработки и выпуска продукта без ущерба для качества? Как обеспечить слаженную работу команды и минимизировать риски ошибок?

О современных методологиях, которые помогают решать эти задачи, нам рассказал Денис Лаптов, QA Lead с многолетним опытом работы в крупных российских и международных IT-компаниях.

— Денис, приветствую! Спасибо, что нашли время для интервью. Вы уже много лет работаете в сфере QA-инжиниринга и известны своим глубоким знанием этой области. Расскажите, пожалуйста, подробнее о себе и о вашем пути в профессию.

— Мой путь в IT начался в компании «БАРС ГРУП». Я пришел туда младшим специалистом по автоматизированному тестированию и за несколько лет дорос до лидера команды. Мы работали над серьезными проектами для министерств РФ — Минфина, Минздрава, Минстроя. Именно в «БАРС ГРУП» я получил бесценный опыт внедрения передовых технологий и смог разработать внутренние стандарты качества ПО, опираясь на международные стандарты ISO.

Спустя 6 лет я перешел в американскую IT-компанию, которая входит в S&P 500, на позицию QA Manager. Здесь я сфокусировался на развитии практики тестирования в сфере computer science. Кроме того, я проводил обучение для студентов из университетов Санкт-Петербурга, лучшие из которых впоследствии присоединились к нашей команде. В этой компании я участвовал в международных проектах в различных доменах: страхование, здравоохранение, маркетплейсы, банки и финансы.

— Не могли бы вы рассказать нашим читателям, как DevOps преобразовывает тестирование и какие изменения он привносит в процесс разработки?

— DevOps — это, по сути, ускорение цикла разработки и выпуска продукта за счет автоматизации и тесной интеграции разработки (Development) и эксплуатации (Operations).

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

В моей практике DevOps позволил нам значительно ускорить процесс выпуска новых версий продукта. Например, в одном из проектов мы смогли сократить время от написания кода до его появления в продакшене с нескольких недель до нескольких часов. Это стало возможным благодаря автоматизации большинства процессов — от сборки и тестирования до развертывания и мониторинга.

— Каким образом DevOps помогает ускорить цикл разработки и как это влияет на работу тестировщиков? Меняет ли он роль ручного тестирования?

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

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

Конечно, DevOps не исключает ручное тестирование полностью. Всегда останутся задачи, которые требуют внимания человека. Однако DevOps позволяет автоматизировать рутинные операции и освободить время тестировщиков для более сложных и творческих задач, таких как исследовательское тестирование или оценка пользовательского опыта.

— Какие инструменты DevOps вам кажутся наиболее эффективными?

— На моем опыте лучше всего себя показали комплексные платформы, такие как Azure DevOps и GitHub Actions. Они позволяют управлять всем жизненным циклом разработки в одном месте — от планирования и отслеживания задач до непрерывной интеграции, доставки и мониторинга.

Например, в Azure DevOps мы используем инструменты для управления версиями кода (Git), планирования спринтов (Azure Boards), автоматизации сборки и развертывания (Azure Pipelines), а также для управления тестами (Azure Test Plans).

— Как DevOps влияет на систему обратной связи между разработчиками и тестировщиками?

— DevOps позволяет наладить более тесное и эффективное взаимодействие между разработчиками и тестировщиками.

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

— Какие самые большие препятствия вы видите при внедрении DevOps в тестировании?

— На мой взгляд, главное препятствие — это недостаток опыта и знаний в области DevOps у многих специалистов. Внедрение DevOps требует не только новых инструментов, но и изменения культуры работы команды.

Еще один важный момент — это сопротивление изменениям со стороны некоторых сотрудников. Не все готовы отказаться от привычных методов работы и освоить новые инструменты и практики. Поэтому важно проводить обучение и мотивировать сотрудников к внедрению DevOps.

— Как вам кажется, изменится ли профессия QA в будущем? Наступит ли эпоха DevOps? Если да, то какие навыки будут наиболее важными для тестировщиков в эту эпоху?

— Я уверен, что эпоха DevOps уже наступила, и она активно меняет профессию QA. Тестировщики перестают быть просто «контролерами качества» на финальном этапе разработки. Они все больше вовлекаются в процесс создания продукта с самых ранних стадий, а автоматизация тестирования становится неотъемлемой частью их работы. В будущем эта тенденция будет только усиливаться, и роль тестировщиков в команде будет становиться все более активной и ответственной.

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

— В каком направлении будет развиваться DevOps в тестировании в будущем?

— DevOps в тестировании не стоит на месте. Он стремительно движется в сторону еще более глубокой интеграции с другими областями IT, такими как безопасность (DevSecOps) и аналитика данных (DataOps). Представьте: тестирование, которое не только гарантирует качество продукта, но и его неуязвимость для кибератак, а также опирается на огромные массивы данных, чтобы стать еще более точным и эффективным.

Конечно, развитие инструментов для автоматизации тестирования тоже не остановится. Мы увидим появление новых, более «умных» инструментов, способных самостоятельно обучаться и адаптироваться к постоянно меняющемуся коду.

Важно понимать, что DevOps — это не волшебная палочка, которая решит все проблемы. Но это мощный инструмент, способный принести огромную пользу, если его правильно применять. DevOps открывает перед нами возможность создавать IT-продукты еще быстрее, качественнее и безопаснее.