This series illustrates lessons in Software Engineering Management with lessons from the farm. Last time we touched on hiring staff. Let’s talk about junior staff.
Setting the stage
In your mind’s eye a farm scene likely includes well built fences. When I began keeping livestock it was time to build those fences. The more our farm grew, the more fences we needed.
My goal was to build three large fenced fields between five and eight acres each. That was more than I could do by myself before winter. Time to hire some help.
Every industry is full of labor saving technologies. But production at scale relies on labor.
A blend of experience creates a quality product through perspective. Diverse perspectives find missed rough edges. Combining those perspectives with execution and attention to detail is the recipe for a quality product.
Varied experience levels are a benefit, not a drawback in developing a product. Every company touts the importance of diversity in their hiring processes, but some of those same companies look down on hiring Junior Developers.
Interviewing & Hiring
When it was time to build the fence I found a few local teenagers to hire. One had grown up on a farm, one in the city, and the other in the suburbs. Every one of them had seen the type of fence I wanted to build, but none of them had built one before.
My two greatest predictors of success in hiring junior staff are enthusiasm and punctuality. An affable enthusiasm is an early indicator of teachability. If someone is excited about building something, they do their level best to improve each day.
The interview is simpler than a senior staff interview.
- Have you worked with any of these tools before?
- Have you ever built anything like this?
- Have you used tools like these before?
- Why do you want to work here? / Why are you interested in building this?
Prospective junior hires answer the last question with, “for the money,” more often when standing next to a barn than sitting in an office.
How to get a good product with Junior Staff?
- Mentorship
- Regular feedback
- Strong standards
To build a good fence with people who haven’t:
- Show the group a completed section of fence. Explain each section and pointing out potential snafus.
- Divvy up the work between the group and inspect it at regular intervals.
- Answer questions along the way.
- Review how the group works and what they produce. Give feedback on any substandard work and help them to correct it.
- Confirm the quality of their work matches what you showed them initially.
The process is almost identical with Junior Software Development Staff.
An experienced manager or mentor is key. Someone to show them the ropes, provide plenty of opportunities for constructive feedback, and keep focus on the product.
This is where things can get tricky. Hiring junior staff can be a lose-lose situation if your group doesn’t have strong standards and experienced managers / mentors.
When my software development teams started hiring Junior Developers the most immediate effect was highlighting differences in process between teams. This forced us to explicitly document our processes and procedures instead of relying on tacit understandings between senior staff and Project Managers. Over time this has strengthened our engineering culture.
Someone with limited domain experience will need more time and attention to achieve the goal at hand. Don’t use this as an excuse to give Junior Staff “busy work.” Channel their enthusiasm into something that creates value for the team.
If they take more time to do something, why hire them?
Benefits of hiring junior staff
- Enthusiasm.
You remember the first time you worked on a real, live product? It was amazing! So much to learn. How great it felt when you shipped. Junior staff enthusiasm makes them vocal advocates for their areas of interest.
- Less baggage.
Senior staff sometimes carries the torch “we always did it like this before.” Unlearning something can take longer than learning something new. Junior staff don’t have the biases of senior staff.
- Hiring for general aptitude means they can grow into a variety of roles.
If you hire for aptitude or narrow interest, you can provide junior staff a variety of experiences across roles before asking them to commit to a role. They can help find their best fit in your group.
- Fresh outlook.
Diverse perspectives are key to long term success. Junior staff see your product, process, and technology with fresh eyes. Their questions keep team perspectives fresh in both focus and tangibles like documentation. This perspective can offer new insights as you answer “why” for the twelfth time. Or at least remind your team to keep it’s processes better documented.
- Keeping the documentation beginner friendly.
The first commit made by any new hires within our group is documentation. From requesting access to network resources or signing off on development environment configuration. Part of that process is improving the documentation. If something is unclear we encourage staff to change it or add extra information as they see fit. Junior hires provide a regular check on team perspective by bringing a fresh outlook to their team.
Our team doesn’t hire junior developers.
Drawbacks of hiring junior staff
- Enthusiasm.
It is a double-edged sword. The worst case I’ve ever seen was my own software development internship. A constant barrage of questions peppered every discussion for my first six months.
- You need strong standards and processes.
Every mature team has strong standards and processes. If your team doesn’t have good processes in place, a junior person may get three different answers to the same question . This makes life stressful for everyone.
- You need a plan for mentoring.
Developing junior staff into valuable contributors means spending extra time nurturing their development. This can be formal or not. I have found two things especially useful. Regular 1:1s focused on the “why?” questions about the product or business at large and mentoring by a successful senior team member.
- You don’t have time.
If your deadlines are tight now and forever, this isn’t the best time. You have to invest time in growing your junior staff. In my experience, a mentorship begins with a senior staff member spending roughly 10% of their time each week with a junior staff member. It adds up.
Quality staff takes time to cultivate. It doesn’t happen overnight.
Out of the three teenagers helping me build fences, only one kept coming back year after year. The one with the least experience of the three.
Evaluation
You should have metrics for success for any hire. Three numbers for defining their criteria for success. Ask them if they think those numbers are the right ones to show their success. Why or why not?
Using work products, metrics, mentorship, and 1:1s it will be easy to gauge their improvement over time. Their mentor and manager should make a point of giving regular feedback. Point out things they did especially well or give constructive steps for improvements.
Regular feedback makes a happy and healthy team. Developing junior staff goes beyond refining labor. You are forging an ally.
Conclusion
Companies with strong processes and experienced managers should hire junior staff. Growing talent in house both makes and takes talent. Making it a regular part of your process enriches your existing staff, managers, and processes.
Adapting this strategy company-wide reduces turnover costs and develops home-grown talent.
What if they move on? That’s a shame. But cultivating the skills to make junior staff successful will make your entire organization stronger.
And on the farm, one of the three teenagers that helped build fences has kept coming back each year. The city kid. He can build a section of fence faster, tighter, and straighter than anyone I’ve ever known. I’m proud to have cultivated talent and developed an ally along the way.
If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.
- Antoine de St. Exupéry