During the past 5 years I spent untold hours helping 3 junior devs level up in a very supporting and encouraging environment. In the end, it did not work. The devs were not self driven or motivated enough to make a difference. They would make small incremental improvements, but nothing that allowed them to work on a task independently. They have up too quickly when they ran into a difficult situation or immediately wanted to jump to a subpar solution.
We had to let them go. Then we hired an experienced dev who was self driven and the difference is night and day. The senior dev costs slightly more than the junior dev.
I don't think I will ever try the "talent development" approach again. The talent needs to do that work itself. If it is unwilling or unable, then so am I.
My conclusion from your story is that you needed to cut your losses earlier.
Put them in a situation where they need to produce a result, give them support, but if they need hand holding give them that feedback: you need to be independent on this or you will not be retained.
It sucks, but one or two experiences writing code for a junior dev and then seeing they do not even move on from there was enough. You can have the same kind of issues with crappy “senior” colleagues too, though…
Of course, if you don’t have the right kind of task for an “advanced beginner” (so to speak), that is a problem on the management end.
Bringing up junior colleagues is a fraught business, but when it succeeds you get a LOT of results out of it.
In the end, I try to keep in mind that it is all about money and time. From an individual project point of view, though, it can be very satisfying.
Talent does not grow on tree on its own but in organizations like yours, but not everyone is destined to be a talent. Those without the proper attitude for becoming a talent had to be let go, so the outcome is the same, only arguing the conclusion. You had bad luck with 3 bad ones for one good, but the usual ratio is not too far from this actually for other organizations. When you find the good attitude people it is a joy, especially if they grow into your environment, being tailor made for your figure. That will even be better than the one reused from elsewhere. ; )
I think there's a good chance that stories like these often come from situations where the one being "supported" have little to no functioning feedback cycle. Much of the time a manager just never reflects on their own communication style or that of the corporate system they're a part of, and don't realize how ambiguous someone's progression or success is. Although I am not suggesting this is OP, but in general
From that experience, it makes total sense that you wouldn't want to work with juniors like that again.
But I have the complete opposite experience. I'm a junior dev working on an embedded linux system, and some associated test applications. I have an extremely good mentor/boss who's helping me develop skills for those environments, and other associated skills that are absolutely invaluable to my career.
Now the difference of course is I am highly motivated. I love the work I do, and because it's so enjoyable and fun, I absolutely take a lot of my personal time to play around with work-related or at least work-adjacent projects.
My worry is that when I do eventually move to my next company/product, Ill be assigned to a manager that has had too many poor experiences with unmotivated juniors, and is unwilling to share their experience with me (in a cooperative manner, not just a one-sided relationship of course).
In my last job I mentored someone who was super-receptive to feedback including some that was a bit more nitpicky that I would have just let slide with a more senior person. I’ve also had a more senior person in a somewhat similar non-coding role who always seemed to be in a mode of not interested in learning something they didn’t understand.
On reflection, was there anything you would have done or looked for differently in the 3 junior devs? Something you think would actually have changed your outcome? Do you blame yourself in any way for not being able to develop the junior devs?
FWIW, I'm currently on this trajectory (as the mentor).
I’ve hired, mentored, developed, and sadly fired more devs than I can count at this point.
Activation energy cannot be trained. And that’s the prerequisite for just about everything, especially propensity for improvement.
We cannot develop talent in the same way pro sports teams do because there’s not a 50x difference between what we pay and junior or senior dev like there is in the NBA or a 1000x difference like in MLB or Euro soccer
The economics don’t support it. That’s the secret reason why schools matter still.
I mean, there probably should be a 50x difference. I've seen a single dev get done the work of 50 average devs many times. A single excellent engineer can produce immense business value.
It always baffles me how many places only pay sr engineers 3-5x more.
I didn't say "write 50x more code" I said "gets done the work of 50 average people". Think of all the meetings, admin, HR, accounting, meetings, stand-ups, one-on-ones, architects, code reviews, process improvements meetings, directors, and meetings needed to staff 50 engineers. Think of how much time is spent just keeping them vaguely aligned. For 50 engineers you need at least 4/5ths total effort just into keeping everyone and everything in sync and moving forward. There's tremendous waste.
It's not hard for one or two decently talented engineers to accomplish more in a year than 50 people.
If you are a 50x programmer working on a platform that others created (a business), you aren't really a 50x programmer. The environment for their productivity was created by someone else, not them.
I came to a similar conclusion. There is so much information and training out there, for free, that anyone motivated would have already taught themselves. This isn't to discount junior or beginner devs altogether, as everyone has to start somewhere, but discounting the idea you can magically mold them into something different.
When I got my start, I was the only engineer in a call center ___location. About 5 people a year would ask how they could do what I do.
What I learned after writing a long essay, with YouTube links and book references even, is that people just like the idea of it, without the work part. Not one did any of what I laid out.
After that, anyone who asked I just mumbled something about college, even though I never attended one.
Exactly the same happened, and I would add that those guys "soft"/social skills were more developed that the senior devs, so the non-technical people of the company tough they were really good.
You need to be able to identify junior devs that are self driven. Or to be more general, devs of any level that are self driven. I have developed several interns and was super happy with the result. But there were a lot of other interns and juniors (and seniors) where it was clear after a few months that they just don't have it.
Weirdly enough I've found some of the effects of talent development become most apparent when they're left to their own devices (as in no help is coming and they're aware of this).
Not that you can expect everyone to learn everything, or jump to a 'higher' level merely by having access the right information.
I had lazy experience people and self-driven interns. The experience on the has very little correlation with attitude. I’ll take the hard working, self motivated person regardless of claimed experience 100/100 times.
I think "talent development" is still valuable if you find genuinely high agency/curious/hard-working people. I bet you that senior dev, when they were less experienced, would have been a rewarding person to help develop.
I think the problem is that it's really hard to identify people worth taking a risk on developing, because during interviews everybody puts their best foot forward. Typically people use some kind of proxy for this like education or prior achievements, but those are far from perfect (and in fact, both are heavily gamed such that they are rapidly declining in value as a signal) because people will have varying levels of motivation throughout their life and in different environments, and people lie/exaggerate. You can also filter on how much they've developed themselves/been developed, eg how well they perform in a coding interview or what kind of personal projects they've done, but that's arguably just filtering on experience and also subject to gaming (people do these things just to get a high paying SWE job and that drive isn't necessarily there after they have one).
Also, you have to be willing to let people fail or struggle with tasks (you think are/that are) beyond their current skillset to let them grow. To a certain extent people can be trained to persevere through or creatively work around problems, although I do think there is a lot of variance in how well people pick that up. I've found that being too willing to help with these problems is a major reason people don't develop those skills themselves - it's just hard because they're often a source of frustration or stress for the other person, and you know you can probably solve it, and they might know you can probably solve it, so you have to be the bad guy and make them do it anyway.
I recently made the first hires at my startup and handled everything from the job description to talent sourcing to interviewing to onboarding, looking at early career people. Because the hiring market is so favorable to employers right now, I got a ton of applications and managed to hire some really great people. One thing I noticed is that the best candidates tended to be "unique" in their resumes or even their way of contacting me about the position, and they also had strong interests such that they had deliberately gone out of their way to learn new things beyond trivial stuff like "side projects" that amount to following a tutorial. Sometimes a resume might suggest that, but in an interview you could see that those interests were purely surface level; I also designed a pair-programming interview designed to put them way out of their comfort zone as a way to evaluate their perseverance and creativty. So far the agency and curiosity my hires demonstrated has extended into their jobs, and I'm really happy to be able to develop them further, because I can trust that they're going to be active participants and not just "some person who wants a job" that expects to be spoonfed.
We had to let them go. Then we hired an experienced dev who was self driven and the difference is night and day. The senior dev costs slightly more than the junior dev.
I don't think I will ever try the "talent development" approach again. The talent needs to do that work itself. If it is unwilling or unable, then so am I.