First Timers Only
I love this.I've been thinking about a very similar issue for a while now, and I'm still trying to organize my thoughts into a blog post or something, but here's the basic idea:Hire more juniors. Or cross-train people from other departments[1]. Doesn't really matter who. But they should be pretty darn close to beginners.Assign a relatively small issue to them. The kind of thing that would only take about an hour for a more senior dev to look in to. Plan more than an hour for the junior. Probably a lot more. Also plan some time for one of those more senior devs. Sit them down next to each other.Point the junior to the readme. Ask the junior to ping / poke / bother the senior every time they hit a roadblock. Every single time. Ask them to be relentlessly persistent. (Not everyone's good at being relentlessly persistent. So encourage them. Create an environment where they feel like they can be relentlessly persistent.) Then leave them alone.Give it a day or two. Watch as interesting things start to happen.Watch as the junior dev learns how to be a better communicator. Watch as they learn how to make problems visible. How to get help. And as an added bonus: how to program.Watch as the senior dev goes insane at first from all the questions. Watch them start to wonder how they can avoid going through this every time somebody needs to touch their code. Watch them remove obstacles. Or at least reduce their number. Watch them automate things. Or speed up things that are already automated. Or improve processes in ways they had never even considered before sitting with the junior. Also watch them learn how to be a better communicator.Do this a few times. Watch for magical things. Code quality improves. Onboarding times plummet. Hiring friction melts away. Teamwork starts... working. Productivity skyrockets. Job satisfaction goes up. Happiness prevails.-----[1] See also https://twitter.com/patio11/status/657902663686754304