Experience is the main important indicator to point to someone’s seniority and usually it is measured by time and it comes with two assumptions:
1) An Increased accumulated knowledge over time.
2) An increased maturity by being exposed to multiple patterns of situations and learning how to deal with each situation over timer.
Now, how does the world of an industry like ours (Software) change the rules? where almost nothing is traditional anymore. We have short lifecycles, rapid technologies changes, younger developers tend to know more new technologies than older developers and finally due to this rapidness if developer is exposed to as many different patterns maturity rises with it rapidly.
In essence, the time factor which was the controlling dimension in the “Experience” has shrank. Therefore, we can say the 5 years experienced developer today is more experienced than the traditional 5 years experienced developer.
But is that completely true? I thing the rapidness nature that we are facing introduced one of the most important assumption to be embedded within experience which is “Dealing With Ambiguity”.
Dealing with ambiguity becomes important factor due to the gaps that are created by this rapidness and today it should be a good factor that plays into the experience. A junior developer might know more but usually in more controlled environment with less ambiguous variables and with more ambiguous variables, the seniority is a big differentiator.
At the end a senior developer (from my view) is someone who has an increasing knowledge, with increasing maturity of understanding as many situation patterns and finally increasing ability to manage ambiguous variables.