2 comments

[ 3.1 ms ] story [ 10.1 ms ] thread
I like having junior developers on my team and always ask to have at least one, but the reality is that we can't really afford to have more than about 20% of the team being junior.

There are some problems that aren't really addressed by the article. The main issue is that it's much, much, much easier to write bad code than good code. Even when you have a couple of decades under your belt, it's hard to write good code. While bad junior developers will sit around browsing Facebook all day, good junior developers will spend their time churning out hundreds and hundreds of lines of bad code. Mentoring or not, dealing with the fallout of that code is not trivial. And the volume of it can be daunting!

There is an additional problem that people's expectation of junior, intermediate and senior is skewed. The vast majority of people I've interviewed think it's reasonable to be "intermediate" or even "senior" after 1 or 2 years of experience. Their increasing confidence in their ability (which is admittedly improving rapidly at that stage of their career) translates into demands for more authority. Handling that transition is often difficult -- it is normal to completely screw up several projects before you figure out how to really be a good senior developer. It is also (unfortunately) normal to be completely unaware that you are screwing up those projects (even many years after the project is completed).

So when you hire a junior developer, you need to mentor them. You need to fix up problems that they create. But you also have this kind of time bomb where they will be pushing to break things on a much bigger scale. You have to be prepared to help them through that period. If you have 4 or 5 juniors on a team of 8, God help you in 2 years.

Which is not to say that you don't need juniors. However, keep in mind that the potential length of career of a programmer is something like 40-45 years. It should not be strange to have a team with several people who have more than 20 years under their belt -- and yet it is often very strange.

> keep in mind that the potential length of career of a programmer is something like 40-45 years. It should not be strange to have a team with several people who have more than 20 years under their belt -- and yet it is often very strange.

IT industry experienced very fast growth in recent years in number of candidates. We don't have enough people to consistently form teams with at least one guy with ten years of experience, much less several guys with twenty years. We'd need to wait another decade or two to see the seniority expectations to normalize like in any other craft.