Качать хардскилы программистов или улучшать методы тестирования?
С утра пораньше в Кругах на полях IT устроили небольшой срач о том, что программисты должны писать код, а тесты искать в них ошибки. Т.е. программист не должен думать и проектировать перед выполнением задачи, он должен фигачить как можно быстрее код, который решает проблемы бизнеса. О том, что это за проблемы должны подумать аналитики, а о том насколько качественный код должны подумать тестировщики и автотесты.
Кратко тезисы "за тесты":
- развитие инструментов тестирования - это прогресс
- программист все равно будет ошибаться, поэтому "без тестов" лучше не получится
- хороший программист решает проблемы бизнеса и не более того
Кратко тезисы за "хардскилы":
- тесты не доказывают отсутствие дефектов, а только проверяют их наличие
- у тестов есть "эффект пестицидов", который проявляется в том, что тесты требуют постоянного улучшения и обновления, что приводит к работе "только на тесты"
- метрика "количество ошибок, отловленные тестами" ведет только к увеличению количества ошибок, которые допускают программисты, нужно стремить к тому, чтобы уменьшилась метрика "недовольные пользователи", а этого достичь без развития программистов невозможно.
Мысль моя вот в чем:
- тесты - это условно "средство контроля", а программисты - это условно "средства производства", невозможно улучшить качество итоговой продукции улучшая только "средства контроля", поэтому улучшать и углублять свои знания программисты просто обязаны, чтобы совершать меньше ошибок.
- Основные усилия должны тратиться на развитие кодовой базы проекта, а не на развитие кодовой базы тестов.