Фундаментальная часть этого заключается в том, что ответственность кодера заключается в создании кода, который работает и удовлетворяет требованиям. Это требует особого мышления - «Код, который я пишу, делает то, что должен».
Смешивать обязанности кодера означает, что теперь кодер должен вводить другие установки для других видов деятельности, однако, будучи кодером, трудно или невозможно полностью отделить себя от этой установки.
Ответственность тестировщика состоит в том, чтобы находить ошибки и места, где функциональность отклоняется от требуемой функциональности. Это потребовало мышления «Код сломан, и я выясню как».
Аналогичным образом, бизнес-аналитик пытается определить требования, которые клиент фактически запрашивает. Это требует другого подхода: «приложение не работает таким образом, но оно должно работать».
Для того, чтобы кодер работал в любом из этих других качеств, существует разумная вероятность того, что образ мышления будет конфликтовать, и кодер будет выполнять подпара:
- Кодер / QA - «Код работает отлично, и я уже написал код для обработки всех возможных способов, которые могут привести к поломке».
- Coder / BA - «Код должен работать так, как я хочу, и это было бы изящным дополнением, о котором клиент не думал.
Это не означает, что каждый кодер подвержен этим проблемам (я встречал некоторые очень одаренные типы кодеров / QA ... хотя и не для написанного ими кода).
Это распространяется и на команду разработчиков. Смешивание обязанностей и связанных с ними подходов этих обязанностей для команды разработчиков ставит под угрозу конечный продукт (код).