Today I responded to an inquiry as how to judge whether an developer is a
Senior/Mid/Junior level.
Here is my rule of thumb (with some commentary):
A senior requires little or no supervision, can work with
the business teams independently, understands current technology and is looking
ahead to new trends, and constantly creates personal growth opportunities, can
lead and mentor other developers. (They make others more valuable as well as
themselves)
A mid-level can do tasks independently but needs some
guidance on architecture or direction. (Their value is the work they
produce)
A junior requires task guidance and supervision. (Their
value will begin 12-24 months down the road)
I think in our business we have too many seniors that do not the basic soft
skills, are not current with technology, and get promoted because of time in the
position and not necessarily what value they create for the organization. This
is one reasons organizations are seeing their development maintenance cost
continue to increase, but productivity flattening or even decreasing.
I think an ideal IT departments spread would be 20-70-10 (Senior/Mid/Junior)
but most are top heavy with seniors that should be mid.