Где грань между программистом и тестировщиком?

(Из ленты Чудес не бывает или я ошибаюсь?)

Такой вот полет мысли, может достаточно сумбурный родился после прочтения сегодня двух хороших статей: «Roles and Fluidity» Алана Пейджа и история про изменения в процессе разработки в Yahoo! «Who Needs QA? Not Yahoo!«

Еще вчера с товарищем Papa Minos делились впечатлениями от выпуска RadioQA «QA: Пациент жив или мертв?«, где @umputun раскатывал всех в тонкое тесто (хотя получилось это у него натужно и скорее в силу авторитета, а не согласия оппонентов).

Как мне кажется, всё сходится к одному: ролей, которые приходится играть при разработке ПО, много (здравствуй, КО). И искусство, мастерство, если хотите, заключается в том, чтобы уметь между этим ролями переключаться.

Кому то это удается хорошо, кто то справляется хуже, а кому то это вообще неинтересно, но роли есть и это факт.


Дальше можно много спорить о том, что «нафига переключаться», «на переключение тратиться много времени», «требуется больше знаний» и тд, и тп.
Но, умеющие переключаться, перевоплощаться, решают свои задачи эффективней. Команда с такими «артистами» результативней и в целом работать становиться легче.

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

Аналогично и обратное: если для решения своей задачи тестировщику требуется (оставим за рамками вопрос зачем) написать хотя бы простой скрипт, а он этого делать не умеет, то и задачу он решит (если вообще решит) скорее всего не так хорошо, как мог бы. Хороший пример в статье Алана.

И даже если объединение профессий программиста и тестировщика в разработчика (привет Леше Виноградову) мы пока (пока?) рассматриваем только в отдаленной туманной перспективе, то что делать со специализациями в рамках этих профессий?
Например, уже есть тестировщики, которые занимаются только нагрузочным тестированием, при этом навыки проверки UI у них слабые. Программисты, которые с закрытыми глазами напишут драйвер, но спасуют перед SQL-скриптами. И таких примеров можно приводить много. Контраргументом часто приводят точку зрения, что «знать все невозможно», а «специализация рождает скорость и правильность».

Все так, ровно до того момента, когда этот узкий специалист станет узким горлышком, через которое будет по капле просачиваться ваш очередной релиз и вам понадобится новая буква в русском алфавите…

Источник: Где грань между программистом и тестировщиком?