Менеджер не виноват в том, что код не покрыт тестами.

Тесты это хорошо. Тесты нужны. Но почему-то их не всегда пишут. Почему так происходит?

В разработке важно соблюсти баланс скорость-качество. Тестирование, на мой взгляд, стоит рассматривать как инструмент, помогающий улучшить эти показатели. И качество, и скорость. Обычно про тесты вспоминают когда что-то сломалось, да ещё и не понятно где именно, нужно дебажить. Тогда разработчик говорит: “А вот были бы у нас тесты, мы бы сразу этот баг поймали. Теперь придётся какое-то время искать что не работает и придумывать как это исправить. Ну разве я виноват? Времени нам на тесты не дают. И задачи написать тесты никогда не ставили. Только новый функционал требуют. А потом удивляются почему всё постоянно падает и мы медленно разработываем.”. Я сам так много раз делал.

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

Для себя я выявил пока только 1 сценарий использования тестов, когда они мне действительно помогают. Это рефакторинг большого куска сложный логики. Именно рефакторинг, т.е. в конце должен быть такой же результат как и в начале. Я создаю тесты на основе старого кода. Затем переписываю код и тесты обычно находят что-то, что я пропустил. Без тестов это было бы невозможно.
Резюме: главная причина отсутствия тестов - низкая компетенция разработчиков. Тестрование - не такой простой инструмент. Нужно учиться им пользоваться.