«Да кому нужны эти юниты?» Влияние юнит-тестов на показатели проектов: опрос
Менеджер проектов в Oxagile Роман Ковалевский задался вопросом о применимости мировых стандартов тестирования к аутсорс-разработке в Беларуси. Чтобы выяснить актуальное положение вещей, он предлагает заполнить короткую форму (она также доступна ниже в тексте) всем, кто может обладать полезными данными. В колонке он объяснил, почему считает опрос важным и какую пользу планирует извлечь из него.
«Да кому нужны эти юниты? У нас тестировщик в команде на что?», — сказал Саша, веб-разработчик на нашем новом проекте. Я был новичком и принял его слова за истину в последней инстанции. Первая пара месяцев прошла нормально, а где-то через полгода нас накрыло волной регрессии. Большая часть времени уходила на багфикс, и это жутко всех расстраивало. Проект закончился, и на последней ретроспективе все согласились, что отказ от тестов был ужасной идеей.
Сегодняшние сторонники написания юнит-тестов знают, какие бонусы они получают:
- меньше регрессионных багов, как следствие, меньше времени на стабилизацию;
- более быстрый процесс поставки (первый шаг к CI\CD);
- проще дебажить код;
- улучшение архитектуры;
Несмотря на то, что наличие юнит-тестов становится стандартом на рынке разработки софта, у противников этого подхода также есть весомые аргументы:
- написание тестов занимает время (0.3-0.9 от времени разработки, из того что я встречал);
- поддержка тестов занимает время (помимо исправления выломанной фичи, разработчик тратит время еще и на исправление тестов);
- написание тестов может попросту не оправдать себя. Многие проекты пишутся небольшими фазами, которые покупает клиент одну за одной. Команда не знает, сколько фаз продлится проект. Имея контракт только на 1 фазу, скажем, в два месяца, дешевле будет проверить функционал руками, чем писать тесты.
В какой-то момент мне стало интересно:
«на каком по величине проекте стоит писать тесты?»
«сколько времени я сэкономлю на стабилизации, если буду писать тесты?»
Я полез в гугл и нашел несколько исследований различной давности. Это были серьезные работы, отвечавшие на самые разные вопросы — конечно, кроме тех, что интересовали меня. О том, чтобы найти данные по аутсорсу в РБ, речи вообще не было. Поэтому я решил попробовать исследовать предмет самостоятельно, создав этот опрос. Приятным бонусом будет узнать сколько в среднем тратят белорусские разработчики на написание тестов, сколько багов находят и прочие мелочи.
Опрос полностью анонимен и займет всего пару минут. Для его заполнения понадобится проектная статистика — сколько было потрачено времени на разработку, стабилизацию и т.д. Если у вас есть данные о нескольких проектах – отлично! — заполните анкету несколько раз. Если у вас их нет — пожалуйста, воздержитесь от искушения заполнить цифрами «на глазок». Когда соберётся достаточно данных, я постараюсь оперативно обработать результаты и пошарить цифры, выводы. Спасибо всем, кто сможет принять участие.
Текст и опрос: Роман Ковалевский, PM в Oxagile