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