Говоря на чистоту, что это вообще значит? Я проводил семинар на эту тему среди начинающих и опытных разработчиков с вопросом — как они сами отличают позиции в разработке? В какой момент можно для себя сказать: «вот, с сегодняшнего дня я Middle, пойду обновлять резюмешку», и вообще может ли такой момент настать? Забегая вперед, здесь очень хорошо подходит аналогия с кучкой песка. Представьте, что мы складываем в ладонь по одной песчинке. Вот их уже две, четыре, десять… Больше двадцати песчинок в ладони. Можем ли мы назвать это кучей? Или хотя бы кучкой? Горстью? Пригорошней? Так же и с агрегатным состоянием кодера — конкретного момента перетекания из одного вида в другое поймать сложно, отсюда и отрастают позиции Middle+, Middle strong. Разве что с опытом дела обстоят легче, он так или иначе определяется во вполне конкретных измеряемых годах. Так и мы пришли к выводу, что уровень разработчиков отличает их непосредственно количеством направленного опыта в разработке, конкретных технологиях, и областью ответственности, которую человек готов на себя взять.
А еще это инструмент управляемого повышения грейда сотрудника. Многие компании еще и middle и senior делят на свои внутренние 3-6 градаций.
Да, сам встречал различных 15 грейдов для мотивации роста
Ну, мне проще это воспринимать как функцию, как "должностные обязанности". Можно работать джуном и быть очень крутым специалистом, который способен проект тащить.
Конечно! Но это будет лишь означать, что вы джун в техскилах, но далеко не джун в софт-менеджерских.