Для этого есть какие-то устоявшиеся методики или программисты сами себе лычки придумывают?
Скорее второе.
Система грейдов может сильно отличаться в разных компаниях. В Сбере, например, любят сразу давать "старшего" разработчика, даже людям совсем без опыта.
В некоторых командах абсолютно невозможно стать "сеньером", но как-то, за выслугу лет, видимо, "сеньера" там получают. Да и рост з.п. как-то нужно оправдывать перед hr.