Junior = Пишет код по таскам
Senior = Проектирует систему и пишет сложный код, ругается на джуна
Tester = Проверяет так чтобы все что наскребет джун работало и выдавало то что было задумано
Team Leader = Организовывает работу всех этих людей, помогает Senior в проектирование, наставляет джунов, помогает тестерам донести информацию до джунов и не обидеть. Ну и конечно работает с клиентом.
Но реальность она другая, порой бывает что и джунов посылают работать с клиентами.