Alex, our customers do not always understand the difference between Junior, Mid-level and Senior developers. How could you explain this terminology?
What are the differences between senior, mid-level and junior?
Software Developer Qualification Levels
In the world of software development, it is customary to divide the developers’ level of training and professionalism into three tiers: Junior Developer, Mid-level Developer, and Senior Developer. At a glance, these terms are obvious, but in practice, it turns out that everyone understands them differently - even the developers themselves are not always sure how to determine their level, or the level their team members!
Today, Alex Ptashniy, Chief Technology Officer at Integrio Systems, shares with us his understanding of this controversial topic.
It’s always easier for me to draw on analogies. In my opinion, an analogy with drivers may be appropriate here, though the Trainee level is still lacking here.
There are students (Trainee), who drive an “L” car with an instructor. Having come across such a car on the road, you have a certain level of expectations. Yes, the car moves, brakes, accelerates, but it can stall at any moment, or behave unpredictably. Like a Trainee Developer, who knows the syntax, knows some constructs, but works under the constant care of a more experienced colleague, and makes mistakes quite often.
A novice driver - he already has the right to drive on his own, but still experiences difficulties, it is difficult for him to park, to drive in reverse, to drive through difficult intersections, etc.
In the hierarchy of developers, this is a Junior developer. Usually, he or she works with a team, performs simple tasks, plus requires mentoring and code reviewing.
An ordinary driver easily takes you from point A to point B and copes well with everyday maneuvers and situations on the road. A Mid-level Developer is already a fully-fledged developer. He or she has a certain experience, he or she can independently solve most problems and does not require mentoring.
And what is next step?
The next step is the most difficult to explain. Each of us is usually a specialist in his or her own field and can distinguish a true expert from an ordinary specialist. If you return to the analogy with drivers - there are experienced drivers. Unlike ordinary drivers, they can foresee and predict the situation. They, calculating the situation a few steps forward, avoid unnecessary risks. So, the Senior Developer, having considerable horizons and extensive experience, anticipates potential problems and chooses the best way to create a program. A Senior Developer can assess the complexity of the task more precisely and adequately. In addition to software design patterns, there are a lot of situations on the project that the Senior level developer has already encountered and has experience working with.
Yes, if we consider such an analogy, then everything falls into place. And how do you choose the right developer in your project? After all, it is obvious that Senior developers are much less common on the market and more expensive than others?
Indeed, all customers want only Senior developers in the project. But in this case, the development price rises sharply. The IT industry has developed certain approaches to selecting the right proportions in the qualifications of project participants, which provide the best price-quality ratio.
Projects can be conditionally divided, either by the size of the project (the number of developers involved), or by complexity.
In large and medium-sized development teams , a project usually uses a combination of all types. For every senior developer, there may be 2 mid-level and 3 junior developers. Such a compromise allows you to achieve an acceptable quality and speed of development, with a reasonable budget. Returning to the analogies: you do not expect that only Oscar winners will play in the battle scenes of a blockbuster.
When only one person works on a project, he or she obviously cannot be a Junior Developer. Usually in such cases a Senior Developer is required, or a person who is close to reaching Senior level. And, of course, the higher the complexity (or non-standard nature) of the project, the greater the percentage of senior developers required.
How can you understand what level of skills a developer has? Are there any formal criteria?
Unfortunately, formal criteria that allow you to quickly and unambiguously determine the qualifications of a developer do not exist.
Many operate only with work experience. For example, up to 1 year is Junior, from 1 to 3 years is Mid-level, and so on. But this is a very superficial approach.
Work experience is necessary, but not sufficient, condition to achieve a certain level.
For example, there cannot be a Senior Developer with 2 years of experience. On the other hand, there are many Junior Developers with over 5 years of experience.