But... how? Remote check-ins with juniors every 30-60 minutes? That's crazy. But that's basically the only way to replicate the in person experience.
The best mentoring results for me as the mentee and for me as a mentor have been when we're sitting next to each other. The mentor can visually tell when the mentee is stuck, and mentee can tell when the mentor isn't focusing on anything important and is more willing to ask for help.
No matter how many times you tell junior engineers to ping you at the first sign of trouble, they're not going to do it. They're going to toil for way longer than needed, unless you're sitting right next to each other.
I have to say as a counter point though that I've had a lot more trouble with coworkers coming to my physical desk for questions that they could have Googled than with Junior getting stuck for extended period of time remotely. It's all a matter of culture and relationships.
Oh come on... I get arguing that there are ways to make remote training good enough. Maybe even similar. Maybe even a net-positive when you look at the entire picture (including the productivity and happiness of your senior staff). But saying remote is better for training specifically? No way. That makes no logical sense.
In person: Usually have to face the person or the screen, can't see both. I have to write down commands and pass them, or type them myself. There is a delay finding others if we need to talk to them. More chance to transpose commands incorrectly by the user. Harder to record the session without losing parts.
So at minimum, in person would be the same. So I can't possibly see how in person could be worse.
In person is worse. I've done both. It's noisier, you're crammed into a cube taking notes, etc. If you're going to use remote tools, what's the benefit of in person?
Got it, I see you're in the "make up stuff about the other person" phase of the discussion. No point in continuing here.
They won't do that every single time. At some point they'll realize that asking for help isn't an issue.
Part of learning to be a sw developer is learning how to go about your work. Learning when to ask for help. If someone is doing this for you, you'll never going to learn.
Part of being a senior engineer is to use the mentorship skills you developed along the way and make judgements about how much struggle is right. Every new person should have a more senior partner with whom they can ask the dumb questions and not be made to feel dumb.
There are whole college degree programs designed to teach this, in fact.
It's clear which juniors are motivated and will make the most of the mentorship and which ones are not. Some are just there for the check and you cannot compromise your senior and higher talent on people who don't want to learn and grow and just want the prestige and check of a high-tech job. It's the same situation with someone who is drowning not listening to orders and taking down their rescuer with them too.
If a junior needs someone to sit next to them because they toil for way longer than needed on clear simple requirements and goals, this may not be the field for them. I never needed anyone right next to me that couldn't have been a direct message or a brief remote call to clarify something specific, clear, and to the point. You're describing a reality where the people who don't do are just trying to take as much time for themselves as possible to hide the fact that they don't want to think.
And very importantly, I'm saying 30-60 minute remote check-ins are an absolutely insane idea that should never be implemented.
I don't know any kind of remote system that provides for anything even close to the power of in-person mentoring.
How about letting them figure it out and provide opportunities to chat and ask questions from time to time. Everyone wants superdevelopers but everyone expects that you're going to put a complete noob in a room with a senior developer, they're gonna rub hand and in 2-4 days you're going to have another senior developer. That's not how it works.
We've used day long zoom windows or slack huddles. Keep muted until you want to say something. Slack is the same thing, just send a message.
Yeah, there might be some impacts to junior engineers. But if it improves the efficiency of your more expensive senior devs, isn't it worth it?
And just because your team has a problem with onboarding and mentoring junior devs in a remote environment doesn't mean A) Everyone has the same problem, B) you can't fix that problem yourself. Self improvement is the name of the game here anyway
People have been complaining about this development since forever. I'm not sure who that 'nobody' in your sentence is?
Mark Zuckerberg might be a true believer in open plan offices (judging by his public comments). But your average Fortune 500 company might only be into it for the savings in office space expenditure to be had from cramming people tighter. And some companies, like SAP (at least when I did an internship with them ages ago), still have offices (shared amongst eg 4 people) instead of going open plan.
It’s great you value work life balance, but junior engineers suffered a lot (to different degrees), and you being on edge that remote work might be taken away from you is nothing compared to what I went through and haven’t recovered from.
We’re allowed to love our work and the people we do it with, that’s my ideal, just a because you hate it doesn’t mean everyone should
But... the pandemic also broke me. Bad. I wasn't at all prepared for life trapped inside where my only interaction with human beings I knew was via video. There were like four months in early 2021 where I only had about four interactions with flesh and blood humans whose name I knew (like, not some entirely random person)... one of them was the guy who lived in a nearby park whom I normally avoid as it is so difficult to end conversations. I gained a ton of weight and at one point--end of 2020--I had given myself some kind of weird anemia (I think from lack of B12 in my stupid closed-in diet).
Like: I am someone for whom his entire life normalized remote work and who thrived in such an environment and yet the pandemic was so hard I still haven't really recovered... thinking about it makes me cry. (And like, yes: I could have better managed my lifestyle or better handled the loneliness. Whatever. That is also true for you, and I at least am not judging you for that.) It is one thing to not work in an office--you can work from anywhere! and there are a ton of people who you can get to spend time with--and it is entirely another thing to work explicitly from a small room in your home day in and day out for a year without human contact.
I thereby want to posit that maybe--just maybe--the issue isn't working remotely but being forced to stay at home and at times even fear going to the supermarket. There were periods during this thing when people were even afraid to meet up outside, and so human contact for white collar professionals outside of relationships was pretty much just verboten. The world was in a shitty place, and you shouldn't judge working remote based on the experiences you had during a pandemic without even trying to control for the existence of a pandemic as part of your analysis.
You’re right, I do still think there is value working in person, but remote work by itself isn’t what caused this, even if it’s still what happened.
Hindsight has made all this more clear, but imo loneliness is a silent killer around the world today, and covid threw jet fuel on the fire.
Don't misunderstand me, I'm not romanticising the marriage of one's social life to one's workplace, nor overlooking the ways this "we are more than a company, we're family" rhetoric benefits employers at the expense of their employees' outside lives and broader well-rounded and fulfilment. But I think asking people to separate them in an extreme way is just as untenable.
Working remotely I found myself constantly wasting time trying to figure things out on my own because I don't know if people are even online/active (spread out across the globe, another issue common with remote), if they are online I don't know if they have something more important to deal with at the moment, it is more difficult to extract information from seniors who are poor communicators - as good as they may be as ICs, most of my seniors will assume I should know every undocumented internal mess and it makes asking for more details intimidating. And I don't want to look like an idiot in writing! (lol, but I do feel that way sometimes)
If you want juniors to learn anything in a reasonable amount of time you have to give a bit of a shit and invest more time solely towards that especially in remote environments, seems that people just expect juniors to take the lead and force their way in though which isn't my style at all and if there isn't a common agreement and people are all just doing their thing it can come off as presumptuous to be bugging people left and right for the first months. Yes part of the problem is company culture not properly adapting to the environment, but I also haven't seen any change in the way we deal with communication since the Corona and of course seniors don't care because they got their job security.
To be clear, labelled as an 'IC' I have zero interest in training you. You will job hop at the first opportunity, and never lift a finger to help me in the future.
Here is a workflow I made all people I mentor go through: 1) what is the problem? 2) why is this a problem? 3) what are you actually seeing? 4) what have you tried to solve it? What are the results?
Nobody knows everything. Everyone makes mistakes. The team should help those people but they need to ask.
Today I was looking in the wrong devtools tab for a token value. Because we've worked hard making our team a safe place in which to ask questions, I felt comfortable asking what I was missing. Heck it's give and take, I know way more DevOps and Linux-y stuff, the devs know more about their job.
Because we try to think as a team, we do better and have less interpersonal clashes. I still complain about things each dev does, that's natural, but our team does pretty well together.
That's easier to do when you're more or less on "equal footing", but if you're a junior, it can take months to years to develop knowledge that seniors don't (depending on several factors). That's the problem, it takes much longer to reach a point where you have knowledge that is equivalent to that of seniors if the culture doesn't lend itself to frequent and high-quality communication and you have to learn about internal tools, processes, code bases and such largely solo. If you share a physical space with seniors you'll at least have some common downtime like a coffee or water break to "bother" them and it can save minutes to hours of tedium each time.
So either you end up being "that guy always asking stupid questions in the chat and interrupting my work" or you spend a lot of time spinning your wheels pointlessly for months/years on end. The first approach leads to unhelpful and delayed responses and the latter makes you so inefficient that you favor lower quality work so that you can actually deliver something.
There is no growth, no team cohesion in an environment where you’re berated for asking seemingly stupid or dumb questions. But I think people become numb and indoctrinated to it because “well, I had to endure this when I was learning” is such a demoralizing and abusive stance and nobody wants to change.
Things work so much better when everyone has a chance to pitch in, even if some ideas are dumb, just having the option is miles ahead of whatever bullshit people can justify from the “old way”.
Part of the process to change I’ve found is just leading by example. I’ll intentionally ask stupid questions that I know raise the ire of my similarly-leveled coworkers just to make the point to the more junior people that “hey, this staff-level guy is asking this, I might be able to too”. Junior people will gradually start to get the picture and ignore the rantings and ravings and toxicity of the debbie-downwers and the sticks-in-the-mud.
* Documentation that is up to date and answers not just technical details but the "why" behind the architecture. Something that shows you where to focus and where the frontier is.
* Defined, limited scope (at first). Scoping yourself to the entire codebase is a good way to become an expert in nothing. You need a foothold where you can gain expertise and give yourself a jumping off point to adjacent areas.
The latter is easier to accomplish than convincing everyone to write pages of docs that don't exist.
> if they are online I don't know if they have something more important to deal with at the moment, it is more difficult to extract information from seniors who are poor communicators - as good as they may be as ICs, most of my seniors will assume I should know every undocumented internal mess and it makes asking for more details intimidating. And I don't want to look like an idiot in writing! (lol, but I do feel that way sometimes)
Sounds like the company lacks good culture, process and guidelines on expected patterns of communication and behavior. There should be an onboarding buddy when things are implemented well.
Its not your fault, at all. Its the company. Its not inherent to remote work though
Instead of properly adapting the onboarding and mentoring to the remote setting let's romanticize the good old ways that imho sucked.
Let's cherrypick and pretend everything is fine. We went from offices to cubicles to open space and nobody stopped to think if it was a good idea. Wr transformed the office from a place where work actually is done to a placr where we "socialize". Work? Do that on your own time.