My comments yesterday on social media about encouraging the hiring of juniors seemed to resonate. So let me tell you about two of the very best teams I’ve worked with. Two teams of juniors, that were freshly hired, many straight out of school and none of them having worked professionally for long.
There was one tech lead who had been programming for years but his time was split and he wasn’t there all the time. Beyond that, everyone was definitely junior.
My client decided to start a new development office in a city, where they had no other development teams. I, and another coach, had been asked to work extensively with these teams as they were starting, to unsure that they were set up for success.
They were still hiring as we started working with them so almost every week, there was someone new on the teams. We started with one team and then when that was too big, we split them into two.
We started them off doing ensemble work (also called mob programming). In an ensemble, the entire team works together on the same work at the same time. Nobody works alone. Nobody goes off and does things in a silo.
We found a dedicated room for them so they could actually collaborate. In their first few weeks, they were actually in cubicles but we found a room with a single large table and that was so much more effective.
It’s worth calling out the fact that they had excellent support from their VP. There was absolutely some push-back when we took over a room and a large monitor but the VP had their backs.
At all times, they had an agile coach with them. One week it would be me, and the next it would be the other coach, then back to me. We showed them TDD, and refactoring, and continuous integration, right from the beginning. We insisted that they collaborate and use the best practices we could show them.
These teams started from nothing, and within a few months they were the exemplar teams. People were traveling to this new office and asking for tours so they could see what these teams were doing. They were delivering amazing quality and having so much fun while doing it.
After a few months, the coaches disengaged, although we did check in with them periodically for some time after that. As near as we could tell, they never lost that momentum, and remained the teams that everyone wanted to see in action. Two teams of juniors, many right out of school.
So let’s recap:
- They only ever worked in an ensemble. Everyone together all the time, working on only one thing at a time. Always collaborating.
- They always had a senior technical person in the room. In this case an agile technical coach, but it could have just as easily been a strong tech lead. Someone to guide them and ensure they followed the right practices.
- They did strong technical practices right from day one, focusing on quality and maintainable code.
- They had excellent management support from their VP.
Although this is certainly an extreme example, it highlights what’s possible, even when working with juniors. This is how you can build capacity within your organization.
As an aside, I’ll point out that while we did this all in a physical space (this was before covid), all of the approach I discuss here can be done fully remote, and in some ways is easier that way. It doesn’t work nearly as well in a hybrid environment with some people on-site and others not.