Companies have been hiring tons of inexperienced devs throughout the late '90s and early '00s, and they have been hurt badly by it. Incoherent teams full of junior devs that lacked practical skills and didn't know how to work in a team nearly killed many software based companies.
A CS degree teaches barely any professional skills, it's all on the job training, so training a junior is extremely costly.
So nowadays, smart companies build their team around seniors, and only then start hiring juniors one at a time. Which means 3 to 4 seniors for every junior dev.
It's not about "plugging the hole", it's about making sure the ship doesn't start leaking so badly it sinks.
The following team is vary senior heavy and would avoid the junior dev team syndrome without costing an arm an arm and a leg and is still reasonably stable over the long term as long as turnover is low.
1 person with 0-2 years exp, 1 person with 2-5, 1 with 5-7, 3 with 7+ and 1 with 15+.
To, keep priming the pump just look for one new grad every 2 years and keep a lookout for the occasional great senior dev out there to cover for attrition.
Hiring "junior devs" and "hiring inexperienced devs" can be a world apart.
Hiring someone for position X who turns out to be inexperienced is not the same as explicitly hiring a junior developer with the intent of training them up.
I've seen a lot of the former, but not much of the latter. The two ideas get conflated quite often, but in reality are different and the latter takes a bigger commitment of resources.
"So nowadays, smart companies build their team around seniors, and only then start hiring juniors one at a time."
5-10 years from now, the conventional wisdom will probably be different. Sr devs might be more willing to leave, and if there are fewer of them, a larger percentage of your company knowledge, culture and IP resources go with them.
Where are the companies hiring warlocks in training, people willing to learn but needing the chance to grow and be challenged.
I guess I wonder why, if I was indeed a sr level engineer, why I would work for anyone at all when I could command high rates as a freelancer, or build my own products.
On the other hand for people with 5+ years of experience there seems to be tons of high paying jobs.
Five years ago you could get a job around here as a security guard making 80k if you had a TS clearance.
well and after all that investment the person leaves for better salary/etc... to somebody who is looking to hire senior people and not "willing to hire a junior dev or admin and contribute anything at all to his/her personal development, skill accumulation, and experience" There is a reason for the things even if we don't like the reason.
And again, the "hot" skills (any NoSQL/Hadoop) can be picked in a week and even junior with such skills would easy find a place. There is just no excuse for somebody unsuccessfully looking for work in this market to not sit down and master some of such skills.
They could offer them a raise based on their new value? If this company can't pay people well or offer a good work environment, how are they going to get senior developers?
> (any NoSQL/Hadoop) can be picked in a week
I can't believe there are companies looking for people with a "week" of experience in NoSQL who aren't mid-level developers already.