Developer vs QA: кто останется в эпоху ИИ?
В связи с внедрением ИИ в жизнь разработчика и пониманием необходимости контроля результатов всё больше разработчиков пишут тесты. Может ли исчезнуть «программист» как вид, потому что он стал мега-продвинутым QA? Или QA придётся стать «программистом» с обыденной возможностью писать мега-тесты?
Колесо, станок и «оно само работает»
Прогрессу сопротивляться очень сложно, а во многих моментах опасно и неполезно. Когда придумали колесо, была масса противников опаснейшего дела — езды на повозке с умопомрачительной скоростью. Потом были ткацкие станки, печатный пресс, калькуляторы, компиляторы. Каждый раз крик один и тот же: «Это отберёт работу!» И каждый раз через поколение новый инструмент становился настолько обыденным, что его переставали замечать. Прогресс переносит рутину в автомат, а человеку оставляет контекст, ответственность, решение.
Сейчас на слуху Искусственный Интеллект (ИИ). Ни одна модель не «понимает» ваш бизнес-контекст. Ни одна модель не несёт ответственности за прод, упавший в пятницу вечером. Но генерирует код — быстро, много, уверенно.
Где тесты, Карл?!
В моём рабочем окружении разработчики используют ИИ в разных целях, только почему-то использование не идёт в сторону TDD или хотя бы простого написания тестов. Мне на это странно смотреть, ведь ИИ освобождает уйму времени! Почему не уделить его на улучшение кода и написание тестов?
Раньше TDD был «дорогим» — PM не закладывал время на тесты. А теперь представьте: вы описываете модели контракт функции, граничные условия — и через тридцать секунд у вас десяток тест-кейсов. Не часы, а минуты!
Часто слышал от PM, что «тесты не нужны, они тратят время». Ну вот, сейчас тесты можно генерировать с офигенной скоростью. Где тесты, Карл?! Возможно, слова про трату времени прикрывали некомпетентность?
Разработчик не QA, QA не разработчик?
Мне доводилось работать в компаниях, где QA и разработчики в открытую ненавидели друг друга. Цветут тезисы: «разработчик — это не QA» и «QA — не разработчик». Для меня это дико: все говорящие такое в итоге пишут код. Разработчик пишет юнит-тест, QA пишет автотест. Разделяет их код только обязанность в компании.
Эта вражда всегда была искусственной. Разработчик, который не думает о проверке, пишет непроверяемый код. QA, который не понимает код, тестирует «по кнопкам» и пропускает дефекты. Обе стороны проигрывают.
ИИ как великий уравнитель
И вот теперь у нас есть ИИ. Стирается грань между профессиями. Разработчики могут начать писать тесты, а QA — участвовать в разработке напрямую. ИИ меняет саму природу узкого места. Раньше узким местом было написание кода. Сейчас узким местом становится верификация. Способность увидеть, что модель сгенерировала красивую, но логически бессмысленную дичь.
QA-мышление перестаёт быть «функцией отдела» и становится базовым навыком. Не «я пишу автотесты в отдельном спринте», а «я проектирую проверку на каждом шаге генерации».
Разработчик без QA-мышления — оператор копипасты. QA без понимания кода — зритель. Обе крайности — тупик.
Вакансии и парадокс
Смотреть вакансии стало страшно. «Ищем Senior Backend Developer со знанием Kubernetes, ML-пайплайнов, QA-автоматизации, UX-исследований и желанием вести подкаст». Раньше это называлось «хотим одного вместо четырёх». Теперь — «в эпоху ИИ один закрывает весь цикл».
Парадокс: чем больше ИИ берёт на себя генерацию, тем больше нужно людей, которые понимают процесс целиком. Спрос смещается от узких исполнителей к людям с широким кругозором. Ирония: это всегда было сутью хорошего QA и архитектора. Просто теперь это нужно всем.
Вместо вывода
Самые «догадливые» разработчики уже умеют в QA, а QA — в разработку. Это прогресс, который даёт возможность достигать ожидаемого результата раз за разом.
Никто не «останется» в чистом виде. Останется тот, кто умеет думать о результате, а не только о своём участке конвейера. Тот, кто способен сказать: «Я сгенерировал код — и я же доказал, что он работает».
«А ты — встал на путь прогресса? Или всё ещё ждёшь, что кто-то другой напишет тесты за тебя?»
· 14.08
В AI-эпоху граница между dev и QA реально смещается, но исчезать QA не обязан - скорее меняется способ проверки. Автотесты и review ловят повторяемые вещи, а вот продуктовые сценарии и риск регрессий всё ещё требуют инженерной головы. Как вы делите эту ответственность в команде?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 14.08
Благодарю за комментарий, Вы точно подметили, что исчезает не QA, а рутинный способ проверки.
Из моего опыта управления командами, в том числе с QA - мы делили ответственность по контексту. Разработчик отвечает за свой код - юнит-тесты, контракты, самопроверка; с ИИ это теперь дело минут, так что отговорка "нет времени на тесты" больше не работает. QA отвечает за продукт целиком - сценарии, риски регрессий, критерии приёмки. Причём QA подключаем на этапе постановки задачи, а не перед релизом.
При такой схеме у QA как раз остаётся время на ту самую "инженерную голову", про которую Вы, как понял, и пишете. При таком подходе разработчик привыкает думать, как его код будут проверять. Граница не исчезает - она становится проницаемой. Про это и мысль. (:
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён